当サイトの記事にはプロモーションが含まれています。

Excel VBAでOutlookメールの本文を操作する方法

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、こんにちは。今日は、ExcelのVBAを使って、Outlookのメール本文を自在に操作する方法をご紹介します。これをマスターすれば、日々のメール作成が格段に効率化されますよ。

スポンサーリンク

VBAでOutlookメールを作成する基本手順

Outlookのイメージ

Outlookのイメージ

まず、VBAを使ってOutlookのメールを作成する基本的な流れを見ていきましょう。

  1. Outlookアプリケーションの起動VBAからOutlookを操作するために、まずOutlookのアプリケーションオブジェクトを作成します。
  2. メールアイテムの作成次に、Outlook上で新しいメールアイテムを作成します。
  3. メールの各種プロパティを設定宛先、件名、本文など、メールの詳細を設定します。
  4. メールの送信または表示最後に、メールを送信するか、画面に表示します。

具体的なコードは以下のようになります。

vba
Sub CreateAndSendMail()
Dim outlookApp As Object
Set outlookApp = CreateObject("Outlook.Application")

Dim mailItem As Object
Set mailItem = outlookApp.CreateItem(0) ' 0はolMailItemを指します

With mailItem
.To = "example@example.com"
.Subject = "テストメール"
.Body = "これはテストメールの本文です。"
.Send
End With
End Sub

このコードを実行すると、指定した宛先にメールが送信されます。

メール本文に表を挿入する方法

次に、メール本文に表を挿入する方法をご紹介します。例えば、Excelのデータをそのままメール本文に貼り付けたい場合などに便利です。

  1. Excelのデータをコピーまず、Excel上で挿入したいデータ範囲をコピーします。
  2. Outlookのメールアイテムを作成先ほどと同様に、新しいメールアイテムを作成します。
  3. WordEditorを使用して本文に貼り付けOutlookのメール本文はWord形式で編集できるため、WordEditorを使ってコピーしたデータを貼り付けます。

具体的なコードは以下の通りです。

vba
Sub InsertTableIntoMail()
Dim outlookApp As Object
Set outlookApp = CreateObject("Outlook.Application")

Dim mailItem As Object
Set mailItem = outlookApp.CreateItem(0)

' Excelのデータをコピー
Sheet1.Range("A1:C3").Copy

With mailItem
.Display ' メールを表示してWordEditorを使用可能にする
Dim wordEditor As Object
Set wordEditor = .GetInspector.WordEditor
wordEditor.Application.Selection.Paste
End With
End Sub

このコードを実行すると、指定したExcelの範囲がメール本文に表として挿入されます。

メール本文の書式を維持しながらテキストを追加する方法

既存のメール本文の書式を崩さずにテキストを追加したい場合、WordEditorを活用するのが効果的です。以下の手順で行います。

  1. メールアイテムを取得編集したいメールアイテムを取得します。
  2. WordEditorを使用してテキストを追加WordEditorを使って、本文の先頭や末尾、または特定の位置にテキストを追加します。

具体的なコード例を以下に示します。

vba
Sub AddTextToMailBody()
Dim mailItem As Object
Set mailItem = Application.ActiveInspector.CurrentItem

Dim wordEditor As Object
Set wordEditor = mailItem.GetInspector.WordEditor

With wordEditor.Application.Selection
.EndKey Unit:=6 ' wdStory: 文末に移動
.TypeText Text:="追加したいテキスト"
End With
End Sub

このコードを実行すると、現在開いているメールの本文末尾に指定したテキストが追加されます。

よくある質問や疑問

Q1: VBAでOutlookを操作する際、参照設定は必要ですか?

A1: はい、通常は必要です。VBAエディタの「ツール」メニューから「参照設定」を開き、「Microsoft Outlook xx.x Object Library」にチェックを入れてください。これにより、OutlookのオブジェクトをVBAで扱えるようになります。

Q2: メール本文に画像を挿入することは可能ですか?

A2: はい、可能です。WordEditorを使用して、指定した位置に画像を挿入することができます。ただし、画像のパスやサイズ調整など、細かな設定が必要となります。

まとめ

いかがでしたでしょうか。ExcelのVBAを使ってOutlookのメール本文を操作する方法をご紹介しました。これらの技術を活用すれば、日々のメール作成やデータ送信が大幅に効率化されます。ぜひ試してみてください。

他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました