' [402.xls] ' [Module1] のコード '★★☆ 2つのリストボックスを連動させる ☆★★ Option Explicit Sub start() UserForm1.Show End Sub ' [UserForm1] のコード Option Explicit Private Sub ListBox1_Click() 'ListBox1 の値が範囲名なのでそのまま ListBox2 の RowSource に利用できます ListBox2.RowSource = ListBox1.Text Label2.Caption = ListBox1.Text End Sub 'リストボックスの Clickイベントでは、 '現在選択されている項目をクリックした場合イベントが発生しません 'ここでは MouseUpイベントを使っています Private Sub ListBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MsgBox "選択したデータは" & Chr(13) & ListBox2.Text & " です", 64, _ " 分類名は " & ListBox2.RowSource End Sub Private Sub UserForm_Initialize() With ListBox1 .RowSource = "生物" .SetFocus 'ListBox1の1番目の項目を次のコードから選択します .Selected(0) = True 'ListBox1 の項目を選択した時点で "ListBox1_Click"イベントが発生して 'ListBox2 の RowSource に ListBox1 で選択された項目名がセットされます 'その項目名がワークシートのセル範囲名(名前)と一致する為 '結果として ListBox2 の RowSource にワークシートの範囲名がセットされます 'ListBox2 の見出しをセット Label1.Caption = .RowSource End With End Sub