Outlook VBAでメールアドレスを取得する方法【初心者向け解決ガイド】

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

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

スポンサーリンク

Outlook VBAとは?

Outlookのイメージ

Outlookのイメージ

まず、Outlook VBAについて簡単に説明しますね。VBAとは「Visual Basic for Applications」の略で、Microsoftのアプリケーションを自動化するためのプログラミング言語です。Outlook VBAを使うと、Outlookの作業を自動化したり、カスタマイズしたりできます。例えば、特定のメールを自動で振り分けたり、メールアドレスを取得したりすることが可能です。

メールアドレスを取得する方法

では、具体的にOutlook VBAを使ってメールアドレスを取得する方法を見ていきましょう。ここでは、受信したメールの差出人のメールアドレスを取得する方法をご紹介します。

差出人のメールアドレスを取得する手順

1. Outlookを開きます。
2. キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAの編集画面を開きます。
3. 上部のメニューから「挿入」をクリックし、「モジュール」を選択します。
4. 表示された白い画面に、以下のコードをコピーして貼り付けます。

vba
Sub GetSenderEmail()
Dim olApp As Outlook.Application
Dim olNs As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem
Dim senderEmail As String

Set olApp = Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set olFolder = olNs.GetDefaultFolder(olFolderInbox)

For Each olMail In olFolder.Items
If olMail.Class = olMail Then
senderEmail = olMail.SenderEmailAddress
Debug.Print senderEmail
End If
Next olMail
End Sub

5. コードを貼り付けたら、キーボードの「F5」キーを押して実行します。
6. 実行後、VBAの画面下部にある「イミディエイトウィンドウ」に差出人のメールアドレスが一覧表示されます。

この手順で、受信トレイ内のメールの差出人アドレスを取得できます。ただし、企業内でMicrosoft Exchangeを使用している場合、`SenderEmailAddress`では正確なメールアドレスが取得できないことがあります。その場合は、以下のように`PropertyAccessor`を使用して取得します。

vba
Sub GetSenderSMTPAddress()
Dim olApp As Outlook.Application
Dim olNs As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem
Dim senderEmail As String
Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

Set olApp = Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set olFolder = olNs.GetDefaultFolder(olFolderInbox)

For Each olMail In olFolder.Items
If olMail.Class = olMail Then
Set pa = olMail.Sender.PropertyAccessor
senderEmail = pa.GetProperty(PR_SMTP_ADDRESS)
Debug.Print senderEmail
End If
Next olMail
End Sub

この方法で、Exchange環境でも正確なメールアドレスを取得できます。

よくある質問や疑問

Q1: VBAって難しそうですが、初心者でも使えますか?

最初は少し戸惑うかもしれませんが、基本的な操作を覚えれば大丈夫です。今回のような簡単なコードから始めて、少しずつ慣れていきましょう。

Q2: 他のメールアドレス情報も取得できますか?

はい、できます。例えば、受信者(To、CC、BCC)のメールアドレスを取得することも可能です。以下のコードで実現できます。

vba
Sub GetRecipientEmails()
Dim olApp As Outlook.Application
Dim olNs As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem
Dim recip As Outlook.Recipient
Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

Set olApp = Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set olFolder = olNs.GetDefaultFolder(olFolderInbox)

For Each olMail In olFolder.Items
If olMail.Class = olMail Then
For Each recip In olMail.Recipients
Set pa = recip.PropertyAccessor
Debug.Print pa.GetProperty(PR_SMTP_ADDRESS)
Next recip
End If
Next olMail
End Sub

このコードを実行すると、各メールの受信者のメールアドレスが表示されます。

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

LINE公式

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

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

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

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

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

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

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

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

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

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

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

相談しに行く

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

まとめ

Outlook VBAを使えば、メールアドレスの取得など、さまざまな作業を自動化できます。最初は難しく感じるかもしれませんが、少しずつ試してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

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