- 公開日:
- 更新日:
OutlookのVBAでできること
本記事では、OutlookでVBAを使う際に必要な手順と、VBAでできることについてご紹介します。
OutlookでVBAを使えば、日報作成/メールに打つ文章のテンプレート作成/メール情報の取得などを行うことができます。
VBAを活用することで一連の操作をボタンひとつで行うことができるため、作業の効率化に一役買ってくれるはずです。
OutlookのVBAを使う際の事前準備
OutlookでVBAを使うための事前準備についてご説明します。
開発タブを表示する
OutlookでVBAを使うには、リボンに「開発」タブを表示させておく必要があります。
開発タブを表示させる方法は以下のとおりです。
【ファイル】タブを選択します。
【オプション】タブを選択します。
「Outlookのオプション」ダイアログボックスが表示されました。
①【リボンのユーザー設定】タブを選択し、②「開発」に【チェックマーク】を入れ、③【OK】ボタンを押します。
リボンに開発タブが表示されました。
VBAを起動する
OutlookでVBAを起動する方法については、以下のとおりです。
①【開発】タブ、②【Visual Basic】の順に選択します。
「Microsoft Visual Basic Applications」が起動しました。
標準モジュールのエディタを表示させる
コードを打ち込むにはエディタを表示させておく必要があります。
標準モジュールのエディタを表示させる方法については、以下のとおりです。
①【挿入】タブ、②【標準モジュール】の順に選択します。
標準モジュールのエディタが表示されましたので、これでコーディングする準備が整いました。
便利なVBAでできること
メール作成/署名/メール情報の確認など、これらを手動で行っている方は多いかと思います。
VBAを使えば、コードを打ち込むことで作業を自動化させることができます。
VBAで特定の動作を自動化させる方法については、各セクションをご覧ください。
メール作成
OutlookのVBAでメール作成を行う方法は以下のとおりです。
①【開発】タブ、②【Visual Basic】の順に選択します。
「Microsoft Visual Basic for Applications」が起動しました。
①以下のコードを入力します。
Sub Createmail()
Dim Createmail As Object
Set Createmail = CreateItem(olMailItem)
With Createmail
'メールを作成する
.To = "testmail@xxx.xx" '宛先
.CC = "CCtest@xxx.xx" 'CC
.Subject = "メール作成テスト" '件名
'メール本文
.Body = "こんにちは!" & vbCrLf & vbCrLf & _
"メール作成のテストを行います。" & vbCrLf & vbCrLf
'作成メールの表示
.Display
End With
End Sub
②【マクロの実行】を選択します。
新規メールが作成されました。
マクロを実行すると、このようにメールが自動で作成されます。
メールの情報を取得する
VBAを使えばメールの情報を取得することができます。
以下では、取得したメールの情報を別のウィンドウに書き出す方法についてご説明します。
①【受信トレイ】、②【情報を取得したいメール】の順に選択します。
①【開発】タブ、②【Visual Basic】の順に選択します。
①Ctrl+Gを押して、イミディエイトウィンドウを表示させます。
②以下のコードを入力します。
Sub MailInfo()
'選択しているメールの情報を取得する
Dim objSelect As Object
Dim MailInfo As Object
Set objSelect = ActiveExplorer.Selection
Set MailInfo = objSelect.Item(1)
'メールの情報をイミディエイトウィンドウに書き出す
With MailInfo
Debug.Print "受信日 :" & .ReceivedTime
Debug.Print "送信者 :" & .SenderName
Debug.Print "件名 :" & .Subject
Debug.Print "送信先(To) :" & .To
Debug.Print "送信者(CC) :" & .CC
Debug.Print "送信者(BCC):" & .BCC
Debug.Print "本文 :" & .Body
End With
End Sub
③【マクロの実行】を選択します。
イミディエイトウィンドウに先ほど選択したメールの情報が書き出されました。
署名メール作成
Outlookには「署名」機能があります。
署名機能とは、下図のように自分の情報を自動記載する機能です。メールの下部に記載する形でよく使われます。
OutlookのVBAでは署名付きのメールを自動で作成することができます。
署名付きメールを作成するには、まずOutlookで署名の設定をする必要があります。署名機能の設定を行う方法は以下のとおりです。
【ファイル】タブを選択します。
【オプション】タブを選択します。
「Outlook のオプション」ダイアログボックスが表示されました。
①【メール】タブを選択し、②【署名】ボタンを押します。
「署名とひな形」ダイアログボックスが表示されました。
【新規作成】ボタンを押します。
「新しい署名」ダイアログボックスが表示されました。
①「この署名の名前を入力してください」に『任意の名前(例:署名テスト)』を入力し、②【OK】ボタンを押します。
①「署名の編集」に『署名』を入力します。
②「新しいメッセージ」横の【プルダウンメニュー】、③【任意の署名(例:署名テスト)】の順に選択します。
【OK】ボタンを押します。
これで署名機能の設定は完了しました。VBAで署名付きメールを作成する方法は以下のとおりです。
①【開発】タブ、②【Visual Basic】の順に選択します。
①以下のコードを入力します。
Sub MailWithSignature()
'メールの作成
Dim MailWithSignature As Object
Set MailWithSignature = CreateItem(olMailItem)
Dim strSignature As String
With MailWithSignature
.Display
strSignature = .Body
'宛先
.To = "testmail@xxx.xx" '宛先
.CC = "CC@xxx.xx" 'CC宛先
.BCC = "BCC@xxx.xx" 'BCC宛先
'件名
.Subject = "署名メールテスト"
'本文
.Body = "署名メールのテストです。" & vbCrLf & _
"自動で署名メールの作成を行います。"
'署名
.Body = .Body + strSignature
.Display 'メールを表示
End With
End Sub
②【マクロの実行】を選択します。
署名付きメールが自動で作成されました。
未読メール取得
VBAを使えば、未読メールの件数を取得してダイアログボックスで表示させることも可能です。
未読メールを取得する方法については、以下のとおりです。
①【開発】タブ、②【Visual Basic】の順に選択します。
①以下のコードを入力します。
Private Sub UnReadMail()
Set myNamespace = GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
lngMailcnt = myInbox.UnReadItemCount
MsgBox "未読メールは" & lngMailcnt & "件です"
End Sub
②【マクロを実行】を選択します。
「Microsoft Outlook」ダイアログボックスが表示されます。
未読メールの件数を取得することができました。
その他OutlookのVBAでできること
OutlookのVBAでは、ほかにも様々な動作を実行できます。
その他OutlookのVBAでできることについては、以下の例などが挙げられます。
- メールを移動
- 添付ファイルを保存
- メール送信時に警告を出す
- 予定表を取得
OutlookのVBAについて詳しく知りたい方は、以下の本がおすすめです。
おすすめの書籍
Excel VBAユーザーのためのOutlook VBA入門 (技術の泉シリーズ(NextPublishing))
\毎月11日と22日はゾロ目の日 クーポン争奪戦/Yahoo!ショッピングで価格を見る