Microsoft 365 Excel マクロで SharePoint Onlineのファイルを開く方法をみてみよう

ファイルサーバーを SharePoint や OneDrive for Business に移行していくと、ファイルサーバーとの動作の違いによって発生する動作の互換性に悩まされるケースがあります。

Excel のマクロ動作などはよく言われるケースですね。

そこで今回は対応の一例として、 OneDrive for Business 上の Excel ファイルを VBA から開く方法を見ていきたいと思います。

まず重要となるのは、どこに開きたい Excel ファイルがあるかです。
OneDrive for Business では自分のテナント名と UPN の組み合わせでサイトコレクションが決まります。
ここが起点となることを覚えておきます。

この画面のアドレスが以下になるということですね。
https://テナント名-my.sharepoint.com/personal/UPN/
f:id:mohessu:20210123221051p:plain

ここにある Excel ファイルは主に 2 つの方法でアドレスを取得することができます。
1 つ目はファイルを開いたうえで情報メニューや最近使ったアイテムのパスをコピーする方法です。

【情報メニューの「パスのコピー」】

f:id:mohessu:20210123221731p:plain

【最近使ったアイテムの「パスをクリップボードにコピー」】

f:id:mohessu:20210123113137p:plain

これらの方法でパスを取得すると以下の形で取得されます。
https://テナント名-my.sharepoint.com/personal/UPN/フォルダー/ファイル.xlsx?web=1

2 つ目の方法はブラウザから行えるリンクのコピーです。

f:id:mohessu:20210123175257p:plain

この場合は以下の形式に。

https://テナント名-my.sharepoint.com/:x:/g/personal/UPN/アクセスコード

マクロで扱うためには 1 つ目のアドレス形式を取得する必要があります。

2 つ目のアドレスを開くと、マクロから開くと以下のようにファイルの新規作成になってしまいます。

f:id:mohessu:20210123175415p:plain

マクロ側は Workbooks.Open を利用すると簡単に開くことができます。
1 つ目で取得したアドレスをそのままコピーすると、、、

f:id:mohessu:20210123113348p:plain

このような形で自動保存が有効な状態で開かれます。

f:id:mohessu:20210123113529p:plain

Office 365 の利用は今までのオンプレ環境とは一味違った味付けが必要となります。
この点を意識し改修をすすめることができれば非常に強い武器となりえるでしょう!

音楽:Beginners