0

ダイアグラムには、データ フロー内のプロセスを表す図形があります。図形は、図形内のテキストと図形名に基づいて、別のタブにあるプロセス定義にハイパーリンクされます (たとえば、「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
4

1 に答える 1

1

1位。あなたの目標は、図形をクリックした後にワークブック内の範囲に移動することだと思います

2番目。ナビゲートする範囲は名前付き範囲です。

3番目。ナビゲートする範囲は、図形内のテキストと同じです。

私の提案はonAction、形状のトリガーを使用することです(形状assign macroを右クリックしたとき)

4番目。次の手順が必要です-すべての形状に1つ。

Sub Hyperlink_Workaround()
    On Error GoTo ErrorHandler

    Dim curHL As String
        curHL = ActiveSheet.Shapes(Application.Caller).TextFrame2.TextRange.Text

    'which way do you define destination?
    'this way you go to named range

    Application.Goto Range(curHL), True
    Exit Sub
ErrorHandler:
    MsgBox "There is no range like " & curHL
End Sub

5番目。上記のマクロが割り当てられたシートに次の形状を配置してテストします。形状のいずれかをクリックすると、ワークブック内の ABC または DEF 範囲に移動します。 ここに画像の説明を入力

6番目。存在しない範囲に移動しようとした場合のハンドラーを追加しました。

于 2013-04-27T06:58:50.150 に答える