- ベストアンサー
エクセルマクロの別名保存時のパス区切り文字
エクセルマクロでセル内のパスとファイル名を繋げて別名保存したいと思ってます。 「/」と「\」のどちらを入力されるか分からないため 繋げたパスが「\\パソコン名/共有フォルダ名\ファイル名.xls」となるように入力した所"1004"のエラーが出ました。 デバッグした所 「ActiveWorkbook.SaveAs filename:=繋げたパス」 で落ちてました。 マクロを使わずに別名保存で「/」と「\」を使用した場合は保存されたのですが、なぜマクロだとエラーになってしまうのでしょうか? 入力されたパスの区切り文字をすべて「\」へ変更する処理を加えたので急ぎではないですが、どなたかご教授下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub test01() MsgBox Application.PathSeparator End Sub で、WINのエクセルのパスセパレーターは¥。 ですから極力¥を使う。 入力などで/や:やバックスラシュ(これはキーボードからは入力不能と思うが)などが入れられる恐れのあるときはそれっらを¥にReplace関数で置き換える。 参考 http://members3.jcom.home.ne.jp/daruma_kyo/info/pause.html http://q.hatena.ne.jp/1186738881 >「/」と「\」を使用した場合は保存されたのですが これは実体験してないが、信じがたいように思う。 VBAでのエラーの原因は 不統一だからか 標準は¥だからか でしょう。標準を使うようにすれば良いので、そう深く追求する課題とも思わないが。
その他の回答 (1)
- yossy0426
- ベストアンサー率24% (32/130)
どうもです。 新規マクロで/から¥に置換するマクロを作成してそれを見れば判ると思います。 置換は編集にあります。 マクロを使用出来て入るみたいなのであえて記述しませんが・・・・
お礼
迅速なご解答りがとうございます。 replace関数処理を加えたので処理上は問題ないのですが、なぜエラーになったのか疑問だったんです。 >置換するマクロ replace関数の事ではないのでしょうか?
お礼
丁寧なご解答ありがとうございます。 とても分かりやすかったです。 繋げたパスを複数のプロシージャで使用するので replace関数を何度も呼んだり、 replaceしたものを入れるグローバル変数を増やすのが嫌だったんです。 でも「不統一だからか標準は¥だからか」という事でエラーになっているのでしたらそういう仕様と思います。 これからは標準の"\"に統一します。 ありがとうございました。