皆さん、こんにちは。今日は、OutlookでVBAを使ってメールの送信者のアドレスを取得する方法についてお話しします。パソコンやスマホがちょっと苦手な方でも大丈夫です。ゆっくり一緒に学んでいきましょう。
Outlook VBAとは?
まず、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コードを入力するには、以下の手順を試してみてください。
- Outlookを開きます。
- キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAエディターを開きます。
- 左側のプロジェクトエクスプローラーで「ThisOutlookSession」をダブルクリックします。
- 右側のコードウィンドウに、先ほどのコードを貼り付けます。
- 貼り付けたコード内の特定のメールアドレス(例: [email protected])を、実際に使用したいアドレスに置き換えてください。
- コードを保存して、VBAエディターを閉じます。
これで、Outlookで特定の送信者からのメールに自動でフラグを付けるマクロが設定されました。
Q2: このコードはどのバージョンのOutlookで使えますか?
このコードは、Microsoft Outlook 2010以降のバージョンで動作します。ただし、環境によっては一部のプロパティやメソッドが異なる場合がありますので、ご自身のOutlookバージョンに合わせて調整してください。
今すぐ解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
いかがでしたか?OutlookでVBAを使って送信者のメールアドレスを取得する方法をご紹介しました。最初は難しく感じるかもしれませんが、慣れてくるととても便利に使えますよ。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。
コメント