概要
Outlook365でマクロを動作させる手順をまとめてみました
簡単なサンプルマクロが動作するところまでやってみたいと思います
環境
- Windows7 64bit
- Outlook365
- Microsoft Visual Basic for Applications 7.1
マクロ実行の準備
デフォルトのままだとマクロを実行することができません
「開発」というタブを表示する必要があります
ファイル -> オプション -> リボンのユーザー設定 -> メインタブ
を選択しメインタブの一覧の中に「開発」があると思いますのでそれにチェックを入れます
チェックしてOKをクリックするとタブの一覧に「開発」が表示されるようになります
サンプルマクロの作成
マクロを作成してみましょう
先ほど表示されるようにした開発タブから
開発 -> マクロ -> マクロ
をクリックします
するとダイアログが開くのでマクロ名の部分に作成するマクロの名前を適当に入力します
入力した右側の「作成」をクリックします
するとマクロのエディタである「Microsoft Visual Basic Applications」が開くのでここでマクロを開発します
(エクセルでマクロをゴリゴリ書いている人は見なれたエディタだと思います)
今回は超簡単なサンプルを書いてみます
マクロ名はtest_macro
とします
Sub test_macro()
MsgBox "Hello World!"
End Sub
と入力して保存します
サンプルの作成はこれで完了です
作成できたので実行してみましょう
実行してみる
Microsoft Visual Basic for Applications のツールバーに緑色の三角形があるのでこれをクリックすると実行できます
F5を押しても実行できます
実行するとHello World!と書かれたダイアログが表示されると思います
エディタ上で動作することが確認できたのでOutlook365から実行してみたいと思います
マクロを保存した段階でOutlook365にも組み込まれているので実行するだけでOKです
開発 -> マクロ
と進むと先ほど作成したtest_macro
が選択肢に増えているのでtest_macro
をクリックします
すると先ほどと同じようにダイアログが表示されると思います
ThisOutlookSession
ここから本題かもしれません
Outlook365のオブジェクトを触ったマクロを書く方法です
先ほど作成したサンプルは
標準モジュール -> Module1
という場所に保存されています
マクロとしてはここでも動作するのですがOutlook365が提供するマクロを使用することはできません
Microsoft Visual Basic for Applications の左メニューに「Microsoft Outlook Objects」というフォルダがあり、その下に「ThisOutlookSession」というOutlookのアイコンがあると思います
このアイコンにマクロを書くことでOutlook365が提供するマクロが書けるようになります
「ThisOutlookSession」をダブルクリックすると右ペインにエディタが開きます
開いたら以下のコードを入力してください
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim objItem
Set objItem = Session.GetItemFromID(EntryIDCollection)
If objItem.MessageClass = "IPM.Note" Then
MsgBox "Hello World!"
End If
End Sub
簡単にポイントを説明すると超重要なのがApplication_NewMailEx
というサブセットでこれがOutlook365が提供するマクロで、こいつを定義するとメールが受信された際に毎回実行されます
IPM.Note
は電子メールを表すオブジェクトで受信したオブジェクトが電子メールであった場合にMsgBoxを実行するようにしています
記載が完了したら保存しましょう
エディタを閉じてしまって再度編集したい場合は「ThisOutlookSettion」をダブルクリックすれば保存したマクロが表示されます
実行してみる
サンプルマクロのように三角マークをクリックしても何も起きません
というかクリックするとマクロの作成ダイアログが立ち上がってしまいます
なので Microsoft Visual Basic for Applications 上でテストすることはできません
Outlook365に戻って動作を確認するしかありません
ツールバーの左上にあるOutlookボタンを押すかCtrl + TAB でウィンドウを切り替えてください
メールが来ないという場合は自分宛にメールを作成してテストしてみてください
受信時にダイアログが表示されればOKです
このテストは文字通り受信時に毎回ダイアログを出すので頻繁にメールを受信する方はすぐに停止したほうがいいと思います
停止する場合は再度エディタで「ThisOutlookSettion」を開いてコメントアウトするなりコードを削除するなりして上書き保存してください
最後に
基本構文は Visual Basic なのでif文やらfor文やらも使えます
なので Visual Basic を勉強しておくと更に書きやすくなると思います
Outlook365のマクロではメールや受信トレイなどに触れるオブジェクトが用意されており、それを使ってOutlook365用のマクロを作成する感じになります
基本メールを読むのが嫌いなのでこれで本当に必要なメールだけを読むようにするとかできそうです
0 件のコメント:
コメントを投稿