セルの外部参照先のブックをさっと開く

他のブックを外部参照しているセルの値が異常だったり誤っていたりした場合、元ネタのブックを開いて確認・修正する必要があります。こうしたとき、数式からファイル名を確認するのも面倒ですし、紛らわしい名前の多くファイルがあると目視作業はミスの元になります。

このマクロでは、参照先の確認やファイル探しの手間を省きます。外部ファイルを参照しているセルを選択して実行すると、参照先のファイルをさっと開けます。

Sub 外部参照先ブックを開く()

  Dim aryLinks As Variant 
  Dim strVal As String
  Dim i As Long
  
  'ブック中の全参照の配列。ない場合はEmpty
  aryLinks = ActiveWorkbook.LinkSources(xlExcelLinks)

  If Not IsEmpty(aryLinks) Then
    '参照数式を取得
    strVal = ActiveCell.Formula 
    '二重シングルクォーテーション(エスケープ文字)を置換
    strVal = Replace(strVal, Chr(39) & Chr(39), Chr(39)) 
    'ファイル名につく[]を除去
    strVal = Replace(strVal, "\[", "\") 
    'LinkSourcesのリストと照合
    For i = 1 To UBound(aryLinks)
      If InStr(strVal, aryLinks(i)) > 0 Then
        If Dir(aryLinks(i)) <> "" Then
          Workbooks.Open aryLinks(i)
        Else
          MsgBox "参照先ブックが存在しません。" & vbCrLf & _
          aryLinks(i), vbInformation, "セルの参照先ブックを開く"
        End If
        Exit For
      End If
    Next i
  End If
End Sub
タイトルとURLをコピーしました