【GPT-5】VBAのworkbookでSharePoint上にブックを保存したい
なるほど!VBAでSharePoint上にWorkbookを保存する方法ですね。
いくつか方法がありますが、環境(クラシックなSharePointか、OneDrive/SharePoint Onlineか)やアクセス方法(ユーザーが既にサインイン済みか、認証が必要か)によって使い分ける必要があります。
1. すでにエクスプローラーからアクセスできる場合(おすすめ)
もしSharePointが エクスプローラーに「ネットワークドライブ」や「同期フォルダ(OneDrive)」としてマッピングされている 場合は、通常のファイル保存と同じ書き方でOKです。
👉 この場合はローカル同期が効いているので、特別な認証処理は不要です。
2. SharePoint Online の URL を直接指定する場合
SharePointのライブラリURLを使って保存することも可能です。
(ただし、ユーザーがOfficeにサインインしている必要あり)
👉 これで動作するのは、ExcelがユーザーのアカウントでSharePointに接続できている場合です。
(普段から「ファイル → 開く」でSharePointのファイルを開けるなら大丈夫)
3. VBAで直接アップロードする(XMLHTTPを使う)
もし 直接PUTリクエストでアップロードしたい 場合は、MSXML2.XMLHTTP を使います。
ただしこの場合は アクセストークンが必要 になります。SharePoint REST APIを叩くので、認証処理を実装しないといけません。
例(疑似コード):
👉 この方法は難易度高め。通常の業務であれば ①か② の方法が現実的です。
✅ まとめ
-
SharePointを 同期フォルダ経由 で使えるなら、普通に
SaveAsで保存できる -
URL指定も可能(ただしOfficeにサインインしている必要あり)