こんにちは!Outlook VBAの自動化の世界へようこそ。
これまで「マクロの記録」頼みだったり、プレーンテキストの味気ないメール送信に限界を感じたりしていませんか?
「OutlookのVBAでHTMLメールを送りたいけれど、Outlookの裏で動いているレンダリングエンジン(実はWordと同じ仕組みなんです!)のせいで、CSSが思うように効かなくてレイアウトがグチャグチャになる……」
現場のエンジニアなら、一度は頭を抱えたことがある悩みですよね。
今回は、どんな環境で見ても崩れない、社内規定のフォーマットに準拠した「美しく、プロフェッショナルなHTMLメール」をVBAで自在に構築する極意を伝授します。
ここをクリアすれば、あなたもOutlook VBAの中級者として胸を張れるようになりますよ。しっかりついてきてくださいね!
—
1. なぜOutlookのHTMLメールはレイアウトが崩れるのか?
まず敵を知ることから始めましょう。
Webブラウザ(ChromeやEdgeなど)であれば、現代的なCSS(FlexboxやGridなど)を使って自由自在にデザインできますよね。
しかし、Outlookがメールを表示する際に使うエンジンは、なんと「Microsoft Word」です。
そのため、Web標準のCSSを書くと、以下のような悲劇が起きます。
- `margin`や`padding`が意図通りに効かない
- `float`レイアウトが盛大に崩れる
- 外部CSSファイル(``)や`