• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで、作成したファイルの共有サーバーへの保存)

VBAで作成したファイルを共有サーバーへ保存する方法

このQ&Aのポイント
  • エクセルVBAで作成したファイルを共有サーバーに保存する際に、ドライブの設定によるエラーを回避する方法について解説します。
  • マクロを使用してファイルを保存する際に、共有サーバーのドライブの設定によってエラーが発生することがあります。
  • 共有サーバーのパスは固定であるため、各端末で設定したドライブ名を取得するか、自動的にドライブとディレクトリを指定する方法を検討することが重要です。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

安直と言えば安直ですが 変更前: Application.Dialogs(xlDialogSaveAs).Show ARG1:="DNR.txt", ARG2:=3 変更後: Application.Dialogs(xlDialogSaveAs).Show ARG1:="\\FXHOGEHOGE\S999\DATA_Auto\DNR.txt", ARG2:=3 などで。

emaxemax
質問者

お礼

なるほど! ARG1:="\\FXHOGEHOGE\S999\DATA_Auto\DNR.txt" でいいんですね、ありがとうございます。 ドライブが変わる場合はかならずChDriveをしなければいけないと思い込んでいました。 それで実務上はこれでOKなんですが、やはり "\\FXHOGEHOGE\S999\DATA_Auto から、端末で設定したFとかGとかのドライブ名は取得できないということなんでしょうか?

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

無理にこだわる事もないと思いますが。。。ベタですけど例えばこんなカンジですかね。 Sub macro1()  Dim o, e, i  Dim res as string  On Error Resume Next  Set o = CreateObject("WScript.Network")  Set e = o.EnumNetworkDrives  For i = 0 To e.Length - 1 Step 2   'とりあえずイミディエイトウィンドウで確認。   Debug.Print e(i), e(i + 1)   If e(i + 1) = "\\FXHOGEHOGE\S999\DATA_Auto" Then    res = e(i)    Exit For   End If  Next i  If res = "" Then res = "Not Mapped"  MsgBox "対象ドライブ名: " & res  Set o = Nothing End Sub WinAPIを使う方法とかも,探すと幾つかヒットすると思います。 やって出来ないということは,そんなに無いと思いますよ。

emaxemax
質問者

お礼

ありがとうございます。 けっこうむずかしいんですね。 お手間とらせました。

関連するQ&A

専門家に質問してみよう