VBA Environ関数でOneDriveのローカルパスを取得する

VBA・Office

自分のPCでFileSystemObjectを使うと、OneDriveが原因でファイルパスが「https://~」となってマクロが動かない。OneDriveのローカルパスを取得し置換すればよさそうなので、ここでは、VBAでローカルパスを取得する方法をメモ

置換は、別途考えよう。

環境変数の確認

Get-ChildItem env: を使うと、OneDrive もしくは OneDriveConsumer でローカルパスが設定されていることがわかる

PS C:\Users\papanda925> Get-ChildItem env:

Name                           Value
----                           -----
ALLUSERSPROFILE                X:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
APPDATA                        X:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CommonProgramFiles             X:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

~~~~

OneDrive                       C:\Users\papanda925\OneDrive
OneDriveConsumer               C:\Users\papanda925\OneDrive

~~~~

OnlineServices                 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OS                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

~~~~

PS C:\Users\papanda925>

VBAのEnviron関数でOneDriveのローカルパスを取得

Environ関数は、オペレーティング システムの環境変数に関連付けられた String を返してくれる。

今回の場合、OneDrive もしくは OneDriveConsumer を指定すると取得できそう。

以下、簡単なサンプルコード

Sub TestOneDriveLocalPath()

    Debug.Print Environ("OneDrive")
    Debug.Print Environ("OneDriveConsumer")

End Sub

実行すると、イミディエイトウィンドウに以下が出力され、ローカルパスを取得できる

C:\Users\papanda925\OneDrive
C:\Users\papanda925\OneDrive

Environ 関数 (Visual Basic for Applications) | Microsoft Learn

文書情報

記事タイトル
VBA Environ関数でOneDriveのローカルパスを取得する
作成日
更新日
Source URL
https://papanda925.com/?p=2525

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました