エクセル 各シートの複数項目をリストボックスに表示→移動できるVBAについて教えてください。

エクセル 各シートの複数項目をリストボックスに表示→移動できるVBAについて教えてください。 画像のような表があるのですが、(管理ナンバー1と2は同ブック内の別シートです)これを一番右の画像のように、管理ナンバー・月日・ユーザー名をシートごとに並べて表示し、クリックするとそのシートに移動するようにしたいです。 シート名(管理ナンバー)をリストボックスで一覧表示し、選択すると移動するようにはできたのですが、さらにシート内の月日・ユーザー名を表示させるようにはできるでしょうか?

画像

Visual Basic1,116閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

このベストアンサーは投票で選ばれました

0

リストボックスのオブジェクト名を「ListBox1」とし、サンプルを作成しましたので、お試しください。 ■使用方法 1. 下記サンプルコードを該当Excelブックの該当UserFormモジュールにコピー貼り付けで組み込みます。 2. サンプルコード内のコメント①を確認し、対象としたいシート名を列記して下さい。 3. 該当ユーザーフォームを実行します。リストアイテムを選択すると対応するシートがアクティブになります。 ※リストの見出しは、ラベルコントロールなどで表記して下さい。リストコントロール標準の見出しを使用するには、リスト対象となるデータが1つのワークシートにまとまっている必要があるためです。 ■サンプルコード Private Sub UserForm_Initialize() Dim m_Worksheet As Worksheet With Me.ListBox1 .ColumnCount = 3 '[列を3つにする] .ColumnWidths = "20;60;60" '[各列の幅を設定する] '<リストに各シートの情報を追加> For Each m_Worksheet In Worksheets Select Case m_Worksheet.Name Case "1", "2" '[①ここに指定した名称と一致するシートのみ処理] .AddItem m_Worksheet.Name '[シート名を与えて行を追加] .List(.ListCount - 1, 1) = m_Worksheet.Range("G2").Value '[月日追加] .List(.ListCount - 1, 2) = m_Worksheet.Range("A13").Value '[ユーザー名追加] End Select Next End With End Sub Private Sub ListBox1_Click() '# シート切り替え処理 Dim m_Index As Integer m_Index = Me.ListBox1.ListIndex If m_Index >= 0 Then Worksheets(Me.ListBox1.Text).Activate End If End Sub