目次
使用環境
- OS:Windows 10 Pro(バージョン:20H2)
- ソフト:Microsoft Excel VBA、Outlook
経緯
以前、VBAを使ってOutlookメールを作成する際、
本文に改行を入れるために**「& vbCrLf」**を何度も書いていましたが、
コードが非常に読みづらく、美しくありませんでした。
そこで今回は、よりすっきりとした記述方法について学びました。
解決方法:For文を使って本文を構築する
本文に複数行を挿入する場合、For文でループさせながら本文を組み立てると、
非常にきれいにまとめることができます。
コード例(D5~D62セルの内容を本文に改行付きで追加)
Dim i As Long
For i = 5 To 62
objMail.Body = objMail.Body & Range("D" & i).Value & Chr(10)
Next i
コード解説
- 1行目:カウンター変数
i
をLong型で宣言します。 - 3行目:5行目から62行目まで、D列のセルを順番に読み込みます。
- 4行目:
Range("D" & i).Value
で、対象のセルの値を取得します。Chr(10)
で改行コード(LF:Line Feed)を挿入します。- 既存の本文(
objMail.Body
)に、セルの内容と改行を順次追加していきます。
ポイントまとめ
Chr(10)
は改行を表すコード(LF)で、Outlookの本文でも問題なく機能します。- 本文に直接「& vbCrLf &」を連続で書くより、For文を使ったほうがスッキリし、メンテナンス性も向上します。
- セル範囲を変えるだけで、読み込む本文内容を簡単に変更できる柔軟性もあります。
まとめ
Outlookのメール本文をきれいに改行しながら作成したい場合は、
- For文でセルの内容を順番に読み込む
Chr(10)
を使って改行を入れる
この方法を使うことで、
「読みやすく、拡張しやすい」コードを書くことができます。
メール自動化の品質も向上しますので、ぜひ活用していきたいと思います。
ここまでお読みいただき、誠にありがとうございました。