- ベストアンサー
変数を使ってセルの参照
初歩的な質問ですいません。 セルの参照で A B C 1 あ い 2 う え ='D:\A¥B\[B1.xlsx]Sheet1'!合計 のフォルダBとファイルB1を変数にして C1に ='D:\A¥あ\[い.xlsx]Sheet1'!合計 C2に ='D:\A¥う\[え.xlsx]Sheet1'!合計 としたいのですが、 その場合どう表記すればいいのですか? INDIRCT関数の場合も教えていただければありがたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 作成例: sub macro1() dim b as string dim b1 as string b = range("A1").value b1 = range("B1").value range("C1").formula = "='D:\A\" & b & "\[" & b1 & ".xlsx]Sheet1'!合計" end sub 作成例:応用 sub macro2() range("C2").formula = "='D:\A\" & range("A2").value & "\[" & range("B2").value & ".xlsx]Sheet1'!合計" ’以下オプション ’range("C2").value = range("C2").value end sub 作成例:INDIRECT関数を使う場合 sub macro3() dim myPath as string dim myFile as string dim w as workbook mypath = "D:\A\" & range("A1").value & "\" myfile = range("B1").value & ".xlsx" set w = activeworkbook workbooks.open mypath & myfile w.select range("C1").formula = "=INDIRECT([" & myfile & "]Sheet1!合計)" workbooks(myfile).close false end sub #補足 INDIRECT関数では、「閉じたブック」への参照を可変にすることは「できません」。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
ん? >やはりマクロしかありませんか?! 別に出し惜しみやイジワルをしてるワケではありません。そういう便利な方法があれば、さっさとそう回答しています。 ご相談に書かれた「その通りの事」をしたければ、こうしますと回答しているのです。 どうしてもINDIRECT関数が使いたいなら、回答したマクロの3番目でやっているのと全く同じく、手動でブックを開いてください。 その場合は「どこのブック」は手で開いた時点で確定していますから、ブック名だけが可変になります。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
パス、拡張子は自分の環境に合わせる。 =INDIRECT("'D:\tmp\tmp\"&A1&"\["&B1&".xls]Sheet1'!合計")
お礼
ありがとうございました。
お礼
ありがとうございます。 やはりマクロしかありませんか?!