94716


会社でOneDriveを使用しており、そこに入っているフォルダの中のワードファイルを開き（参照）して、エクセルの指定セルの文字を置換し、別のワードファイルに保存するというマクロを作成中です。

自分のデスクトップのフォルダでは成功しますが、OneDriveに格納すると下記のところで、エラー52が表示されます。

[code]

    Set wordDoc = wordapp.Documents.Open(ThisWorkbook.Path & "\" & buf)
    
[/code]

pathはOneDriveのURL（https:・・・・）を読み取っており、グーグルで調べるとhttpsが原因であるという記事は見つけました。また、ローカルアドレスに変更もしたくなく・・・あくまでも職場で共有できるOneDriveに入っているワードファイルを開ける方法を探しております。無理であれば、OneDriveに格納して自分のデスクトップにDLして使用する形にしようと思っています。どうか宜しくお願いします。


CC BY-SA 4.0
2023-04-28T03:31:02.710
94671
2023-05-06T13:38:32.907
2023-04-30T08:02:58.593
3060
58087
question
vba excel
マクロでOneDriveに入っているファイルを開けたい


OneDriveをローカルコンピューターに同期してください：  
その後、VBAマクロでファイルパスを変更してください。  
例えば、

[code]

    Set wordDoc = wordapp.Documents.Open("C:\Users\あなたのユーザネーム\OneDrive\あなたのフォルダー\対象ファイル名.docx")
    
[/code]

ご確認ください。


CC BY-SA 4.0
2023-04-30T02:33:43.523
94687
2023-04-30T02:33:43.523
53954
94671
answer


恐らくは (PCごとに) ログインユーザー名が異なる際にファイルパスも変わってしまうため、パスを一意に指定する方法が分からずに URL
指定を使おうとしているのだと思われます。

以下の様に `%OneDrive%` などの環境変数を使えば、OneDrive のパスに展開されるので、複数の環境でも使いまわすことが出来ると思います。

**例:**

[code]

    %OneDrive%\ファイル.docx
    
[/code]

環境変数名 | 説明  
---|---  
`OneDriveCommercial` | 組織アカウントのOneDriveフォルダのルートパス  
`OneDriveConsumer` | 個人アカウントのOneDeiveフォルダのルートパス  
`OneDrive` | `OneDriveCommercial` と同様  
  
**参考:**  
[Windows10 OneDriveのパスを取得する方法](https://itmemo123.net/windows/387/)  
[OneDriveの環境変数を活用する](https://news.mynavi.jp/article/win10tips-360/)


CC BY-SA 4.0
2023-05-02T05:26:16.990
94716
2023-05-03T14:13:22.750
2023-05-03T14:13:22.750
3060
3060
94671
answer


OneDriveのGraphAPIを使用してファイルのアップロード、ダウンロードをするツールがあります。  
同期を考えなくていいのならば、補助として使えるのでは？  
[Graph OneDrive](https://github.com/dariobauer/graph-
onedrive)というツールですが、Pythonが必要です


CC BY-SA 4.0
2023-05-06T13:38:32.907
94771
2023-05-06T13:38:32.907
44341
94671
answer