電子書籍の厳選無料作品が豊富!

一つのsheetに複数のネットワークパスが書いてありますが
フォルダまで一箇所だけ書けば済む方法はありますか?

Open "パス.Axlsm" For Append As #1
Set wb = Workbooks.Open("パス\A.xlsm")

上記を("フォルダ名¥A.xlsm")の様にし、パスを毎行書かなくて済むように。
※複数ファイルがあるので他のフォルダに移動やコピーした時もフォルダ名を変えやすくしたいのです。

ご教授願います。

質問者からの補足コメント

  • うーん・・・

    ありがとうございます。
    Const path As String = "\\192.168.1.1\share\" にすれば、
    Open "path.Axlsm" For Append As #1
    Set wb = Workbooks.Open("path\A.xlsm")
    ということでよろしいのでしょうか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2021/03/06 22:45

A 回答 (4件)

プロシージャ外に


Const path As String = "\\192.168.1.1\share\"
とすれば、

Open path & "Axlsm" For Append As #1
Set wb = Workbooks.Open(path & "A.xlsm")
で済みます。

大切な所は「path & "Axlsm"」のように「&」で繋げる事によって
繋がった文字列として認識されるという事です。
    • good
    • 1
この回答へのお礼

理解出来ました。
ご親切にありがとうございました。
早速、月曜日にやってみます。

お礼日時:2021/03/06 23:08

共有名の無い書き方を挙げてしまいましたが、実際には


Const path As String = "\\192.168.1.1\share\"
の様に、
共有するフォルダを記述する感じになるはずです。
この回答への補足あり
    • good
    • 1

試してみると、VBAでは


Dim path As String ="\\192.168.1.1\"
の様な書き方は出来ませんね。

ならば
Dim path As String
path ="\\192.168.1.1\"
の様に、分けて書けば良いでしょう。

あるいは、プロシージャの外に
Const path As String = "\\192.168.1.1\"
の様にして書けば、固定値として扱われます。
    • good
    • 1

Dim path As String ="\\192.168.1.1\"


Open path & "A.xlsm" For Append #1

の様な感じで書けば良いと思います。

同様の処理が複数プロシージャに跨る場合は、
Dimの行をプロシージャ外に記述、あるいはPublicにするなど
変数のフォーカスを変化させれば良いと思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!