Outlook VBAをはじめよう!初心者向け手引き

会社でメールをやり取りする際にOutlookをメーラに採用している企業は多いのではないでしょうか。

Microsoft365を導入している企業であれば必須アイテムですね。

そんなOutlookですが、Excelと同じようにマクロのVBAが扱えるんです!

タカヒロ
タカヒロ
Outlook VBAをうまく扱えば、メール作成、送信、予定表出力、登録、連絡表更新などあらゆる操作がカンタンに自動化できて本当に便利です。

今回は、そんなOutlook VBAを使うにあたり、メリット、注意点、実装手順や、VBAの具体例についてご紹介します!



Outlook VBAのメリット

Outlook VBAのメリットその一

Outlook VBAのメリットその一は
OutlookはすでにVBAが実行できる環境が整っている
というためです。
Outlookは開発専用のアプリケーションを追加インストールする必要なく
開発タブの追加だけで、開発できる環境ができてしまうのです。

多くの企業で採用されているOutlookですが、導入許可やコストをかけることなく、
効率化や自動化ができるということで、利用しない手はないですね!

Outlook VBAのメリットその二

Outlook VBAのメリットその二は、ほとんどの方が手動でおこなう部分をカンタンに自動化できるという点です。

業務において、
・タスク開始のトリガーと終了の報告はメールでおこなう
・会議や予定はOutlookの予定表で集中管理している
ということが多いかと思いますが、
これらすべて手動で行っていないでしょうか。

例えば、日報、週報、月次報告、見積や請求書送付、各種申請、承認依頼、関係者確認依頼、スケジュール調整、作業依頼、内部共有会議コールなどなどです。

これがワンクリックで、部署内のだれよりも早く、正確にできたらうれしいですよね。

特に毎日のルーチンワークが自動化できた場合、短期では短くても長期的に見れば膨大な時間が節約できるという訳です。

タカヒロ
タカヒロ
日報作成を自動化したら、手動で作成することに戻れなくなりますね…

Outlook VBAのメリットその三

Outlook VBAのメリットその三はOutlook VBAの習得は実はカンタンであるという点です。

Outlook VBAが難しく感じる理由は、Outlook VBAに関する文献が絶望的に少ないからです。

さらにネットで検索すればOutlook VBAの記事はありますが、どれも専門的過ぎてわかりにくいですよね。

タカヒロ
タカヒロ
Outlook VBA習い始めのときは、理解するのに本当に苦労しました。

Outlook VBAを理解しようにも関連する情報や具体例がないために難しく感じているというだけなのです。

エク短ではそんなOutlook VBAをわかりやすく、かつ即実務へ活かせるような形で伝えていき、
Outlook VBAによる実務力アップの手助けができればと思っています。


Outlook VBAを扱う上での注意点

Outlook VBAを利用する価値があることは理解いただけたかと思いますが、

よい話ばかりではないということもお伝えしなければなりません。

それは、セキュリティーポリシーから制限がかけられてきた歴史があるのです。

メールを受信したらマクロ実行

このパターンってワームの機能に似ていますよね…

Outlook2013以降はルールによるスクリプト実行も廃止され、

ますます制限がかけられている状況です。

エク短におけるOutlook VBAは、そんなリスクを軽減するために、

メール送信や一括更新などの処理をする場合には注意喚起とメッセージを出すよう工夫をしていきます。

問題発生の機会をなるべく少なくし、総合的に時短につながればよいと思っています。



Outlook VBAを実行するための下準備をする

まずははじめの第一歩。

リボンメニューへ 開発 タブを追加しましょう。

※デフォルトでは 開発 タブは非表示となっています。

1.リボンのユーザー設定 をクリックします。

2.右の リボンのユーザ設定 のボックスのリストメニュー 開発へチェックを入れOK をクリックします。

3.リボンメニューに 開発タブが表示されたら完成です。



Outlook VBAコードの配置場所について

VBAコードを配置する場所について説明します。
1. 開発タブをクリックし、Visual Basicボタンをクリックします。

2. Visual Basicアプリケーションの左メニューに表示されているProjectをクリックしながら展開し、
最後に表示されるThisOutlookSessionをクリックします。

3.プロジェクトのコードエリアが表示されます。
このエリアにコードを入力することによりOutlook側でマクロとして認識され、マクロが実行できるようになります。

簡単なOutlook VBAを実行してみよう

さっそくお試しでOutlook VBAを実行してみましょう。

1.以下コードををコピーします。

Sub test()
  MsgBox "Hello エク短!"
End Sub

2.プロジェクトのコードエリアにコードをコピペします。

3.上部メニューのをクリックし実行します。

4.メッセージボックスが表示されたら完成です!
正常に機能していることが確認できましたね。



もし機能しなかったら

もし機能しなかったら、
「Microsoft Outlook Object Library」の参照設定がされているか
確認をしましょう。

Visual Basicボタンをクリックし、画面が開いたら、
メニューからツール>参照設定を選択します。

