Outlook VBAを掌握する極限の知見
【中級者向け】HTMLメールのレイアウト崩れを防ぐ!VBAでCSSを埋め込んだ美しいメールを作成する
開発プロジェクトの現場で、こんな絶望を味わったことはないだろうか。
「VBAで動的に生成したHTMLメールを送信したら、Outlookで開いた途端にデザインがグチャグチャに崩れた」
「ローカルのテスト環境(ブラウザ)では完璧だったのに、受信者のメールクライアント(特にデスクトップ版Outlook)で見た瞬間にレイアウトが粉砕された」
原因は明白だ。「OutlookのHTMLレンダリングエンジン」の仕様を無視しているからだ。
現代のWeb開発の常識(外部CSS、Flexbox、Grid、モダンなCSSプロパティ)は、Outlook(Microsoft 365 / 2019 / 2021等)の前では無力に等しい。Outlookのデスクトップ版は、いまだにWord(Microsoft Word)のレンダリングエンジンを内部で流用している。そのため、Web標準のCSSが一切通らないという、エンジニア泣かせのレガシーな仕様を抱えている。
今回は、この悪名高いOutlookの制限を完全に見据え、社内規定のフォーマットに準拠した「絶対に崩れない」HTMLメールをVBAで動的生成・送信するプロダクションコードを伝授する。
—
1. なぜOutlookのHTMLメールは崩れるのか?(3大鉄則)
実務で自動化ツールを組む前に、Outlookエンジンの特殊性を理解しておかなければならない。以下の3点を破った時点で、あなたのコードは「バグ製造機」と化す。
1. 外部CSS・`