Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12896 / 13646 ツリー ←次へ | 前へ→

【8058】リストボックスについて 鼻毛カッター 03/9/29(月) 2:32 質問
【8059】Re:リストボックスについて Jカーター 03/9/29(月) 7:07 回答
【8086】Re:リストボックスについて 鼻毛カッター 03/9/29(月) 18:54 質問
【8087】Re:リストボックスについて Jカーター 03/9/29(月) 19:20 回答
【8111】Re:リストボックスについて 鼻毛カッター 03/9/30(火) 18:50 お礼

【8058】リストボックスについて
質問  鼻毛カッター  - 03/9/29(月) 2:32 -

引用なし
パスワード
   よろしくお願いします

セルA1にA、セルB1に東京
セルA2にB、セルB2に大阪
セルA3にC、セルB3に名古屋という文字が入力されています。
ユーザーフォームとコマンドボタン(登録)を作ります。
ユーザーフォームを開いたときに自動でリストボックスへ文字を読み込み、「A 東京」の行を選択し登録のボタンを押すと、A5にAが、C5に東京が入力されるようにするには、どのようなコードを記述すればよろしいのでしょうか?

【8059】Re:リストボックスについて
回答  Jカーター  - 03/9/29(月) 7:07 -

引用なし
パスワード
   こんにちは。
RowSourceを使った一例です。

Private Sub CommandButton1_Click()
  With Me.ListBox1
    If .ListIndex = -1 Then Exit Sub
    Sheets("Sheet1").Range("A5").Value = .List(.ListIndex, 0)
    Sheets("Sheet1").Range("C5").Value = .List(.ListIndex, 1)
  End With
End Sub

Private Sub UserForm_Initialize()
  With Me.ListBox1
    .RowSource = Sheets("Sheet1").Range("A1:B3").Address(external:=True)
    .ColumnCount = -1
  End With
End Sub

違ったらすいません。

【8086】Re:リストボックスについて
質問  鼻毛カッター  - 03/9/29(月) 18:54 -

引用なし
パスワード
   どうもありがとうございます。
完璧でした。自分でもやってはみたのですが、セルA5、C5に分けることができず困っていました。ありがとうございます。
申し訳ないですが、もう一つお願い致します。
セルA1に東京
  A2に大阪 
  A3に名古屋という文字があります。
同じくリストボックスへ三つの文字を入れ、複数選択できるようにして、東京と大阪を選べばA5に「東京、大阪」と表示され、東京と名古屋を選べば同じくA5に「東京、名古屋」、三つ選べば三つとも表示させるにはどのようにコードを組めばよろしいでしょうか?

  

【8087】Re:リストボックスについて
回答  Jカーター  - 03/9/29(月) 19:20 -

引用なし
パスワード
   こんばんは。
こんな感じになりました。

Private Sub CommandButton1_Click()
  Dim I As Long
  Dim A As Long
  Dim StrT() As String
  With Me.ListBox1
    For I = 0 To .ListCount - 1
      If .Selected(I) Then
        ReDim Preserve StrT(A)
        StrT(A) = .List(I)
        A = A + 1
      End If
    Next I
  End With
  If A > 0 Then
    Sheets("Sheet1").Range("A5").Value = Join(StrT, "、")
  End If
End Sub

Private Sub UserForm_Initialize()
  With Me.ListBox1
    .RowSource = Sheets("Sheet1").Range("A1:A3").Address(external:=True)
    .MultiSelect = fmMultiSelectMulti
  End With
End Sub

違ったらすいません。

【8111】Re:リストボックスについて
お礼  鼻毛カッター  - 03/9/30(火) 18:50 -

引用なし
パスワード
   有難うございました。
完璧です。
また、よろしくお願いします。

12896 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free