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

VBAでOutlookのメール本文を取得する方法とは?【初心者向け解決ガイド】

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

皆さん、こんにちは!今日は、ExcelのVBAを使ってOutlookのメール本文を取得する方法をご紹介します。パソコンやスマホがちょっと苦手な方でも大丈夫。ゆっくり一緒に学んでいきましょう。

スポンサーリンク

はじめにVBAとOutlookの連携とは?

まず、VBAとは「Visual Basic for Applications」の略で、ExcelなどのOffice製品を自動化するためのプログラミング言語です。これを使うと、OutlookのメールをExcelに取り込むといった作業が自動でできるようになります。

準備Excelでの設定

最初に、Excelで以下の設定を行います。

  1. 開発タブの表示
    Excelを開き、上部の「ファイル」→「オプション」→「リボンのユーザー設定」をクリックし、「開発」のチェックボックスにチェックを入れて「OK」を押します。
  2. 参照設定
    「開発」タブの「Visual Basic」をクリックしてVBAエディタを開きます。上部の「ツール」→「参照設定」を選び、「Microsoft Outlook xx.x Object Library」にチェックを入れて「OK」を押します。

基本的なコードの書き方

では、実際にコードを書いてみましょう。以下の手順で進めます。

  1. Outlookアプリケーションの起動Outlookを操作するためのオブジェクトを作成します。
  2. 受信トレイの取得
    Outlookの受信トレイフォルダを指定します。
  3. メールアイテムの取得
    受信トレイ内のメールを順番に取り出します。
  4. メール本文の表示
    各メールの本文を表示します。

以下がそのサンプルコードです。

VBコード
Sub GetOutlookMailBody()
' Outlookアプリケーションを起動
Dim olApp As Outlook.Application
Set olApp = New Outlook.Application

' 名前空間を取得
Dim olNamespace As Outlook.Namespace
Set olNamespace = olApp.GetNamespace("MAPI")

' 受信トレイフォルダを取得
Dim olFolder As Outlook.Folder
Set olFolder = olNamespace.GetDefaultFolder(olFolderInbox)

' 受信トレイ内のアイテムを取得
Dim olItems As Outlook.Items
Set olItems = olFolder.Items

' 各メールアイテムを処理
Dim olMail As Outlook.MailItem
Dim i As Integer
For i = 1 To olItems.Count
' メールアイテムか確認
If TypeName(olItems(i)) = "MailItem" Then
Set olMail = olItems(i)
' メールの件名と本文を表示
Debug.Print "件名: " & olMail.Subject
Debug.Print "本文: " & olMail.Body
End If
Next i
End Sub

このコードを実行すると、受信トレイ内の各メールの件名と本文が表示されます。ただし、メールの数が多いと時間がかかる場合がありますので、ご注意ください。

特定のフォルダや新着メールの取得

受信トレイ以外のフォルダや、新着メールのみを取得したい場合もあります。その場合は、以下のようにコードを修正します。

特定のフォルダを指定する場合

vb
' 受信トレイ内の特定のサブフォルダを取得
Set olFolder = olFolder.Folders("サブフォルダ名")

新着メールのみを取得する場合

vb
' 受信トレイ内のアイテムを取得し、受信日時でソート
Set olItems = olFolder.Items
olItems.Sort "[ReceivedTime]", True

' 最新の10件のメールを取得
For i = 1 To 10
' メールアイテムか確認
If TypeName(olItems(i)) = "MailItem" Then
Set olMail = olItems(i)
' メールの件名と本文を表示
Debug.Print "件名: " & olMail.Subject
Debug.Print "本文: " & olMail.Body
End If
Next i

これにより、最新の10件のメールの件名と本文が表示されます。

よくある質問や疑問

Q1: コードを実行してもエラーが出ます。どうすればいいですか?

まず、参照設定が正しく行われているか確認してください。「Microsoft Outlook xx.x Object Library」にチェックが入っていることを確認しましょう。

Q2: 特定の送信者からのメールだけを取得することはできますか?

はい、可能です。以下のように、送信者のアドレスを条件に追加してください。

vb
If olMail.SenderEmailAddress = "example@example.com" Then
' メールの処理
End If

まとめ

今回は、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をコピーしました