Outlookは、ビジネスでもプライベートでも多くの人が使っているメールソフトです。
日々の業務で「もう少し効率化したいな」と思ったことはありませんか?
そんな時に活躍するのが「VBA(Visual Basic for Applications)」です。
Outlook VBAを使えば、受信メールの自動振り分けや特定条件のメール送信、予定の一括登録など、手作業では面倒な操作を自動化できます。
この記事では、Outlook VBAでできることや活用例、設定の仕方について初心者にもわかりやすく解説していきます。
VBA(Visual Basic for Applications)とは、Microsoft Office製品に組み込まれているマクロ言語です。
WordやExcelで使われることが多いですが、Outlookでも強力な自動化ツールとして使うことができます。
Outlook VBAを使うことで、受信トレイの管理や、メールの自動返信、予定表や連絡先の操作などが可能になります。
つまり、Outlookの機能を自分なりにカスタマイズし、業務の時短やミス防止に役立てることができるのです。
まず、Outlook VBAを使うためには以下の手順でVBAエディタを開く必要があります。
初回は「マクロのセキュリティ設定」を変更する必要があります。
「ファイル」→「オプション」→「セキュリティセンター」→「マクロの設定」で「すべてのマクロを有効にする」を選択しておきましょう(セキュリティリスクに注意)。
Outlook VBAを使えば、受信したメールの件名に応じて、自動で特定のフォルダに移動させることができます。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim ns As Outlook.NameSpace
Dim inbox As Outlook.MAPIFolder
Dim targetFolder As Outlook.MAPIFolder
Dim mail As Outlook.MailItem
Set ns = Application.GetNamespace("MAPI")
Set inbox = ns.GetDefaultFolder(olFolderInbox)
Set mail = ns.GetItemFromID(EntryIDCollection)
If InStr(mail.Subject, "見積依頼") > 0 Then
Set targetFolder = inbox.Folders("見積")
mail.Move targetFolder
End If
End Sub
このスクリプトでは「件名に『見積依頼』が含まれているメール」を、「見積」フォルダに移動させるようにしています。
外出中や不在時に、特定の条件に合致したメールに自動で返信することもできます。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim mail As Outlook.MailItem
Set mail = Application.Session.GetItemFromID(EntryIDCollection)
If mail.Subject Like "*お問い合わせ*" Then
Dim reply As Outlook.MailItem
Set reply = mail.Reply
reply.Body = "お問い合わせありがとうございます。後ほどご連絡いたします。" & vbCrLf & reply.Body
reply.Send
End If
End Sub
このコードは、件名に「お問い合わせ」と含まれているメールに対して自動返信を行う仕組みです。
メールの本文や件名に特定のキーワードが含まれていたら、ログファイルとして保存する処理も可能です。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim mail As Outlook.MailItem
Set mail = Application.Session.GetItemFromID(EntryIDCollection)
If InStr(mail.Body, "重要") > 0 Then
Open "C:\log\important_mails.txt" For Append As #1
Print #1, "日時:" & Now
Print #1, "件名:" & mail.Subject
Print #1, "送信者:" & mail.SenderName
Print #1, "-----"
Close #1
End If
End Sub
このスクリプトにより、「重要」という文字を含むメールの情報をテキストファイルに記録できます。
これらはVBAを使うことで可能になります。特に日々繰り返す処理を自動化すると、業務の効率が大きく向上します。
Outlook VBAを使えば、手間のかかる日常業務を自動化し、作業効率を大きく向上させることができます。
簡単なコードから始めて、少しずつカスタマイズしていくことで、自分だけのOutlookを作ることも可能です。
「Outlookってもっと使いこなせるんだ!」と気づいていただけたなら、ぜひこの記事の内容を実際に試してみてください。
日々の業務が少しでも楽になるきっかけになれば幸いです。