![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
マクロ実行の際に、保存先をプログラムした場所とは別の場所にしたい場合、いちいち変更箇所(1つのプログラムで5か所くらいあります)を修正するのが面倒です。そこで、変更するアドレス(パス?)を変数に格納してそれを使い回したいのですがどうすればいいでしょうか?
例えば、
"C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ"
というアドレスを m に格納して、
m = C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ
として、
ChDir ""& m &""
と使えたら理想なのですが、できますでしょうか?
また、変数を使えたとして、上記の書き方は正しいのでしょうか?
間違っていた場合、ChDirに変数を使用するときの書き方もご教授いただけたら助かります。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
> m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ"
> としたら
> Chdir m "& \ついか &"
> でいいのでしょうか?
Chdir m & "\ついか" です。
mの末尾が何だろう?という場合に備え
Chdir m & ".\ついか" として置くのが無難です。
#回答本文中の&が全角に変換されてますが、VBでの記述は半角です。
#コピー&ペーストする際にはご注意ください。
くわしい解説ありがとうございました。
おかげでなんとかできました。
何度も回答いただき本当にありがとうございました。
また何かあれば質問させていただきますので
その時はまたよろしくお願いします。
No.3
- 回答日時:
Chdirの意味を誤解してませんか?
http://officetanaka.net/excel/vba/statement/ChDi …
のようにChdirはいわば「動作」で在って、状態ではない。
だから
ChDir ""& m &""
は大丈夫なのかな。
状態はCurDirではないですか。
ーーー
mを文字列とデータ定義するなら、m=の段階で右辺は" "で囲うのでは。m = C:\Documents ・・はおかしいのでは。
それ(""で囲って代入したあと)を使うときは
ChDir m
で良いように思うが。
その後、CurDirを文字列として扱えて、ファイル名と結合して(&で結合して)フルパスとして使うのでは。
http://officetanaka.net/excel/vba/function/CurDi … 参考
Path=CurDir & FileName
ご指摘の通りChdirの意味を理解していませんでした。
ただ今回はみなさんのおかげでなんとか上手くいきました。
アドバイスありがとうございました。
No.2
- 回答日時:
「ChDir ""& m &""」これは何のこと?
m="Path" ダブルクォーテーションが必要。
ドライブをまたげないから、ChDriveが必要だったか。同じドライブならいいが。
だから、下記
m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ"
ChDrive "C:"
ChDir m
でしょう。
この回答への補足
回答ありがとうございます。
同じ質問で恐縮ですが、
"C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ\ついか"
というアドレスのがあった場合、
m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ"
としたら
Chdir m "& \ついか &"
でいいのでしょうか?
よろしくお願いします。
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 で可能でしょう。
この回答への補足
回答ありがとうございます。
あともうひとつ疑問なのですが、
"C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ\ついか"
というアドレスの場合、
m = "C:\Documents and Settings\test\テスト\てすと\例\マクロ\まくろ"
としたら
Chdir m "& \ついか &"
でいいのでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Excel(エクセル) 【関数】【マクロ】データの転記の方法について 2 2023/07/26 15:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAでセル値からフォルダ名を取得するコードについて
Excel(エクセル)
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
vbaでファイルを開くパス名に変数を使いたい
Visual Basic(VBA)
-
-
4
[Excel] ファイル名を変数指定して保存するマクロ
Excel(エクセル)
-
5
VBAでワークブックの名前を変数にして開かせる?
Excel(エクセル)
-
6
エクセルVBA Workbook変数に変数を使ったファイル名を格納したい
Visual Basic(VBA)
-
7
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
8
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
9
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
10
VBAで文字列を数値に変換したい
Excel(エクセル)
-
11
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
マクロ、PDFを任意のフォルダへ保存
Excel(エクセル)
-
14
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
15
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
16
ExcelVBAでカレントディレクトリのファイルを開く方法は?
Excel(エクセル)
-
17
別のシートから値を取得するとき
Visual Basic(VBA)
-
18
ファイル名を今日の日付、時刻で保存する
Visual Basic(VBA)
-
19
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
20
結合した文字列をファイル名に使えない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
エクセルで特定の列が0表示の場...
-
Excel VBAからAccessマクロを実...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
エクセル マクロ 指定日の指定...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
組んだマクロをメールで送る
-
ExcelのVBA。public変数の値が...
-
wordを起動した際に特定のペー...
-
エクセルで別のセルにあるふり...
-
EXCELのVBAでRange("A1:C4")を...
-
ダブルクリックで貼り付けた画...
-
ExcelVBA 図形をクリックした...
-
マクロ実行時、ユーザーフォー...
-
エクセルのマクロをセルの値に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
TERA TERMを隠す方法
-
2つのマクロでチェックボックス...
-
マクロ実行時、ユーザーフォー...
-
【マクロ】1つのマクロの中に...
-
ピボットテーブルでの毎回可変...
-
特定文字のある行の前に空白行...
-
エクセルのマクロについて教え...
-
wordを起動した際に特定のペー...
おすすめ情報