メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelからメールを送信し、本文にハイパーリンクを挿入するにはどうすればよいですか?

Author Siluvia Last modified

多くの業務シナリオでは、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がインストールされ、アクセス可能であることを確認してください。

copy and paste the code into the module

3. コードの編集後、F5キーを押して実行します。Outlookで新しいメールウィンドウが開き、指定されたフィールドが事前に入力され、本文にハイパーリンクが埋め込まれます。メッセージを確認し、[送信]をクリックして送信します。

ヒント: Outlookでセキュリティプロンプトが表示された場合、コードによるメール送信が許可されていること、およびマクロのセキュリティ設定が実行を許可していることを確認してください。最良の結果を得るためには、大規模なオーディエンスに自動化する前に、必ずサンプルメッセージでテストしてください。

the email is created with specified fields and body with hyperlink listed inside

利点: 埋め込みハイパーリンクと自動送信機能を持つカスタマイズ可能なフォーマット済み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プロトコルによって制限されるため、長い文章やフォーマットされた本文は切り捨てられるか、正しく表示されない可能性があります。

a screenshot of kutools for excel ai

Kutools AIでExcelの魔法を解き放つ

  • スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
  • カスタム数式: ワークフローを合理化するための独自の数式を生成します。
  • VBAコーディング: 簡単にVBAコードを作成し実装します。
  • 数式の解釈: 複雑な数式を簡単に理解できます。
  • テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
AI搭載ツールでExcelの機能を強化しましょう。今すぐダウンロードして、かつてないほどの効率を体験してください!

関連記事

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はお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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