• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのマクロによるVLOOKUPの参照シートの変更について)

ExcelのマクロによるVLOOKUPの参照シートの変更について

このQ&Aのポイント
  • Excelのマクロを使用して、VLOOKUPの参照シートを変更する方法について教えてください。
  • ブックAのSheet1のセルA1にドロップダウンリストを作成し、選択した値に応じてVLOOKUPの参照シートを変更したいです。
  • ドロップダウンリストで「J」を選択した場合は「国語」シートを、 「M」を選択した場合は「数学」シートを、 「A」を選択した場合は「美術」シートを参照するようにしたいです。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

編集メニューの置換を使って数式文字列を直接置換する,といった操作を新しいマクロの記録でマクロに録ってchangeイベントマクロに仕込んでやるといった所でしょうか。 サンプル: Sheet1のシート名タブを右クリックしてコードの表示を選んだシートに Private Sub Worksheet_Change(ByVal Target As Range)  Dim res As String  If Target.Count > 1 Then Exit Sub  If Application.Intersect(Target, Range("A1")) Is Nothing Then Exit Sub  Select Case Target   Case "J"   res = "国語"   Case "M"   res = "数学"   Case "A"   res = "美術"   Case Else  End Select  Worksheets("Sheet2").Range("B:B").Replace _   what:="]*'!", _   Replacement:="]" & res & "'!", _   lookat:=xlPart End Sub #エラー処理等は特に行っていません #その方が簡単だと思えば,選択のたびに「目的の式そのものをセルに記入させる」マクロにしてもいいです。 [別の手] ●「閉じたブック」に対する参照をINDIRECT関数で可変にとる事はできません ○目的のブックを「開いておけば」,シート名を可変にとってINDIRECT関数で参照シートを切り替えできます ○目的のブックの全データを開かれているブック(アドインや隠したブックでも可)に参照し,それを普通に検索したり,INDIRECT関数などを組み合わせて取ってこさせる手もあります

noname#222616
質問者

お礼

おお~!思っていた通りのものができました! すっきりしました! 下手な説明にもかかわらず、ご回答頂きましてありがとうございました★

その他の回答 (1)

回答No.2

マクロを使わない方法で  ブックAのSheet2のセルB1に以下を入力 =if(Sheet1'!A1="J",VLOOKUP(A1,'¥¥s_g¥欠席¥[ブックB.xls]国語'!$B$4:$V$30,4,FALSE),if(Sheet1'!A1="M",VLOOKUP(A1,'¥¥s_g¥欠席¥[ブックB.xls]数学'!$B$4:$V$30,4,FALSE),if(Sheet1'!A1="A",VLOOKUP(A1,'¥¥s_g¥欠席¥[ブックB.xls]美術'!$B$4:$V$30,4,FALSE),"")))

noname#222616
質問者

お礼

あっなるほどっ!そうですよね、これならできますね★ 思いつきませんでした(笑) ご回答ありがとうございました!すっきりしました!

関連するQ&A