皆さん、こんにちは!今日は、OutlookでVBAを使って特定の文字列を検索する方法についてお話しします。パソコンやスマホがちょっと苦手な方でも大丈夫。ゆっくり一緒に学んでいきましょう。
Outlook VBAとは?
まず、Outlook VBAって何でしょうか?簡単に言うと、Outlookの作業を自動化するためのプログラムのことです。例えば、毎日同じようなメールを探す作業を自動でやってくれるんです。便利ですよね。
文字列検索に使うInStr関数とは?
Outlookで特定の言葉やフレーズを探したいときに使うのが「InStr関数」です。この関数を使うと、例えば「会議」という言葉がメールのどこにあるかを見つけることができます。
InStr関数の基本的な使い方
InStr関数の使い方はとてもシンプルです。以下のように書きます。
vba
InStr(検索を始める位置, 検索する対象の文字列, 探したい文字列)
例えば、メールの本文に「重要」という言葉が含まれているか確認するには、次のように書きます。
vba
Dim 本文 As String
本文 = "これは重要なメールです。"
If InStr(1, 本文, "重要") > 0 Then
MsgBox "このメールは重要です。"
End If
このコードでは、本文の中に「重要」という言葉があれば、メッセージボックスで「このメールは重要です。」と表示されます。
Outlookのメールから特定の文字列を探す方法
では、実際にOutlookの受信トレイから特定の言葉を含むメールを探してみましょう。
ステップ1Outlook VBAエディタを開く
1. Outlookを開きます。
2. キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAエディタを開きます。
ステップ2新しいマクロを作成する
1. メニューの「挿入」から「標準モジュール」を選びます。
2. 新しく開いたウィンドウに、以下のコードを入力します。
vba
Sub 特定の言葉を含むメールを探す()
Dim 受信トレイ As Outlook.Folder
Dim メール As Outlook.MailItem
Dim アイテム As Object
Dim 検索語 As String
検索語 = "会議" ' ここに探したい言葉を入力します
Set 受信トレイ = Application.Session.GetDefaultFolder(olFolderInbox)
For Each アイテム In 受信トレイ.Items
If アイテム.Class = olMail Then
Set メール = アイテム
If InStr(メール.Body, 検索語) > 0 Then
MsgBox "件名: " & メール.Subject & vbCrLf & "送信者: " & メール.SenderName
End If
End If
Next アイテム
End Sub
このコードは、受信トレイの中から本文に「会議」という言葉を含むメールを探し、その件名と送信者を表示します。
よくある質問や疑問
Q1: InStr関数は大文字と小文字を区別しますか?
はい、通常は区別します。ただし、区別せずに検索したい場合は、InStr関数の4番目の引数に「vbTextCompare」を指定します。
vba
InStr(1, 本文, "重要", vbTextCompare)
Q2: 件名だけでなく、本文も検索できますか?
もちろんです。上記のコードでは、`メール.Body`で本文を検索しています。件名を検索したい場合は、`メール.Subject`を使います。
まとめ
いかがでしたか?Outlook VBAを使って特定の文字列を検索する方法をご紹介しました。最初は難しく感じるかもしれませんが、慣れてくるととても便利です。ぜひ試してみてくださいね。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。



コメント