Outlookで文字装飾やレイアウトを変えてメールを送信する方法
今回の目標
Outlook(classic) で、メール本文のフォントの変更や表を埋め込む方法を解説します。
メールの送信や下書き、ファイルを添付する方法については前編をご確認ください。
Outlookでメールを送信する方法
目標リスト
- 本文の一部を太字や斜体など、装飾ができるようになる
- レイアウトを設定できるようになる
- メール内に表(テーブル)を埋め込めるようになる
メール本文の文字を装飾する
HTMLBody プロパティについて
前回、Outlook オブジェクトの CreateItem メソッドに 0 を指定して、MailItem オブジェクトを作成し、メールの本文を Body プロパティに設定しました。
しかし Body は「テキスト形式」の本文であるため、細かく太字・斜体・色などを装飾することはできません。
そこで、文字装飾やレイアウトを行いたい場合は HTMLBody プロパティを使用します。
HTMLBody はメール本文を HTML として扱うため、<b> や <i>、<table> といった HTML タグを使うことで、太字・斜体・文字色・背景色・表組みなどの装飾が可能になります。
HTMLタグとは?
HTMLとは、Webページの見た目や構造を決めるための“マークアップ言語” です。
文字の装飾、文字サイズの変更、表(テーブル)の作成などを行うために HTMLタグという決まった書き方を使います。
詳しい説明は本来の趣旨から外れるため省略しますが、「Webページの見た目を作るためのルール(記号)」と覚えておけば十分です。
HTMLタグは、「<タグ名>」と 「</タグ名>」 で文字を挟むことで装飾を適用できます。
例えば、文字を太字にしたい場合は、<b>タグを使います。「<b>テスト</b>」と書くと、「テスト」のように太字で表示されます。
注意点として、HTMLでは、改行や複数の半角スペースを入力しても、画面上では 1 つの空白として扱われます。
改行や複数の空白をそのまま表示したい場合は、<br> や を使います。
メール本文の設定に便利なタグ
メール本文の設定に便利なタグです。
具体的には、文字を装飾するタグ、レイアウトを変更するタグなどです。
詳細な情報を知りたい方は、Googleで「HTML タグ」等で検索してください。
文字を装飾するタグです。
| タグ名 | 説明 |
|---|---|
| b | 文字を太字にする。 |
| i | 文字を斜体にする。 |
| u | 文字に下線を引く。 |
| strike | 文字に打ち消し線を入れる。 |
spanタグを使用して、文字のサイズや文字の色、フォントを変更する方法です。
各設定で span の後ろの「style="~"」が異なります。
| タグ + 設定 | 説明 |
|---|---|
| span style="color:red;" | フォントカラーを 赤 にする。 |
| span style="font-size:14pt;" | フォントサイズを 14 にする。 |
| span style="font-family:Meiryo UI;" | フォントを Meiryo UI にする。 |
改行するタグ「br」です。
文字の装飾の場合、どこからどこまで装飾するかを明確にするためタグを囲う必要がありましたが、改行タグは囲う必要はありません。
(<br> </br> ではなく、<br> だけでOKです)。
| タグ名 | 説明 |
|---|---|
| br | 改行する。 |
HTMLでは、タグで < や > などの記号文字を使用しています。
メール本文にこれらの文字を表示させたいときは別の文字に置き換えます。
| 文字 | 代替文字 |
|---|---|
| < | < |
| > | > |
| & | & |
| 半角スペース | |
| ' | ' |
| " | " |
p タグを使用して、レイアウトを設定します。
各設定で p の後ろの「style="~"」が異なります。
| タグ + 設定 | 説明 |
|---|---|
| p | 段落。上下を少し空ける。 |
| p style="margin-left:2em;" | 左側に2文字分の空白を空ける。 |
| p style="margin-left:60px;" | 左側に60px分の空白を空ける。 |
| p style="text-align:left;" | 文字を左寄せにする。 |
| p style="text-align:center;" | 文字を中央寄せにする。 |
| p style="text-align:right;" | 文字を右寄せにする。 |
表を作成する方法です。
少し複雑で、table タグで囲った後、行の開始と終了時に tr タグ、見出し部分は列ごとに th タグ、データ部分は列ごとに td タグで囲います。
<table>
<tr><th>項目名1</th><th>項目名2</th></tr>
<tr><td>A</td><td>100</td></tr>
<tr><td>B</td><td>200</td></tr>
</table>
HTMLBody プロパティでメールを作成する
改行する
改行する場合は、br タグを使用します。
タグを使用する際は、「<br>」のように < (小なり) と > (大なり) で囲ってください。
サンプルコード
Sub OutlookMailHtmlbody1()
Dim olApp As Object
Dim olMail As Object
Dim msgMail As String
'Outlookアプリケーションを取得
Set olApp = CreateObject("Outlook.Application")
'新しいメールアイテムを作成
Set olMail = olApp.CreateItem(0) '0 = olMailItem
'メール本文の作成
msgMail = "メールの本文です" & "<br>" & "ab"
With olMail
.To = "test@example.com" '宛先
.Subject = "メールの件名です" '件名
.HTMLBody = msgMail '本文
.Display 'Outlook(classic) を画面に表示する
.Save '下書き保存する
End With
'後片付け
Set olMail = Nothing
Set olApp = Nothing
End Sub
出力結果
Outlook(classic) のメール作成画面を表示します。
文字の装飾を行う
文字の装飾を行います。専用のタグや span タグを使用します。
サンプルコード
Sub OutlookMailHtmlbody2()
Dim olApp As Object
Dim olMail As Object
Dim msgMail As String
'Outlookアプリケーションを取得
Set olApp = CreateObject("Outlook.Application")
'新しいメールアイテムを作成
Set olMail = olApp.CreateItem(0) '0 = olMailItem
'メール本文の作成
msgMail = "メールの本文です" & "<br>"
msgMail = msgMail & "<b>太字です</b>" & "<br>"
msgMail = msgMail & "<i>斜体です</i>" & "<br>"
msgMail = msgMail & "<u>下線です</u>" & "<br>"
msgMail = msgMail & "<span style=""font-size:20pt;"">フォントサイズ:20pt</span>" & "<br>"
msgMail = msgMail & "<span style=""color:blue;"">青字です</span>" & "<br>"
msgMail = msgMail & "<span style=""font-family:游ゴシック;"">游ゴシックです</span>" & "<br>"
msgMail = msgMail & "<b><i><u>太字で斜体、下線付きです①</u></i></b>" & "<br>"
msgMail = msgMail & "<u><i><b>太字で斜体、下線付きです②</b></i></u>" & "<br>"
msgMail = msgMail & "<a href=""https://excelvba.work/"">地道に学ぶExcelVBAのHP</a>" & "<br>"
With olMail
.To = "test@example.com" '宛先
.Subject = "メールの件名です" '件名
.HTMLBody = msgMail '本文
.Display 'Outlook(classic) を画面に表示する
.Save '下書き保存する
End With
'後片付け
Set olMail = Nothing
Set olApp = Nothing
End Sub
出力結果
Outlook(classic) のメール作成画面を表示します。
レイアウトを設定する
レイアウトの設定を行います。主に p タグを使用します。
サンプルコード
Sub OutlookMailHtmlbody3()
Dim olApp As Object
Dim olMail As Object
Dim msgMail As String
'Outlookアプリケーションを取得
Set olApp = CreateObject("Outlook.Application")
'新しいメールアイテムを作成
Set olMail = olApp.CreateItem(0) '0 = olMailItem
'メール本文の作成
msgMail = "メールの本文です" & "<br>"
msgMail = msgMail & "<p>段落確認用①<br>段落確認用②</p>"
msgMail = msgMail & "<p style=""margin-left:2em;"">インデント①</p>"
msgMail = msgMail & "<p style=""margin-left:60px;"">インデント②</p>"
msgMail = msgMail & "<p style=""text-align:left;"">左寄せ</p>"
msgMail = msgMail & "<p style=""text-align:center;"">中央寄せ</p>"
msgMail = msgMail & "<p style=""text-align:right;"">右寄せ</p>"
With olMail
.To = "test@example.com" '宛先
.Subject = "メールの件名です" '件名
.HTMLBody = msgMail '本文
.Display 'Outlook(classic) を画面に表示する
.Save '下書き保存する
End With
'後片付け
Set olMail = Nothing
Set olApp = Nothing
End Sub
出力結果
Outlook(classic) のメール作成画面を表示します。
メール内に表を埋め込む
メール内に表を作成します。table タグや、tr タグなどを使用します。
サンプルコード
Sub OutlookMailHtmlbody4()
Dim olApp As Object
Dim olMail As Object
Dim msgMail As String
Dim sty1 As String '表のスタイル
Dim sty2 As String '表の見出しのスタイル
'Outlookアプリケーションを取得
Set olApp = CreateObject("Outlook.Application")
'新しいメールアイテムを作成
Set olMail = olApp.CreateItem(0) '0 = olMailItem
sty1 = "border-collapse:collapse;padding: 0.5em"
sty2 = "background-color:#ffff10;"
'メール本文の作成
msgMail = "商品表" & "<br>"
msgMail = msgMail & "<table border=""1"" style=""" & sty1 & """>"
msgMail = msgMail & "<tr style=""" & sty2 _
& """><th>No</th><th>商品名</th><th>価格</th></tr>"
msgMail = msgMail & "<tr><td>1</td><td>みかん</td><td>500</td></tr>"
msgMail = msgMail & "<tr><td>2</td><td>りんご</td><td>250</td></tr>"
msgMail = msgMail & "<tr><td>3</td><td>いちご</td><td>700</td></tr>"
msgMail = msgMail & "</table>"
With olMail
.To = "test@example.com" '宛先
.Subject = "メールの件名です" '件名
.HTMLBody = msgMail '本文
.Display 'Outlook(classic) を画面に表示する
.Save '下書き保存する
End With
' 後片付け
Set olMail = Nothing
Set olApp = Nothing
End Sub
出力結果
Outlook(classic) のメール作成画面を表示します。
