ハイパーリンクから処理を分岐する

<分類:ハイパーリンク制御>
<使用例:ハイパーリンクがクリックされた座標によって処理を分岐する>
<注意:サンプルデータを作成するプログラムになっていますので、Sheet1は何もデータがないシートをご用意ください>
<プログラム例>

Sub 使用例()

    Worksheets("Sheet1").Hyperlinks.Add Anchor:=Cells(1, 1), _
                                        Address:=" ", SubAddress:=Worksheets("Sheet1").Name & "!A1", _
                                        TextToDisplay:=Worksheets("Sheet1").Name & "行1列1"
    Worksheets("Sheet1").Hyperlinks.Add Anchor:=Cells(2, 2), _
                                        Address:=" ", SubAddress:=Worksheets("Sheet1").Name & "!B2", _
                                        TextToDisplay:=Worksheets("Sheet1").Name & "行2列2"
    Worksheets("Sheet1").Hyperlinks.Add Anchor:=Cells(3, 3), _
                                        Address:=" ", SubAddress:=Worksheets("Sheet1").Name & "!C3", _
                                        TextToDisplay:=Worksheets("Sheet1").Name & "行3列3"

End Sub

'貼り付け場所注意:VBAProjectのMicrosoft Excel ObjectのThisWorkbookに記述
Private Sub Workbook_SheetFollowHyperlink(ByVal sh As Object, ByVal Target As Hyperlink)

  Select Case left(Target.Name,6)
         Case "Sheet1"
             Select Case ActiveCell.Row & "," & ActiveCell.Column
   
                    Case 1 & "," & 1
                         MsgBox "行1列1の処理"
                         MsgBox ActiveCell.Column
                         MsgBox ActiveCell.Row
                         MsgBox ActiveCell.Address
         
                    Case 2 & "," & 2
                         MsgBox "行2列2の処理"
                         MsgBox ActiveCell.Column
                         MsgBox ActiveCell.Row
                         MsgBox ActiveCell.Address
              
                    Case 3 & "," & 3
                         MsgBox "行3列3の処理"
                         MsgBox ActiveCell.Column
                         MsgBox ActiveCell.Row
                         MsgBox ActiveCell.Address
             End Select
             
         Case Else
  End Select
  
End Sub