- ベストアンサー
VBAについて教えてください。
パス、ファイル名、参照シート、セルを各変数に入れ、その後に指定のセルに 以下の様な出力結果を出力したいのですがどうしても上手く出来ません。 どうか力をお貸しください。 ちなみに下記の様なイメージで書き込みを試みたのですが、全然駄目でした、、、 PathName = \\Sample\ FileName = SampleFile.xls SheetName = SampleSheet Cell = !$I$19 ThisWorkbook.ActiveSheet.Cells(5, 2).Value _ = "= '& PathName & [FileName] & 参照シート'& Cell" ⇒駄目でした 出力結果(理想) ='\\Sample\[SampleFile.xls]SampleSheet'!$E$19 ⇒こう出したい。 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>の「"'"」の部分がコンパイルエラーが出てしまいます。 >なぜでしょうか? >= "= '" & PathName & "[" & FileName & "]" & 参照シート& "'" 参照シートの後ろの&ですが、半角スペース記述漏れです。すみません。 変数の型宣言にも&があるために「参照シート&」という変数と扱われていて、「いきなり"'"が出ちゃだめよ」とエラーになってます。 本当にこういう値が代入されてますか?何か前段の処理がある? なんだか、前提とひどく値が異なってませんかね? > PathName = "C:\Users\pusuke\Desktop" > Filename = "Book2.xls" > SheetName = "Sheet1" > Cell = "!$B$4" いったん、式の組み立ては横に置いて、変数の中身を押さえてみませんか?
その他の回答 (3)
- bin-chan
- ベストアンサー率33% (1403/4213)
PathName と Filename を連結する際に PathName & ".\" & Filename とすると吉。
お礼
ご親切にありがとうございます。 再度不明点がありましたら遠慮なく、質問させて頂きたいと思います。 では、失礼致します。
- bin-chan
- ベストアンサー率33% (1403/4213)
#1ですが、「値」が御所望なんですね。 > = "= '& PathName & [FileName] & 参照シート'& Cell" > ⇒駄目でした = "= '" & PathName & "[" & FileName & "]" & 参照シート& "'" & Cell です。
お礼
回答ありがとうございます。 本当に助かります。 また質問なのですが = "= '" & PathName & "[" & FileName & "]" & 参照シート& "'" & Cell の「"'"」の部分がコンパイルエラーが出てしまいます。 なぜでしょうか?
- bin-chan
- ベストアンサー率33% (1403/4213)
> ThisWorkbook.ActiveSheet.Cells(5, 2).Value _ ではなくて ThisWorkbook.ActiveSheet.Cells(5, 2).Formula _ では?
お礼
早々の回答本当にありがとうございます。 Sub test() PathName = "C:\Users\pusuke\Desktop" Filename = "Book2.xls" SheetName = "Sheet1" Cell = "!$B$4" ThisWorkbook.ActiveSheet.Cells(5, 2).Formula _ = "=" & PathName & Filename & SheetName & Cell End Sub というマクロを作成した結果 Cells(5, 2)のセルには以下の様になりました。 理由が全くわかりません。 原因はわかりますでしょうか?? ='C':\Users\pu'C:\Users\pusuke\Desktop\suke\[DesktopBook2.xlsSheet1]DesktopBook2'!$B$4
お礼
大変参考になりました。 有難うございました。 >いったん、式の組み立ては横に置いて、変数の中身を押さえてみませんか? 横に並べて整理をしてみました。 PathNameの最後の「\」が抜けていたので誤動作の原因だったと思います。 他にも半角が余分に入っている処があり削除しました。 すると思う様に動作することが出来ました。 本当に有難う御座いました。 これでゆっくり寝れます。 参考までに完成したマクロを以下に示します。 Sub test() PathName = "C:\Users\pu-suke\Desktop\" Filename = "Book2.xlsx" SheetName = "Sheet1" Cell = "!$B$4" ThisWorkbook.ActiveSheet.Cells(5, 2).Formula = "='" & PathName & "[" & Filename & "]" & SheetName & "'" & Cell End Sub 本当に有難う御座いました。