|
例えば、C4に
= IF(B4="","",HYPERLINK("#sheet2!"&CHAR(64+COLUMN(D$3) )&ROW(A4),・・・))
が入力されていて、同様な式が複数箇所にあるとすれば、
次のようなもので対応できるでしょう。
Sub Sample4()
Dim fm As String
Dim r As Range
Dim p1 As Long, p2 As Long
Dim myRow As Long, myColumn As Long, mySheet As String
If TypeName(Selection) = "Range" Then
Set r = Selection
If r(1).HasFormula Then
fm = r(1).Formula
p1 = InStr(UCase(fm), "HYPERLINK")
If p1 > 0 Then
myRow = r.Row
myColumn = r.Column + 1
p2 = InStr(p1 + 11, fm, """")
mySheet = Mid$(fm, p1 + 12, p2 - (p1 + 13))
Application.Goto Worksheets(mySheet).Cells(myRow, myColumn), True
End If
End If
End If
End Sub
あとは、HYPERLINKの第二引数に、
ジャンプ先を取り出せるように忍ばせておく手があるでしょう。
そうすれば、単にSelection.Value(に簡単な置換をしたもの)を使って
ジャンプすることができるでしょう。
|
|