Excelからメールを送信し、本文にハイパーリンクを挿入するにはどうすればよいですか?
多くの業務シナリオでは、Excelから直接メールを送信する必要があり、場合によってはメール本文にクリック可能なハイパーリンクを含めたいことがあります。たとえば、受信者にファイルへのアクセスやWebサイトの閲覧、またはその他の関連文書を開いてもらいたい場合です。これを行うには、VBA自動化、Excelの組み込みハイパーリンク機能、そして数式の使用など、いくつかの実用的な方法があります。各方法には異なる特長があり、自動化を好む場合でも、手動でのカスタマイズやスプレッドシート駆動のリンク生成が必要な場合にも対応できます。このガイドでは、Excelから送信されるメールの本文にハイパーリンクを挿入するための複数のアプローチを紹介し、それぞれの方法の適用価値と考慮点について説明します。
VBAコードを使用してメール本文にハイパーリンクを挿入する
この方法は、メッセージ本文に直接ハイパーリンクを埋め込んだメールを送信する必要があるユーザー向けに設計されており、Outlookを送信クライアントとして利用します。VBAを利用することで、Excel内でメールを自動的に作成し、任意のハイパーリンクやフォーマットされたテキストを本文に埋め込むことができます。これは特に、一括送信、ワークフローの自動化、あるいはワークシートからのテンプレートテキストや動的データを含める必要がある場合に役立ちます。
1. ワークブックを開き、Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウにアクセスします。
2. Visual Basicエディターで、[挿入] > [モジュール]に移動し、次のVBAコードをモジュールエディターに貼り付けます。
VBAコード: メール本文にハイパーリンクを挿入する
Sub EmailHyperlink()
'updated by Extendoffice 20190815
Dim xOtl As Object
Dim xOtlMail As Object
Dim xStrBody As String
xStrBody = "Hi there:" & "<br>" _
& "Please click " & "<a href="/ & "http://www.extendoffice.com"">Here</a> to open the page" & "<br>" _
& "Thank you."
On Error Resume Next
Set xOtl = CreateObject("Outlook.Application")
Set xOtlMail = xOtl.CreateItem(olMailItem)
With xOtlMail
.To = "Email Address"
.CC = "Email Address "
.BCC = " Email Address "
.Subject = "Subject line"
.HTMLBody = .HTMLBody & xStrBody
.Display
End With
Set xOtl = Nothing
Set xOtlMail = Nothing
End Sub
注意:
- xStrBody行のハイパーリンクと本文テキストを要件に合わせて編集してください。ここではHTML
<a href="/"></a>
タグが使用されています—リンクと表示テキストの確認を忘れないでください。 - .To、.CC、および.BCCフィールドの「メールアドレス」を実際の受信者のメールアドレスに置き換えてください。不要な場合は、CC/BCCフィールドを省略できます(行を削除するかコメントアウトします)。
- .Subject行の「件名」を目的のメール件名に更新してください。
- このマクロを実行する前に、Microsoft Outlookがインストールされ、アクセス可能であることを確認してください。
3. コードの編集後、F5キーを押して実行します。Outlookで新しいメールウィンドウが開き、指定されたフィールドが事前に入力され、本文にハイパーリンクが埋め込まれます。メッセージを確認し、[送信]をクリックして送信します。
ヒント: Outlookでセキュリティプロンプトが表示された場合、コードによるメール送信が許可されていること、およびマクロのセキュリティ設定が実行を許可していることを確認してください。最良の結果を得るためには、大規模なオーディエンスに自動化する前に、必ずサンプルメッセージでテストしてください。
利点: 埋め込みハイパーリンクと自動送信機能を持つカスタマイズ可能なフォーマット済みHTMLメールをサポートします。自動化により、繰り返しや大量のメッセージ送信で大幅な時間節約が可能です。
欠点: Outlookが必要で、マクロのセキュリティ設定の調整が必要になる場合があります。VBAに不慣れなユーザーには適していません。
ExcelのHYPERLINK数式を使用してmailtoハイパーリンクを生成する
このアプローチは、ExcelのHYPERLINK関数を使用してワークシート内にクリック可能なリンクを作成します。これらのリンクをクリックすると、デフォルトのメールクライアント(OutlookやMailなど)が起動し、事前に記入されたメッセージが作成されます。この方法では、受信者、件名、本文コンテンツ、さらには追加のリンクを事前に定義できるため、メッセージ作成を迅速に開始できますが、送信にはユーザーの手動操作が必要です。
これは、他人が使用するためのテンプレートリンクを提供したり、自動化なしで繰り返しのメールタスクを効率化したい場合に適しています。また、このアプローチをワークシートデータと組み合わせることで、さまざまなユーザー向けの動的なメールテンプレートを作成できます。
1. mailtoハイパーリンクを配置したいセルを選択します。例えば、B2です。
=HYPERLINK("mailto:someone@example.com?subject=Test Subject&body=Please review this link: https://www.example.com","Send Email")
2. 数式を入力した後、Enterキーを押すと、そのセルがクリック可能なリンクになります。リンクをクリックすると、指定された数式内容に基づいて、To、件名、本文フィールドが事前に入力されたデフォルトのメールアプリケーションが開きます。さらに、動的なメッセージのためにセル参照を使用して数式を調整することもできます。
- 例:A2の値を受信者、B2の値をリンクとして使用する場合:
=HYPERLINK("mailto:"&A2&"?subject=Hello&body=Please visit: "&B2, "Email User")
利点: 簡単に実装でき、プログラミングは不要で、動的なコンテンツに対応しています。データセットや多数のリンクを一度に生成する場合に柔軟です。
欠点: 送信は自動化されません—ユーザーが各メールを手動で確認して送信する必要があります。本文の長さはmailtoプロトコルによって制限されるため、長い文章やフォーマットされた本文は切り捨てられるか、正しく表示されない可能性があります。

Kutools AIでExcelの魔法を解き放つ
- スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
- カスタム数式: ワークフローを合理化するための独自の数式を生成します。
- VBAコーディング: 簡単にVBAコードを作成し実装します。
- 数式の解釈: 複雑な数式を簡単に理解できます。
- テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
関連記事
Excelのセル値に基づいてメールを自動送信する
特定の受信者に対して、Excelの指定されたセル値に基づいてOutlook経由でメールを送信したいとします。たとえば、ワークシート内のD7セルの値が200より大きい場合、自動的にメールが作成されます。この記事では、この問題を迅速に解決するためのVBA方法を紹介します。
Excelでボタンをクリックしてメールを送信する
ExcelワークシートのボタンをクリックしてOutlook経由でメールを送信する必要がある場合、どのようにすればよいでしょうか?この記事では、それを達成するための詳細なVBA方法を紹介します。
Excelで期日が到来した場合にメールを送信する
列Cの期日が7日以内(現在の日付が2017/9/13の場合)、列Aの指定された受信者に列Bの指定された内容でリマインダーメールを送信します。これを実現するにはどうすればよいでしょうか?この記事の方法がお手伝いします。
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得