ConvOneDrivePath_LocalPath|OneDriveのURL(https...)をローカルパスへ変換 | Excel VBA
- yuji fukami
- 2024年1月14日
- 読了時間: 2分
更新日:1月4日

<概要 (OneDrive,VBA)>
OneDrive を起動していると、環境や取得方法によって
`https://d.docs.live.net/...` のような **URL形式のパス** として扱われることがあります。
しかし、Excel VBA でファイル操作(Open / Dir / FileSystemObject など)を行う場合、
**URL形式のパスはそのままでは使用できず、ローカルパスへの変換が必要** になります。
これを解決するには「①OneDriveの同期を停止させておく」「②URL形式のパスをローカルパスに変換する」の2パターンですが、②の解決方法に導く方法の紹介です。
`ConvOneDrivePath_LocalPath` は、
OneDrive の http(s) 形式のパスを、
Windows 上の **実際の OneDrive ローカルフォルダのパス** に変換する汎用プロシージャです。
- OneDrive 同期環境に依存しない
- ユーザー名をハードコーディングしない
- 既にローカルパスの場合はそのまま返す
といった特徴を持ち、
**OneDrive × Excel VBA の実務で非常に使い回しやすい部品** になっています。
ただ、紹介する汎用プロシージャはOneDriveのSharePoint上では通用しないため完璧な方法ではありません。SharePointに対応した同様の汎用プロシージャは下記が実績がありますので、こちらを参考にしてください。
<用途>
OneDriveが実行中だとURL形式(https...)になってしまったThisWorkbook.PathをVBAで認識できるローカルパスに変換する
<プロシージャ紹介>
Public Function ConvOneDrivePath_LocalPath(Path As String) As String
名前: ConvOneDrivePath_LocalPath /Functionプロシージャ
説明: OneDriveのhttp形式のパスをローカル上のパスに変換する
'引数
'Path・・・変換対象のフォルダパス
<実行例>
次のようなコードを用意します。
実行するとイミディエイトウィンドウに次のような結果が表示されます。
機密情報に当たるところはぼかしてありますが、結果URL形式(https...)のパスがローカルパスに変換されています。



