マクロ実行の際に、保存先をプログラムした場所とは別の場所にしたい場合、いちいち変更箇所(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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VBAでセル値からフォルダ名を取得するコードについて
Excel(エクセル)
-
vbaでファイルを開くパス名に変数を使いたい
Visual Basic(VBA)
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
-
4
[Excel] ファイル名を変数指定して保存するマクロ
Excel(エクセル)
-
5
VBAでワークブックの名前を変数にして開かせる?
Excel(エクセル)
-
6
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
7
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
保存先のフォルダ名を指定したいとき
Visual Basic(VBA)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
12
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
13
ファイル名を今日の日付、時刻で保存する
Visual Basic(VBA)
-
14
VBAで文字列を数値に変換したい
Excel(エクセル)
-
15
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
16
エクセル マクロ 最終列までを全選択
Excel(エクセル)
-
17
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
18
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
19
エクセルVBA Workbook変数に変数を使ったファイル名を格納したい
Visual Basic(VBA)
-
20
エクセルでエラーが出て困っています。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
EXCELのVBAでRange("A1:C4")を...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
Excel VBAからAccessマクロを実...
-
非表示の列をすべて削除するマクロ
-
ExcelVBAでPDFを閉じるソース
-
エクセルのマクロをセルの値に...
-
ピボットテーブルでの毎回可変...
-
ExcelのVBA。public変数の値が...
-
wordを起動した際に特定のペー...
-
TERA TERMを隠す方法
-
エクセルマクロ自動更新
-
エクセルに張り付けた写真のフ...
-
有効数字N桁のマクロについて
-
特定文字のある行の前に空白行...
-
マクロ実行時、ユーザーフォー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報