2014/02/21

VBA セル内容とハイパーリンクが一致しているかを確認したい



こんにちは!ハイパーリンクしまくりのハイパーtknriaです!


みんな大好きハイパーリンク!

僕も仕事上、下図のように、URLデータを一覧にする作業があります。





例えば、

 ・ある展示会に出展している企業名と、企業概要を示すURL

 ・関連ニュース、トピックスのタイトルと、そのソース

などですね。


こうやってまとめた情報を使おうと、あるリンクに飛んだときに、セルに表示しているURLとリンクされたURLが異なる場合があります。

URLをコピーして、セルにペーストして、さらにそのハイパーリンク先としても指定して…という作業を繰り返していると、たまにミスっちゃうんですよね。人間だもの。

かといって、ある程度データを蓄積してからまとめて確認するのも大変ですし、データを追加する度に確認するのも面倒です。

そこで、一括ポン!でチェックするマクロを実装します。



■ VBAコード例


'----- 以下、ソース -----

Const DATA_MAX = 500
Const posi_URL = 3
Const posi_TITLE = 2

Sub ハイパーリンク確認_Click()
    Dim i As Integer
    Dim add_str As String
    Dim error As String
   
    With Worksheets("Sheet1")
        For i = 1 To DATA_MAX
            If .Cells(i, posi_URL).Hyperlinks.Count > 0 Then
                add_str = .Cells(i, posi_URL).Hyperlinks(1).Address
                If add_str = .Cells(i, posi_URL) Then
                Else
                    error = error & vbCrLf & i & "行目:" & Left(.Cells(i, posi_TITLE), 15)
                End If
            Else
            End If
        Next i
    End With
   
    If error = "" Then
        MsgBox ("内容一致!")
    Else
        MsgBox ("以下のハイパーリンクが間違っています。" & vbCrLf & error)
    End If
End Sub

'----- 以上、ソース -----



■ 億劫なあとがき


今回はあくまでも、セル内容とリンク先が一致しているかを確認する機能です。

リンク切れかどうかを一括判定する機能も必要だと思うので、それも今後実装します。