【実務・中級編】Outlookの「アイテム」のBodyとHTMLBodyの相互変換と、テキスト抽出の正規表現活用 – Outlook VBA解析バイブル

スポンサーリンク

Outlook VBAを掌握する極限の知見:HTMLメール本文の「完全テキスト抽出」と堅牢な設計論

こんにちは。開発プロジェクトの現場で、数々のOutlook自動化の闇を見てきたチーフアーキテクトだ。

業務効率化ツールとしてOutlook VBAを導入したものの、「HTMLメールの本文をきれいに取得できず、不要なタグや変な改行が残る」「担当者が変わると文字化けやパースエラーが頻発する」といった壁にぶ돌当たっていないだろうか?

ネット上には「`Item.Body`を使えばいい」「`Replace`関数でタグを消せばいい」といった表層的な情報があふれている。しかし、実務の現場で飛び交うメールはそんなに甘くない。CSS、インライン画像、謎のOutlook独自タグ、そして巧妙に隠された空白文字。これらを甘く見たコードは、必ず本番稼働後にバグを引き起こす。

今回は、Outlookのオブジェクトモデルの深淵を覗き、`Body`と`HTMLBody`のメカニズムを完全理解した上で、実務で絶対に破綻しない「正規表現を用いたHTMLテキスト抽出の極意」を授けよう。

1. なぜ「`Body`」だけでは実務で使い物にならないのか

Outlook VBAにおいて、メールの本文を表すプロパティには主に以下の2つが存在する。

  • `Body`: プレーンテキスト形式での本文。Outlookが自動的にHTMLをテキストに変換したものが格納される。
  • `HTMLBody`: HTML形式のソースコードそのもの(``, ``, `