2016-06-13 20 views
0

データテーブルの各行にハイパーリンクを含むワークシートがあります。それらのハイパーリンクの1つがクリックされるたびにマクロを実行するようにします。マクロは、どの行のハイパーリンクがクリックされたかによって異なる動作をするパラメータが必要です。アクティブなセルの行番号を使用しています。ハイパーリンク上でクリックするとマクロが実行されます

私はさまざまな方法を試しましたが、どれも機能を完了しませんでした。ほとんどの場合、スケーラブルなオプションではないイベントマクロ自体にセルアドレスを指定する必要があります。

サンプルデータ:

Col A Col B 
A  Link: A 
B  Link: B 
C  Link: C 
D  Link: D 
E  Link: E 

上記の表の2番目の列は、ハイパーリンクのリストであるべきです。

(例えばセルB1に)私は2番目の列に使用していますハイパーリンク式:

=HYPERLINK(MID(CELL("filename"),FIND("[",CELL("filename")),FIND("]",CELL("filename"))-FIND("[",CELL("filename"))+1)&ADDRESS(ROW(),COLUMN()-1),"Link: "&$A1) 

私はワークシートのコード内で使用していますマクロ:このケースでは私にとって

Private Sub Workbook_SheetFollowHyperlink(ByVal Target As Hyperlink) 
    Dim sData As String 
    sData = "text: " & sData & Range(Target.Range.Address). _ 
    Offset(0, -1).Value & vbCr 
    MsgBox sData 
End Sub 

上記のマクロはハイパーリンクをクリックしても実行されません

答えて

0

Excel 2013では、Workbook_SheetFollowHyperlinkのメソッド 'signature'にイベントハンドラの追加引数があります。 ByVal Sh As Objectをコードに追加してもう一度お試しください。

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) 
    'your code goes here 
End Sub 
+0

まだ動作しません。私は、サブボックスでちょうどmsgboxのラインを試してみましたが、リンクをクリックしてもmsgboxをアクティブにしていないように見えます – dsauce

+0

ハイパーリンクは別のブックを開きますか? –

+0

ハイパーリンクは、左側の列の対応するセルを対象としています。実際には私はハイパーリンクは気にしませんが、マウスでセルをクリックするとマクロを実行したいので、ハイパーリンクはどこにでも向いています。私はすでに、セルが選択されたときに実行されるマクロを持っています。 – dsauce

関連する問題