Excel VBA | リンク集を定期的に自動更新(毎日・毎週) する

VBA
スポンサーリンク

ここでは リンク集を定期的に自動更新(毎日・毎週) する VBA の例を紹介します。ポイントは「リンク集更新用のマクロを作り、OnTime や Windows タスクスケジューラを使って定期的に実行する」ことです。


基本例:毎日決まった時刻にリンク集を更新

Public Sub リンク集更新スケジュール()
    ' 毎日朝9時にリンク集更新マクロを呼び出す
    Application.OnTime TimeValue("09:00:00"), "リンク集自動更新"
End Sub

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
    
    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
        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

👉 このコードでは「リンク集自動更新」マクロを毎日朝9時に自動実行します。


応用例:毎週月曜日にリンク集を更新

Public Sub リンク集更新毎週()
    Dim nextMonday As Date
    ' 次の月曜日の朝9時を計算
    nextMonday = Date + ((8 - Weekday(Date, vbMonday)) Mod 7)
    Application.OnTime nextMonday + TimeValue("09:00:00"), "リンク集自動更新"
End Sub
VB

👉 このコードでは「リンク集自動更新」を毎週月曜日の朝9時に実行します。


ポイント

  • 毎日実行Application.OnTime TimeValue("09:00:00"), "マクロ名"
  • 毎週実行 → 次の曜日を計算して OnTime に渡す
  • Windowsタスクスケジューラを使えば、Excelファイルを開いてマクロを実行する形でも定期化可能
  • 重複防止.Find を使って既存リンクを確認してから追記

練習課題

  1. 毎日朝9時と夕方18時の2回リンク集を更新するコードを書いてみる
  2. 毎週月曜と金曜に更新するコードを作る
  3. 更新時に「更新日時」をシートに記録するコードを追加する

こうした仕組みを作ると、リンク集を定期的に自動更新(毎日・毎週)する自動化ツールが完成します。

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