Excel VBA | 保存したクラウド上のピボットグラフを自動でリンク集にまとめる

VBA
スポンサーリンク

ここでは 保存したクラウド上のピボットグラフを自動でリンク集にまとめる VBA の例を紹介します。ポイントは「クラウド(OneDriveやSharePoint)と同期されているローカルフォルダに保存されたファイルを走査し、そのファイルへのリンクをExcelシートに一覧化する」ことです。


基本例:OneDriveフォルダ内のピボットグラフファイルをリンク集にまとめる

Sub ピボットグラフリンク集作成()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim destWs As Worksheet
    Dim rowIndex As Long
    Dim cloudPath As String
    
    ' OneDriveの同期フォルダを指定(例)
    cloudPath = "C:\Users\YourName\OneDrive\PivotExports\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(cloudPath)
    Set destWs = ThisWorkbook.Sheets("LinkList")
    
    destWs.Cells.Clear
    destWs.Range("A1").Value = "ファイル名"
    destWs.Range("B1").Value = "リンク"
    rowIndex = 2
    
    ' フォルダ内のファイルを走査
    For Each file In folder.Files
        ' 条件:拡張子がPDFまたはPNG
        If LCase(fso.GetExtensionName(file.Name)) = "pdf" Or _
           LCase(fso.GetExtensionName(file.Name)) = "png" Then
           
            destWs.Range("A" & rowIndex).Value = file.Name
            ' ハイパーリンクを作成
            destWs.Hyperlinks.Add Anchor:=destWs.Range("B" & rowIndex), _
                Address:=file.Path, _
                TextToDisplay:="開く"
            rowIndex = rowIndex + 1
        End If
    Next file
End Sub
VB

👉 OneDrive の PivotExports フォルダに保存された PDF/PNG ファイルを一覧化し、クリックで開けるリンク集を「LinkList」シートに自動生成します。


応用例:SharePointフォルダを対象にリンク集を作成

Sub SharePointリンク集作成()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim destWs As Worksheet
    Dim rowIndex As Long
    Dim cloudPath As String
    
    ' SharePointの同期フォルダを指定(例)
    cloudPath = "C:\Users\YourName\SharePoint\TeamSite\PivotExports\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(cloudPath)
    Set destWs = ThisWorkbook.Sheets("LinkList")
    
    destWs.Cells.Clear
    destWs.Range("A1").Value = "ファイル名"
    destWs.Range("B1").Value = "リンク"
    rowIndex = 2
    
    For Each file In folder.Files
        ' 条件:ファイル名に「売上」または「数量」を含む
        If InStr(file.Name, "売上") > 0 Or InStr(file.Name, "数量") > 0 Then
            destWs.Range("A" & rowIndex).Value = file.Name
            destWs.Hyperlinks.Add Anchor:=destWs.Range("B" & rowIndex), _
                Address:=file.Path, _
                TextToDisplay:="開く"
            rowIndex = rowIndex + 1
        End If
    Next file
End Sub
VB

👉 SharePoint の同期フォルダから「売上」「数量」を含むファイルだけをリンク集にまとめます。


ポイント

  • クラウド保存フォルダはローカル同期パスを指定する
  • ファイル走査FileSystemObject を利用
  • 条件判定 → 拡張子やファイル名でフィルタリング
  • リンク作成Hyperlinks.Add でクリック可能なリンクを生成

練習課題

  1. 全ファイルの一覧ではなく「最新更新日が今日のファイル」だけをリンク集にするコードを書いてみる
  2. 各ファイルのサイズも一覧に追加するコードを作る
  3. 複数条件を組み合わせて「拡張子がPDFかつファイル名にReportを含む」ファイルだけをリンク集にするコードを作る

こうした仕組みを作ると、保存したクラウド上のピボットグラフを自動でリンク集にまとめる自動化ツールが完成します。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました