Outlook にもExcelと同じようなマクロ機能が存在することをご存じでしょうか。マクロを使えばメールに関する操作を自動化して、時短やミス防止にも役立ちます。
この記事ではOutlookマクロを使い始める前にどんな作業が必要なのかと、できることについてまとめました。
この記事でわかること
- Outlook VBAでできることとOutlookマクロが苦手なことがわかる。
- Outlook VBAを導入する前に必ずやるべき作業の手順がわかる。
Outlook マクロとは?
Outlookマクロは、Outlookの操作をプログラミングで自動実行できるOutlookの機能です。
マクロとVBAの違いは?
マクロとは?
マクロとは「メールの件名に◎◎と入力する!」とか、「宛先に●●さんのアドレスをセットする!」とか、「メールを送信する!」などの複数の処理を組み合わせてつくる処理のカタマリのことです。マクロを用いることで処理をひとつひとつを手作業でやらなくても、マクロを1回実行するだけでできちゃいます。
VBAとは?
VBA(Visual Basic for Applications)は、マクロを記述するための言語です。Outlookさんには日本語が通じないのでOutlookさんにも通じるVBAという言語を用いてマクロを書きます。
Outlook VBAとExcel VBAの違いは?
Outlook VBAとExcel VBAの2つは同じ言語仕様なので基本的な構文は同じです。ただし、Excel VBAを扱えるからといって、いきなりOutlook VBAを直観的に操作できるかというとそれは少し難しいかなと思います。
なぜかというと、VBAからOfficeアプリケーションを操作するにはExcelオブジェクト・Outlookオブジェクトを呼び出して命令していくわけですが、両者はアプリケーションのタイプが全然違うからです。Outlook VBAを使うにはOutlookオブジェクトについて、その構造だったり、クセだったりをつかむ必要があるかなと思います。
Outlook VBAでできることは?
Outlook VBAを使えばいろいろ面倒な作業をワンアクションで完結できるよ。
たとえば私は以下のような作業をマクロ化しています。
Outlook VBAでできることの例
- メール作成時にファイルピッカー(ファイルダイアログ)を強制起動して、ファイルの添付忘れを防ぐ。
- メールの件名や本文に、当日の日付を自動挿入する。
- 添付ファイル名からメールの件名を自動作成する。
- ワンクリックでメール転送の時に宛先を追加する。
- などなど。
Outlook VBAを使い始めるには?
Outlookでは、初期設定ではOutlook VBAがセキュリティのために使えない状態になっています。このためマクロの利用を始める場合は、Outlookの2つの設定変更が必要となります。
とはいえ2~3分で終わる簡単な操作ですし、初めて使う時だけの設定なので安心してください。
Outlook VBAを使い始めるには2つの設定が必要
- 「Outlookのセキュリティ設定」を変更する。
- 「Outlookに開発タブ」を表示させる。
OutlookでVBAマクロを実行するための初期設定手順
Outlook VBAを使い始めるには2つの設定が必要
- Outlook セキュリティ設定を変更する。
- 開発タブを表示させる。
(STEP1)マクロのセキュリティ設定を変更する手順(マクロの設定)
Outlookではデフォルトではセキュリティのためにマクロが無効になっています。マクロには「マクロの設定」という専用のセキュリティレベルが用意されていて、トラストセンター(旧名:セキュリティセンター)から変更が可能です。
▲トラストセンター画面が開きますので左側メニューの「マクロの設定」をクリックします。画面右側にセキュリティレベルが表示されますので、マクロが実行できるセキュリティレベルを選択しましょう。わたしの環境ですと図の4つがありました。
マクロを実行するためには下記の3つのいずれかを選択すれば良いかと思います。
マクロの設定
- 「デジタル署名されたマクロに対しては警告を表示し、その他のマクロはすべて無効にする」
- 「すべてのマクロに対して警告を表示する」
- 「すべてのマクロを有効にする」
「デジタル署名されたマクロに対しては警告を表示し、その他のマクロはすべて無効にする」は、マクロに対してデジタル署名の発行が必要になります。office製品に含まれる証明書発行ツール(SelfCert.exe)を使って自己署名することもできます。3つの設定の中では一番面倒ではありますが、セキュリティ面では安心かなと思います。デジタル署名の設定方法はこちら。
「すべてのマクロに対して警告を表示する」は、マクロを実行するたびに警告のポップアップが表示されます。煩わしく感じるかもしれませんが、意図しないマクロが自動実行されてしまうリスクを軽減できます。
「すべてのマクロを有効にする」は、どんなマクロも警告なしで実行できます。マクロを頻繁に活用する場合は快適ですが、警告が表示されないため意図しないマクロが自動実行されてしまうリスクがあります。
設定を反映させるために、Outlookを一旦×ボタンで閉じて再度起動します。
(STEP2)開発タブを表示する手順
Outlook VBAは、VB Editor(VBE)にマクロを記述していきます。VBEは「開発」タブメニューからアクセスします(Excel VBAと同じですね)。しかし、デフォルトでは開発タブは非表示になっているため、開発タブを表示させる設定を行いましょう。
▲左側メニューの中の「リボンのユーザ設定」をクリックして、図の「開発」タブにチェックを入れます。チェックをいれたらOKボタンを押して「Outlookのオプション」画面を閉じます。
▲図のように開発タブが表示されたらOkです。
簡単なテストマクロを起動してみよう!
準備ができたので簡単なマクロを記述してみてテストしてみましょう!
▲Outlookメニューの中の「開発」をクリックします。開発タブに切り替わりましたら「Visual Basic」をクリックします。
VBEはショートカットでも開けます。その方が早いのでおすすめです!
VBEを開くショートカット
- Alt+F11
▲VBEが開きます。左側がモジュールを管理する「プロジェクトエクスプローラー」です。真ん中の黒い画面がコードを記述するコードペインです。
▲「挿入」メニューをクリック、「標準モジュール」をクリックします。
▲すると「標準モジュール」の中に「Module1」が追加されます。
▲Module1という名前だと、どんなプログラムなのかわかりにくいので名前をつけましょう。名前を変更するにはModule1を選択した状態で画面右下のプロパティウィンドウに表示された「オブジェクト名」に名前をタイプします。モジュール名にはなるべく日本語は使わない方がいいです。
▲わたしは「MyFirstTestProgram」というモジュール名に変更しました。
プロパティウィンドウが表示されていない場合
「プロパティウィンドウ」が表示されていない場合はVBEのメニュー「表示>プロパティウィンドウ」の順にクリックすると表示できます。逆にプロパティウィンドウが邪魔な場合は同じ操作で非表示にできます。
▲モジュールにプログラムを書きます。プログラムコードは真ん中の黒い部分に記述します。今回はテストとして下記のコードを実行してみます。
Sub test() MsgBox ("Hello.this is my first Outlook VBA macro") End Sub
▲Excel VBAを使ったことがある方は見覚えがあるのではないでしょうか。メッセージを表示させるMsgBox関数です。Outlook VBAでも使用することができます。
▲プログラムを実行するには「実行ボタン」をクリックします。あるいはF5キー押下でも実行できます。
▲マクロを実行するとプログラムに記述されたmsgbox関数が呼び出されてメッセージボックスが表示されます。
▲メッセージもきちんと表示されています。はじめてのOutlookマクロの成功です。
以上でマクロの準備ができました。
マクロを実行したり管理する方法
先ほどはVBEからマクロを実行しました。開発途中にテストする場合はこのようにVBEから実行します。開発後は、わざわざVBEを起動しなくてもOutlook画面からマクロを実行することができます。
マクロの2つの実行方法について紹介します!おすすめはクリック数が少ない後者の方法です。
方法1.Outlookマクロの実行
▲マクロを選択して実行します。ここで表示されるマクロ名は「Project1.マクロ名」のような形で表示されます。モジュール名ではなくマクロ名です。
マクロ名はsubの横に記述する名前です。「sub test()」の場合はtestがマクロ名です。
方法2. Outlookマクロの実行
もう1個の起動方法はショートカットを使う方法です。この方が素早く呼び出せるので時短になります。
マクロ一覧を開くショートカット
- Alt+F8
ショートカットキー
Outlook VBAのデメリットは?
Outlook VBAのデメリットやExcel VBAとの違いについてもまとめてみました。
Outlook VBAのデメリット
- Excel VBAの情報と比べて情報量が圧倒的に少ない。
- 初心者には若干ハードルが高い。
- トリガー実行には向いていない。
- Excelにある「マクロの記録」が使えない。
Outlook VBAは情報量が少ない?
Excel VBAの検索結果( 74,600,000 件)に比べて、Outlook VBAの検索結果は(約 19,200,000 件)と情報量が少ないです。
Outlook VBAは初心者には難しい?
Outlook VBAはネット上の情報量が圧倒的に少ない(特に初心者向けの情報)ので、プログミングに慣れていない方には難しく感じるかもしれません。難しく感じる方はPower Automate for desktopでのOutlook操作時短も検討してみると解決するかもしれません。
Power Automate for desktop(PAD)はWindowsユーザーなら誰でも無償(一部有償)で利用することができるMicrosoftのRPAソフトウェアです。このブログではPADの記事も多く出していますのでよろしかったらご覧になっていってくださいね。
Power Automate for desktopによるOutlook時短例
Outlook VBAはトリガーによる自動実行には向いていない?
Outlook VBAでメール受信時にメール操作を自動化する場合、PCを常時起動してOutlookを起動しっぱなしにしないといけません。こういうことをする場合はPower Automateクラウドフローの方が向いています。
Power Automateでしたらクラウド上でフローが実行されますので、ローカルPCの起動状態に依存しません。また、他のクラウドサービス(Excel・Sharepoint・Googleスプレッドシートなど)との連携も簡単なのでかなりパワフルな時短ができます。Microsoft 365環境であれば無料(一部有料)で使えますのでこちらも検討してみてください。
Outlookでは「マクロの記録」が使えない?
Excel VBAには、ユーザの操作をVBAコードに変換する「マクロの記録」機能があります。1からコードを記述するよりも時短できて初心者にはうれしい機能なのですが、Outlookでは「マクロの記録」機能は使うことができません。
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。
マクロを実行するとエラー画面が表示されるときの対処法は?
「このプロジェクトのマクロは無効に設定されています。マクロを有効にする方法についてはオンラインヘルプまたはホストアプリケーションのドキュメントを参照してください。」の警告について
このプロジェクトのマクロは無効に設定されています。マクロを有効にする方法についてはオンラインヘルプまたはホストアプリケーションのドキュメントを参照してください。
マクロ実行時の警告
マクロが実行できなかったり、上の図のような警告画面が表示される場合は、マクロのセキュリティ設定が正しく反映できていません。もう一度こちらの手順をご確認ください。改善されない場合はOutlookを一旦閉じてから開きなおしてみることも試してください。
まとめ
この記事でOutlookでVBAマクロを実行するための下準備ができました。あとはお好きなマクロをガシガシ作っちゃってください!
Outlookのマクロアイデアにはついては他の記事でご紹介していこうと思います。そちらもみてくださいね!
Outlook マクロを使った時短のアイデア
▲情報も新しくMicrosoft 365にも対応した本です。わたしはOutlook歴10年以上ありますが知らないことがかなりあったのとOutlookもすごい進化してるんだなと思いました。365に乗り換えたばかりの方に読んでほしいです。