VBAフォローハイパーリンクをキャンセルする方法は?
-
26-10-2019 - |
質問
いくつかのハイパーリンク付きのExcelワークシートがあります。それらのいくつかはメールアドレスです。
ユーザーがハイパーリンクをクリックすると、それが電子メールであるかどうかを判断します。 Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
と Target.Address like "mailto:*"
私が今欲しいのはそうです デフォルトのハイパーリンク動作をキャンセルします そして、プログラムで電子メールクライアントを自分で開きます。そうすれば、デフォルトのメッセージを提供して添付ファイルを追加できます。
使ってみました Cancel = True
しかし、それはうまくいきません。 Excelは自動的に電子メールへのリンクを生成するため、カスタムハイパーリンクを台無しにしないことを好みます。
それも可能ですか?
ハイパーリンクを開くと、別のスレッドで発生するようです。
解決
君は 防止できません ハイパーリンクに従うことからクリックします。ブレークポイントをに設定することで、自分でテストできます Worksheet_FollowHyperlink
サブ。リンクに従ってください 前 コードの実行。
私 イベントの手順が表示されません それは行動を妨害し、防止するのに役立ちます。
私が与えることができるもう一つのヒントはにです Excelがハイパーリンクの作成を防ぎます またはaでVBAによってそれを行う Worksheet_Change
イベント。
次に、aでペーソクリックを傍受できます Worksheet_SelectionChange
また、セルにメールアドレスが含まれているかどうかを確認します。
最後になりましたが、あなたがそれを知っているなら 電子メールクライアントはOutlookです, 、おそらく新しく作成されたメールを取得して、添付ファイル、受信者、メッセージを追加できます...