• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで別シートに複数のデーターを参照)

VBAで複数のデータを参照する方法とは?

このQ&Aのポイント
  • VBAを使用して、別のシートに複数のデータを参照する方法を知りたいです。Excelのマクロ初心者です。
  • シート(1)には項目が50ある5年分の市場統計データがあります。シート(2)には項目名のデータがあります。シート(3)にはコンボボックスを作成し、コンボボックスから項目を選ぶと、シート(1)の対応するデータを参照したいです。
  • コンボボックスで選択した項目に対応する範囲のデータを参照するためのVBAの構文がうまくできないため、お助けいただきたいです。エクセルに詳しい方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

コンボボックスには項目名を並べることが必要になりますが、そのためにはコンボボックスを選択して右クリックしコードの表示を選択します。 表示の画面で次のマクロを入力します。 Sub リスト設定() With ComboBox1 For i = 2 To 50 .AddItem Worksheets("Sheet2").Range("B" & i) Next End With End Sub また、コンボボックスで項目を選択した後でそれぞれの粘度のデータを表示させるために次のコードを入力します。 Private Sub ComboBox1_Change() Dim n, i As Integer Set WS1 = Worksheets("Sheet1") Set WS3 = Worksheets("Sheet3") With WS1.Range("B:B") For n = 1 To 50 If .Cells(n, 2).Value = ComboBox1.Value Then Exit For Next For i = 1 To 12 WS3.Cells(8, 1 + i) = .Cells(n, 3 + i).Value WS3.Cells(11, 1 + i) = .Cells(n, 15 + i).Value WS3.Cells(14, 1 + i) = .Cells(n, 27 + i).Value WS3.Cells(17, 1 + i) = .Cells(n, 39 + i).Value WS3.Cells(20, 1 + i) = .Cells(n, 51 + i).Value Next End With End Sub この操作ではコマンドボタンを設ける必要はありません。コンボボックスで項目を選択すれば自動的に表示されます。 作業を始めるに当たってはコンボボックスに必要な項目を入力することが必要ですがそのためには「開発」タブの「マクロ」をクリックしてリスト設定を選択して「実行」をクリックすればよいでしょう。これですべての作業は終了です。

kujira_444
質問者

お礼

具体的な回答をありがとうございました。

kujira_444
質問者

補足

早速のご回答ありがとうございます。わたし自身の知識が不足しているせいか、思うようにデーターを参照できませんでした。コンボボックスは機能しており全てのリストは選択できている状態です。次のステップでの長い構文ですが、データー元であるシート(1)のB3からBK52の範囲データーはどこに書かれておりますでしょうか。 また、もう一つ質問ですが、短い構文はVBAシート(1)にあります。長い構文もVBAシート(1)の短い構文の下に入れるという理解でよろしいでしょうか?ご回答くださいますようお願い致します。

関連するQ&A

専門家に質問してみよう