次の方法で共有


OneDrive内にあるエクセルVBA 「ActiveWorkbook.Path」で取得されるパスについて

質問

2020年5月6日水曜日 11:21

御世話になっております。

OneDrive内にあるエクセルVBAの挙動についての質問になります。

エクセルファイルをローカルフォルダ内で「ActiveWorkbook.Path」でパスを取得して、

ファイル保存やフォルダ生成をする処理を使って動作させていたのですが、

そのエクセルファイルをOneDriveで実行させるとエラーになります。

「ActiveWorkbook.Path」で取得されるパスが”https://d.docs.live.net/~”になるため、

保存等の動作ができなくなっているようなのですが、

これを回避するためには、どうすればよいでしょうか?

できれば、OneDrive内にファイルを配置しても、ローカルドライブに配置した場合でも、

使用する側としては、意識せずにどちらでも動作できるような仕組みで運用したいと考えております。

恐れ入りますが、ご教授のほどよろしくお願いいたします。

すべての返信 (3)

2020年5月7日木曜日 2:24

アイデアだけですが、”https://d.docs.live.net/~” に対して WebDAV で操作すれば良いのでは?

もしくは WebDAV のパスをドライブ名にマップするとか。

Hebikuzure aka Murachi Akira


2020年5月8日金曜日 10:50

Hebikuzure aka Murachi Akira様

こんばんは。

アイデアいただき、誠にありがとうございます。

ドライブに割り当てることで、問題解決へ一歩進めることができました。

ただ、それだとOneDriveに配置した場合でしか有効でないので、

どのフォルダに配置しても問題なく動作させたく。

といっても都度環境パスを設定しなおすのもどうかなと。

「ActiveWorkbook.Path」で取得されるパスが”https://d.docs.live.net/~”だったら、

OneDrive用の挙動をする。

とかはしたくはないですが、とりあえずはそれで回避したいと思います。

ありがとうございました!


2020年11月3日火曜日 15:42

Private Declare Function SetCurrentDirectory Lib "kernel32" _
    Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

Sub a ()

    SetCurrentDirectory ThisWorkbook.Path

    Debug.Print CurDir

End Sub

いまさらですが

どうでしょう?