質問

いくつかのハイパーリンク付きの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です, 、おそらく新しく作成されたメールを取得して、添付ファイル、受信者、メッセージを追加できます...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top