「Microsoft Outlook ** Object Library」にチェックを入れ、
OKをクリックしたら完了です。



それでもできなかったら

それでもできなかったらマクロの起動が無効化されているかもしれません。

その場合はセキュリティセンターからマクロの設定を変更するようにしましょう。

参考:マイクロソフト Office ドキュメントのマクロを有効または無効にする

1.ファイル タブをクリックします。

2.オプション をクリックします。

3.セキュリティ センター をクリックし、セキュリティ センターの設定 をクリックします。

4.セキュリティ センターマクロの設定 をクリックします。

5.セキュリティ センターの マクロの設定 領域ですべてのマクロを有効にするをチェックし、OK をクリックしたら完成です。

タカヒロ
タカヒロ
次にOutlook VBAでどんなことができるか、どんな機能であるか
具体例を交えご紹介します。



Outlook VBAでメールのチェックをしてみる

Outlookのメール送信前のチェックはセキュリティー対策として有効です。
高額なセキュリティ対策ソフトを導入することなく簡単に実現できます。

セキュリティ事故最新事情をまとめてみました。



Outlook VBAのイベント、オブジェクト

Outlook VBAのイベント、オブジェクトです。
はじめは難しいと思いますので、そんなことできるんだぐらいに一度眺めてもらえばと思います。



Outlook VBAで本文中にハイパーリンクを付与する

業務でよく使うハイパーリンクを付与する作業をOutlook VBAで自動化してみました。

 



Outlook VBAで添付ファイルを扱ってみる

メールで扱うことが多い添付ファイル関連の操作についてまとめました。



Outlook VBAで連絡先を扱ってみる

Outlookの連絡先に関する技をまとめました。

Excelから操作しますのでExcel VBAとOutlook VBAが混在する形となります。(ちょっと複雑ですよね…)



Outlook VBAで予定表を扱ってみる

Outlookの予定表に関する技をまとめました。

連絡表と同じくExcelVBAとOutlookVBAの混合型となっています。

タカヒロ
タカヒロ
複数の他人の予定情報を一度に集計できる方法が人気がありますね。
テレワークの普及で見えにくくなっている部下の業務実態がワンクリックで見えてしまいますからね。



Outlook VBAで会議の出欠確認を集計してみる

読者の方から要望があり作成したもので、
複数の会議の出欠状況をExcelにまとめ、確認できるといった内容となっています。

タカヒロ
タカヒロ
出欠情報を得る方法がなく実現するのに苦労しました。
そもそも出欠送らない人がいますし…

 



Outlook VBAでいろいろな種類のメールを作成・送信してみる

日報や障害報告などを例に、Excelでメール情報とメールテンプレートをまとめた上、
Outlook VBAでメールを作成、送信するといった内容となっています。

タカヒロ
タカヒロ
メール誤送信とならないよう十分にテストをすることを推奨します。



Outlook VBAでメールを転送してみる

メール転送する時は宛先を追加したり、本文に一言添えたりすることがありますが、それがワンクリックでできるようになります。
仕訳ルールと併用すると全自動で転送メールを送信することもできます。



Outlook VBAでメールを返信してみる

メールを返信するパターンはTOのみの返信とCCを含めた全員の返信があります。
それぞれの送信パターンごとに宛先を追加したり、件名や本文に定型文を追加することがワンクリックでできるようになります。



さいごに

いかがでしょうか。

今回は、
Outlook VBAのメリット、注意点、実装手順や、VBAの具体例について
まとめてみました。

マイナーな言語でわかりにくくリスクもあるOutlook VBAですが、

エク短では初心者からベテランまで

誰でも難なく業務に生かせるようわかりやすさ、見やすさを心掛け、

Outlook VBAの良さをお伝えできればと思っています!


2 件のコメント

  • お世話になります。
    予定表のVBA操作について、各所拝見し、とても参考になりました。

    ひとつ質問ですが、定期的な予定を一回分だけ変更する手動操作をvba実行可能でしょうか。isrecurring はboolean型で読み込み専用なため難しいと思っています。

    • いつもご利用ありがとうございます。

      VBAで定期的な予定を一回分だけ変更する方法につきまして、
      定期的な予定は開始日、終了日、開催頻度などパターンによる登録であるため、
      定期的な予定の状態(isrecurringがTrue)のまま1回目のみの日程等内容を変更することは難しい状況です。

      ですので、
      定期的な予定の開始日を2回目以降に変更し、1回目を単体の予定(isrecurringがFalse)で新規登録する
      やり方が望ましいと考えます。

      その場合VBAでは、
      対象の定期的な予定の開始日を示すプロパティ「PatternStartDate」を2回目以降に変更し、
      開催頻度や曜日指定の周期の変更があれば以下のDocsを参考に指定します。
      https://docs.microsoft.com/ja-jp/office/vba/api/outlook.recurrencepattern
      そしてSaveメソッドで保存します。
      1回目の予定は記事を参考にプロパティを指定し、同じくSaveメソッドで保存します。

      VBAを組んで検証できたら別記事で公開したいと思います。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です