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

Outlook VBAで送信者のメールアドレスを取得する方法

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

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

スポンサーリンク

Outlook VBAとは?

Outlookのイメージ

Outlookのイメージ

まず、Outlook VBAについて簡単に説明しますね。VBAは「Visual Basic for Applications」の略で、OutlookなどのMicrosoft Office製品を自動化するためのプログラミング言語です。これを使うと、手作業で行っていた繰り返しの作業を自動化できるんですよ。

送信者のメールアドレスを取得する基本的な方法

Outlookで受信したメールの送信者のアドレスを取得するには、VBAで以下のように記述します。

vba
Dim mail As Outlook.MailItem
Dim senderAddress As String

Set mail = Application.ActiveInspector.CurrentItem
senderAddress = mail.SenderEmailAddress
MsgBox senderAddress

このコードでは、現在開いているメールの送信者アドレスを表示します。`SenderEmailAddress`プロパティを使うことで、送信者のメールアドレスを取得できます。

Exchange環境での注意点

ただし、会社などでExchangeサーバーを使っている場合、`SenderEmailAddress`プロパティが期待した形式のアドレスを返さないことがあります。例えば、`/O=EXAMPLE/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=USER`のような形式です。

このような場合、以下のようにしてSMTP形式のアドレスを取得できます。

vba
Dim mail As Outlook.MailItem
Dim senderAddress As String

Set mail = Application.ActiveInspector.CurrentItem

If mail.SenderEmailType = "EX" Then
Dim sender As Outlook.AddressEntry
Set sender = mail.Sender

If sender.AddressEntryUserType = olExchangeUserAddressEntry Or sender.AddressEntryUserType = olExchangeRemoteUserAddressEntry Then
Dim exchUser As Outlook.ExchangeUser
Set exchUser = sender.GetExchangeUser()
If Not exchUser Is Nothing Then
senderAddress = exchUser.PrimarySmtpAddress
End If
End If
Else
senderAddress = mail.SenderEmailAddress
End If

MsgBox senderAddress

このコードでは、送信者がExchangeユーザーの場合、`PrimarySmtpAddress`プロパティを使って正しいメールアドレスを取得しています。

実際の活用例

例えば、特定の送信者からのメールに自動でフラグを付けたい場合、以下のようにコードを応用できます。

vba
Sub FlagSpecificSender()
Dim inbox As Outlook.Folder
Dim mail As Outlook.MailItem
Dim i As Integer

Set inbox = Application.Session.GetDefaultFolder(olFolderInbox)

For i = inbox.Items.Count To 1 Step -1
If TypeOf inbox.Items(i) Is Outlook.MailItem Then
Set mail = inbox.Items(i)
If mail.SenderEmailAddress = "[email protected]" Then
mail.FlagIcon = olYellowFlagIcon
mail.Save
End If
End If
Next i
End Sub

このコードでは、受信トレイ内のメールをチェックし、特定のアドレスからのメールに黄色のフラグを付けています。

よくある質問や疑問

Q1: VBAを使うのは初めてですが、どこでコードを入力すればいいですか?

心配いりません。OutlookでVBAコードを入力するには、以下の手順を試してみてください。

  1. Outlookを開きます。
  2. キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAエディターを開きます。
  3. 左側のプロジェクトエクスプローラーで「ThisOutlookSession」をダブルクリックします。
  4. 右側のコードウィンドウに、先ほどのコードを貼り付けます。
  5. 貼り付けたコード内の特定のメールアドレス(例: [email protected])を、実際に使用したいアドレスに置き換えてください。
  6. コードを保存して、VBAエディターを閉じます。

これで、Outlookで特定の送信者からのメールに自動でフラグを付けるマクロが設定されました。

Q2: このコードはどのバージョンのOutlookで使えますか?

このコードは、Microsoft Outlook 2010以降のバージョンで動作します。ただし、環境によっては一部のプロパティやメソッドが異なる場合がありますので、ご自身のOutlookバージョンに合わせて調整してください。

まとめ

いかがでしたか?OutlookでVBAを使って送信者のメールアドレスを取得する方法をご紹介しました。最初は難しく感じるかもしれませんが、慣れてくるととても便利に使えますよ。他にも疑問やお悩み事があればお気軽に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をコピーしました