自分用のメモ書きです。
A1セルに他ファイルのリンクが入った数式がある場合、そのリンクのファイルがあるかを判断するコードをChatGPTに書いてもらいました。
数式例は「='C:\hogehoge\soresore\[計画表.xlsm]Sheet2'!B1」です。
Sub CheckLink()
Dim cell As Range
Dim formulaText As String
Dim startPos As Long, endPos As Long
Dim filePath As String
' チェックするセルを指定(例:セルA1)
Set cell = Range("A1")
' セルの数式を取得
formulaText = cell.Formula
' 数式内に外部ファイルのパスが含まれている場合を確認
startPos = InStr(formulaText, "'")
If startPos > 0 Then
' ファイルパスの開始位置を取得
endPos = InStr(startPos + 1, formulaText, "]")
If endPos > 0 Then
' パスを抽出し、不要な「[」を削除
filePath = Mid(formulaText, startPos + 1, endPos - startPos - 1)
filePath = Replace(filePath, "[", "")
' ファイルの存在を確認
If Dir(filePath) = "" Then
' ファイルが存在しない場合
MsgBox "ファイルがありません: " & filePath, vbExclamation
Else
' ファイルが存在する場合
MsgBox "ファイルは存在します: " & filePath, vbInformation
End If
Else
MsgBox "ファイルパスが正しく抽出できませんでした。", vbExclamation
End If
Else
MsgBox "外部ファイルへのリンクは見つかりませんでした。", vbExclamation
End If
End Sub
記事は以上になります。
お目通しいただき、ありがとうございます。