ダイアグラムには、データ フロー内のプロセスを表す図形があります。図形は、図形内のテキストと図形名に基づいて、別のタブにあるプロセス定義にハイパーリンクされます (たとえば、「Control ##」という名前の図形とテキスト「ABC」は、ABC プロセスが定義されているタブにリンクします)。図形のテキストを「XYZ」に変更した場合、その図形のハイパーリンクを自動的に更新する方法はありますか?つまり、ハイパーリンクを「XYZ」定義に移動させたいですか? SheetFollowHyperlink イベント プロシージャを試しましたが、何も起こらないようです。私がこれまでに持っているコードは以下の通りです:
Sub AssignHyperlink()
Dim CallerShapeName As String
CallerShapeName = Application.Caller
With ActiveSheet
Dim CallerShape As Shape
Set CallerShape = .Shapes(CallerShapeName)
Dim RowVar As Integer
Err.Number = 0
On Error Resume Next
If InStr(CallerShapeName, "Control") = 1 Then
RowVar = Application.WorksheetFunction _
.Match(.Range("C2").Value & CallerShape.TextFrame2.TextRange.Text, _
Sheets("Control Point Log").Range("A1:A700"), 0)
If (Err.Number = 1004) Then
MsgBox "No match found for this shape text in the Control Point Log"
Exit Sub
End If
On Error GoTo 0
.Hyperlinks.Add Anchor:=CallerShape, _
Address:=ActiveWorkbook.Name & "#" & "'Control Point Log'!$C$" & RowVar
Else
RowVar = Application.WorksheetFunction _
.Match(.Range("C2").Value & CallerShape.TextFrame2.TextRange.Text, _
Sheets("Data Flow Glossary").Range("A1:A700"), 0)
If (Err.Number = 1004) Then
MsgBox "No match found for this shape text in the Data Flow Glossary"
Exit Sub
End If
On Error GoTo 0
.Hyperlinks.Add Anchor:=CallerShape, _
Address:=ActiveWorkbook.Name & "#" & "'Data Flow Glossary'!$C$" & RowVar
End If
End With
End Sub