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

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

今回は、VBAを使ってOutlookのメール本文を取得する方法をご紹介しました。最初は難しく感じるかもしれませんが、慣れてくるととても便利です。ぜひ試してみてくださいね。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

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