【ThisWorkbook.Pathだとダメ】OneDriveで同期しているファイルのローカルパス取得方法【VBA】
通常、ThisWorkbook.Pathを使えば自分自身の格納ディレクトリのパスを取得できますが、OneDriveで同期しているファイルの場合、OneDrive上のURLが返却されます。
(例:)
https://アカウント名-my.sharepoint.com/personal/・・・
※パスは、法人向け(OneDrive for Business)か個人向けかでドメイン部分が異なるようです
調べてみた結果、以下サイトで公開している関数が一番スマートな対処法でした。
[VBA]OneDriveで同期しているファイルまたはフォルダのURLをローカルパスに変換する関数 | 黒い箱の中
ポイントは以下の3点。
- 環境変数を取得するVBAのEnviron関数を使って、OneDriveのローカルパスを取得
- URLは法人向けと個人向けがあるのでそれぞれURLのパターンで判別
- URLの後半("/Documents")以降は、OneDrive内のフォルダ階層をURLで表現しているので、"/Documents"以降を抜き出しつつ"/"を"\"に変換して連結
Author And Source
この問題について(【ThisWorkbook.Pathだとダメ】OneDriveで同期しているファイルのローカルパス取得方法【VBA】), 我々は、より多くの情報をここで見つけました https://qiita.com/yoshi2045/items/527c0d196978b03e6e2e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .