ここでは 保存したクラウド上のピボットグラフのリンク集を自動で更新(新しいファイルが追加されたら追記) する VBA の例を紹介します。ポイントは「既存のリンク集シートを読み込み、まだ登録されていない新しいファイルだけを追記する」ことです。
基本例:OneDriveフォルダを監視して新しいファイルをリンク集に追記
Sub リンク集自動更新()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim destWs As Worksheet
Dim lastRow As Long
Dim cloudPath As String
Dim found As Range
' OneDriveの同期フォルダを指定(例)
cloudPath = "C:\Users\YourName\OneDrive\PivotExports\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(cloudPath)
Set destWs = ThisWorkbook.Sheets("LinkList")
' 既存のリンク集の最終行を取得
lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
' フォルダ内のファイルを走査
For Each file In folder.Files
' 条件:拡張子がPDFまたはPNG
If LCase(fso.GetExtensionName(file.Name)) = "pdf" Or _
LCase(fso.GetExtensionName(file.Name)) = "png" Then
' 既に登録済みか確認
Set found = destWs.Range("A2:A" & lastRow).Find(file.Name, LookAt:=xlWhole)
If found Is Nothing Then
' 未登録なら追記
lastRow = lastRow + 1
destWs.Range("A" & lastRow).Value = file.Name
destWs.Hyperlinks.Add Anchor:=destWs.Range("B" & lastRow), _
Address:=file.Path, _
TextToDisplay:="開く"
End If
End If
Next file
End Sub
VB👉 このコードは既存の「LinkList」シートを参照し、まだ登録されていないファイルだけを追記します。すでにあるリンクは重複しません。
応用例:更新日時で判定して追記
Sub 更新日時でリンク集追記()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim destWs As Worksheet
Dim lastRow As Long
' SharePoint同期フォルダを指定(例)
Dim cloudPath As String
cloudPath = "C:\Users\YourName\SharePoint\TeamSite\PivotExports\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(cloudPath)
Set destWs = ThisWorkbook.Sheets("LinkList")
lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
For Each file In folder.Files
' 条件:今日更新されたファイルのみ追記
If DateValue(file.DateLastModified) = Date Then
lastRow = lastRow + 1
destWs.Range("A" & lastRow).Value = file.Name
destWs.Hyperlinks.Add Anchor:=destWs.Range("B" & lastRow), _
Address:=file.Path, _
TextToDisplay:="開く"
End If
Next file
End Sub
VBポイント
- 既存リンク集を確認 →
.Findを使って重複を防ぐ - 更新日時で判定 →
file.DateLastModifiedを利用 - クラウド保存フォルダ → OneDrive/SharePoint の同期フォルダを指定すれば自動でクラウドに反映
練習課題
- 「新しいファイルが追加されたら追記」だけでなく「削除されたファイルはリンク集から消す」コードを書いてみる
- ファイルサイズや更新日時も一覧に追加するコードを作る
- 複数条件を組み合わせて「拡張子がPDFかつファイル名にReportを含む」ファイルだけを追記するコードを作る
こうした仕組みを作ると、クラウド上のピボットグラフのリンク集を自動で更新する自動化ツールが完成します。

