【Outlook VBA極限解説】Excel表をCSSで美しくHTMLメール化する:レイアウト崩壊を防ぐアーキテクチャの構築
業務システムにおいて、Excelで集計したレポートをOutlook経由で自動配信する要件は枚挙にいとまがない。しかし、「Excelのセル範囲をそのままHTMLメールに貼り付ける」という一見シンプルな要件ほど、メーラー(特にOutlookの独自レンダリングエンジン)の気まぐれによって無残にレイアウトが崩壊する地雷原はない。
世の多くのサンプルコードは、表の見た目だけを整えて「動いた気」になっているが、実際のエンタープライズ環境――多様なデバイス、DPIスケーリング、そしてMicrosoft WordのHTMLレンダリングエンジン(WordHTML)という強烈なレガシー仕様の前に、それらのコードは容易に沈黙する。
今回は、Outlook VBAとExcel間におけるメモリのライフサイクル管理を極めつつ、CSSインライン化とWordエンジンに屈しない堅牢なHTMLテーブル生成の極意を、チーフアーキテクトの視点から授けよう。
—
1. なぜOutlookのHTMLメールは「崩れる」のか?
大前提として、Outlook(デスクトップ版)はメールの表示・編集にMicrosoft Wordのレンダリングエンジンを使用している。
Webブラウザ(ChromeやEdge)のモダンなBlinkやWebkitではない。つまり、CSS3の高度なセレクタ、Flexbox、Grid、そして外部CSSや`