これについての情報がかなり見つかりましたが、自分で機能するようにはできませんでした。Excel VBA:ハイパーリンクのクリックを処理するサブルーチンまたは関数
私がする必要があるのは、アクティブなシートだけでなく、ドキュメント全体のハイパーリンクのクリックを捕捉するグローバルサブルーチンを持つことです。どうして?私のワークブックはいくつかのシートにいくつかのリンクを持っているので、それらの位置(および隣接するセルの内容など)を除き、すべて「同一」です。
これはボタンで簡単にできます。すべてを同じマクロに接続するだけですが、リンクで同じことをするときに問題があります。
これは、1枚の特定のシートのために、動作します:Microsoft Excelのオブジェクトで
- >問題のワークシート:
私が問題になっているシート上のリンクをクリックして、VBAサブ・ルーチンシートがクリックを捕らえてそれを処理するからです。
以下のコードは、ドキュメント全体で「すべき」と思っていました。つまり、ワークブック内の任意のシートからハイパーリンクのクリックをキャッチします。それは(つまり、何も起こりません)していません。
Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
MsgBox "All sheets!"
End Sub
Excelでリンクを、ショーをホバリングするとき:
file://path/to/workbook.xlsm - click once to follow blablabla
は、私がここで何をしないのですか?
と呼ばれるクラスを作成しますが、私はまだVBAで任意のクラスを作成していません。コードの最初の部分、Module1、私はモジュール1に挿入することができます、私はそれを取る。次に、新しいクラスモジュールを作成し、2番目のコードを挿入しますか?私は "cHyperlinks"(例として)という名前の新しいクラスモジュールを作成しましたが、それにコードの第2ビットを挿入することは何もしていないようです。 (もちろん、ハイパーリンクを処理するコードをいくつか追加しました)。 –
こんにちは、はい、そうです。しかし、ブックのCreateClassesを呼び出すことを忘れないでください –
Wonderful!できます :-) –