• ベストアンサー

保存先のパスを変数に格納して使用する方法

マクロ実行の際に、保存先をプログラムした場所とは別の場所にしたい場合、いちいち変更箇所(1つのプログラムで5か所くらいあります)を修正するのが面倒です。そこで、変更するアドレス(パス?)を変数に格納してそれを使い回したいのですがどうすればいいでしょうか? 例えば、 "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" というアドレスを m に格納して、 m = C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ として、 ChDir ""& m &"" と使えたら理想なのですが、できますでしょうか? また、変数を使えたとして、上記の書き方は正しいのでしょうか? 間違っていた場合、ChDirに変数を使用するときの書き方もご教授いただけたら助かります。 よろしくお願いします。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

> m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" > としたら > Chdir m "& \ついか &" > でいいのでしょうか? Chdir m & "\ついか" です。 mの末尾が何だろう?という場合に備え Chdir m & ".\ついか" として置くのが無難です。 #回答本文中の&が全角に変換されてますが、VBでの記述は半角です。 #コピー&ペーストする際にはご注意ください。

sdfa
質問者

お礼

くわしい解説ありがとうございました。 おかげでなんとかできました。 何度も回答いただき本当にありがとうございました。 また何かあれば質問させていただきますので その時はまたよろしくお願いします。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Chdirの意味を誤解してませんか? http://officetanaka.net/excel/vba/statement/ChDir.htm のようにChdirはいわば「動作」で在って、状態ではない。 だから ChDir ""& m &"" は大丈夫なのかな。 状態はCurDirではないですか。 ーーー mを文字列とデータ定義するなら、m=の段階で右辺は" "で囲うのでは。m = C:\Documents ・・はおかしいのでは。 それ(""で囲って代入したあと)を使うときは  ChDir m で良いように思うが。 その後、CurDirを文字列として扱えて、ファイル名と結合して(&で結合して)フルパスとして使うのでは。 http://officetanaka.net/excel/vba/function/CurDir.htm 参考 Path=CurDir & FileName

sdfa
質問者

お礼

ご指摘の通りChdirの意味を理解していませんでした。 ただ今回はみなさんのおかげでなんとか上手くいきました。 アドバイスありがとうございました。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

「ChDir ""& m &""」これは何のこと? m="Path" ダブルクォーテーションが必要。 ドライブをまたげないから、ChDriveが必要だったか。同じドライブならいいが。 だから、下記 m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" ChDrive "C:" ChDir m でしょう。

sdfa
質問者

補足

回答ありがとうございます。 同じ質問で恐縮ですが、 "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ\ついか" というアドレスのがあった場合、 m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" としたら Chdir m "& \ついか &" でいいのでしょうか? よろしくお願いします。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> m = C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ 文字列はダブルクォートで囲まないとエラーになるでしょうね。 m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" > ChDir ""& m &"" 文字列に " を含ませたいなら二重に書く必要がありますので ChDir """" & m & """" または ChDir Chr(34) & m & Chr(34) ですが、すでに文字列として定義されてますから ChDir m で可能でしょう。

sdfa
質問者

補足

回答ありがとうございます。 あともうひとつ疑問なのですが、 "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ\ついか" というアドレスの場合、 m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ" としたら Chdir m "& \ついか &" でいいのでしょうか? よろしくお願いします。

関連するQ&A