2025年3月4日【ID:0】
【Excel】マクロ不要!セルの内容でメール送信!
特定のシート上の表の内容を元にメールの本文を作成している場合などで、数式を用いて、シート内にメールの送信内容を用意することがあります。
その場合、手動でメールソフトを立ち上げてから、その送信内容をコピー&ペーストして送信している方が多いと思いますが、繰り返し作業の場合は、結構大変になります。

そんな時に、今回紹介する方法を活用することで、クリック1つでメールソフトが立ち上がり、宛先・件名・本文が自動入力された状態で送信画面を開くことができるようになります。
1. 改行コードの入力
まずは準備として、本文の改行したい位置に、以下の特殊コードを入力します。
・行内改行(同じ段落内で改行する場合):%0A
・段落改行(新しい段落を作成する場合):%0D%0A
入力する位置は同じセル内でなくても、以下のように同じ行のセルであれば問題ございません。

2. mailtoスキームの作成
次に、以下の構成の文字列になるように数式でセルの値を繋げます。
mailto:宛先?subject=件名&body=本文
セルの値と固定の文字列を繋げる場合は、「&」を活用します。
具体的には、以下のような数式になります。
="mailto:"&C2&"?subject="&C3&"&body="&CONCAT(C5:G11)
// CONCAT関数で本文の範囲の文字列を一括で結合しています。

3. ハイパーリンクの作成
最後に、先ほど数式で作成したmailtoスキームをハイパーリンクにしていきます。
ハイパーリンクにする場合は、HYPERLINK関数を活用します。
この関数の使い方は、以下になります。
=HYPERLINK(リンク先, [別名])
// リンク先:ハイパーリンクにしたい文字列を指定(URLやmailtoスキームなど)
// [別名]:表示する文字列を指定(省略時はリンク先に指定した文字列が表示される)
実際に活用した数式の例は、以下になります。
=HYPERLINK("mailto:"&C2&"?subject="&C3&"&body="&CONCAT(C5:G11),"メール送信")

4. 完成
以上の手順でハイパーリンクの完成です。
今後は、作成したハイパーリンクをクリックするだけで、以下のように本文などが入力済みの送信画面を立ち上げることができます。

5. 補足
HYPERLINK関数の引数に設定する文字列の長さは255文字以内にする必要があります。
そのため、長文を指定したい場合などは、ExcelVBAで開発するなどと別の方法で実現する必要があります。
ExcelVBAで実現する場合は、以下の記事が参考になります。
>【業務】自動メール送信