今回はVBAでSharepoint上にファイルをアップロードする方法を解説します。
目次
VBAでSharePointにファイルをアップロードする方法
Sharepoint(シェアポイント)とは
Sharepoint(シェアポイント)とはマイクロソフトが提供している情報共有アプリです。インターネットを閲覧するためのブラウザを利用します。インターネット上にドキュメントライブラリというようなデータを保存しておく場所があり、そこにデータをアップロードすることで、仲間とデータを共有することができます。
サンプルコード
サンプルコードは下記の通りです。
Sub SaveAtSharepoint() Dim url As String '保存先のシェアポイントのURL Dim conv_url As String 'シェアポイントのURLをフォルダ名に変換した文字列。フルパスなのでファイル名まで。 Dim local_full_path As String 'シェアポイントに保存したいデータのフルパス Dim fso As Object 'FileSystemObjectのインスタンス化 '>初期設定 url = "シェアポイント上のURL" & "ファイル名.xlsx" local_full_path = "アップロードしたいファイルのフルパス" '<初期設定 Set fso = CreateObject("Scripting.FileSystemObject") 'インスタンス生成 conv_url = ConvertDirectoryPath(url) If fso.FileExists(local_full_path) Then fso.CopyFile local_full_path, conv_url End If Set fso = Nothing End Sub Function ConvertDirectoryPath(path) As String 'このプロシジャはシェアポイントのURLをドキュメントライブラリのディレクトリパスに変換する ConvertDirectoryPath = Replace(path, " ", "%20") ConvertDirectoryPath = Replace(ConvertDirectoryPath, "/", "\") ConvertDirectoryPath = Replace(ConvertDirectoryPath, "http:", "") End Function
内容の解説
内容について簡潔に解説します。そもそもシェアポイントにアップロードすると言っても、どこかに保存するだけです。その「どこか」を表すパスが分かれば、そこに保存したいファイルを保存するだけです。ファイルの操作にはFileSystemオブジェクトのCopyFileメソッドが使えます。
よって、ファイルの保存先が分かれば「シェアポイントにアップロード」できます。そして、シェアポイント上のファイルのURLに当たる部分をフォルダ名に置き換えるのがFunctionプロシジャの中身です。
<2019/12/27追記>
ご質問頂いたので追記します。url = "シェアポイント上のURL" & "ファイル名.xlsx"の「シェアポイント上のURL」の部分は、データをアップロードしたいところの、ドキュメントライブラリの名称までです。「DocLib1」のようなドキュメントライブラリっぽい名前のところまでを入力してみてください。
データをアップロードしたときのページのURLの最後に「Forms/AllItems.aspx」がついている場合はその直前の部分までだと思います。そのあたりにDocLib1のようなところがあると思うのでそのあとの「/」までを変数urlに入れるとうまくいくはずです。
「Forms/AllItems.aspx」がシェアポイントにおいて何を意味するかの説明はこのブログでは割愛します。
VBAでSharePointにアップロードする方法のまとめ
シェアポイントにファイルをアップロードする方法を簡単にまとめます。
- シェアポイントにアップロードするとは、ある場所にデータを保存することである
- シェポイントのURLから保存するフォルダのパスを求めることができる
- FileSystemオブジェクトのCopyFileメソッドを使ってフォルダに保存する
一見難しそうな操作も分解してみると案外シンプルである事が分かります。なお、この記事を執筆するにあたり、下記URLの内容を参考にさせて頂きました。
VBA | Second Life of a Hungarian SharePoint Geek
<関連記事>
<ゆんの電子書籍>ゆんの電子書籍はすべてkindle unlimitedで読み放題です!