- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで、作成したファイルの共有サーバーへの保存)
VBAで作成したファイルを共有サーバーへ保存する方法
このQ&Aのポイント
- エクセルVBAで作成したファイルを共有サーバーに保存する際に、ドライブの設定によるエラーを回避する方法について解説します。
- マクロを使用してファイルを保存する際に、共有サーバーのドライブの設定によってエラーが発生することがあります。
- 共有サーバーのパスは固定であるため、各端末で設定したドライブ名を取得するか、自動的にドライブとディレクトリを指定する方法を検討することが重要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
安直と言えば安直ですが 変更前: Application.Dialogs(xlDialogSaveAs).Show ARG1:="DNR.txt", ARG2:=3 変更後: Application.Dialogs(xlDialogSaveAs).Show ARG1:="\\FXHOGEHOGE\S999\DATA_Auto\DNR.txt", ARG2:=3 などで。
その他の回答 (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を使う方法とかも,探すと幾つかヒットすると思います。 やって出来ないということは,そんなに無いと思いますよ。
質問者
お礼
ありがとうございます。 けっこうむずかしいんですね。 お手間とらせました。
お礼
なるほど! ARG1:="\\FXHOGEHOGE\S999\DATA_Auto\DNR.txt" でいいんですね、ありがとうございます。 ドライブが変わる場合はかならずChDriveをしなければいけないと思い込んでいました。 それで実務上はこれでOKなんですが、やはり "\\FXHOGEHOGE\S999\DATA_Auto から、端末で設定したFとかGとかのドライブ名は取得できないということなんでしょうか?