VBA)を始めよう!」で紹介しています。表示されるアイコンからコピーできます。アプリケーションの開始時に割り当てられます。アプリケーションの開始時に実行される処理です。オブジェクトを取得して、変数に格納します。受信トレイからアイテムが移動される前に実行される処理です。ユーザーに仕分けルールを作成するかどうか確認するダイアログを表示し、その結果に応じて仕分けルール作成画面を表示します。イベントが発生したオブジェクトです。異動先のフォルダを表すオブジェクトです。設定すると、アイテムの移動を中止します。仕分けルールを作成のダイアログを表示します。アイテムの移動をしないで処理を終了します。今回は初めてのマクロということなので、とりあえずコードをそのまま貼り付けてみてください。再起動後に、受信トレイに入っているメールを、他のフォルダにドラッグ&ドロップすると、仕分けルールを作成するか?聞かれます。選択すると仕分けルールを作成するウィンドウが表示されます。このウィンドウが表示されれば成功です。イベントハンドラをコードエディタに挿入する方法が違います。コードが挿入されます。実装済みのイベントしかここに表示されませんが、VBでは実装済みのものが太字で表示され、全てのイベントが表示されます。起動した時の処理を実行するコードを記述することが出来ます。今回自動化したい機能は、受信トレイからメールを他のフォルダに移動したときに、「仕分けルールの作成」ウィンドウを自動で表示することです。そこで、「受信トレイからアイテムが移動される時」に発生するイベントのイベントハンドラを記述します。そのためには、まず、受信トレイオブジェクトの参照を、コードに追加する必要があります。されたのと同じようにイベントハンドラにイベントが伝わるようになります。方がC#よりイベント処理を書くのが楽です。コードを削除する必要があありません。myInboxFolder;[/csharp]と書いたのと同じです。書く位置が前後逆になります。メソッドからオブジェクトの参照をもらって代入しています。メソッドを実行して、戻り値を変数に代入しています。発生するイベントを処理できるようになります。それではイベントハンドラを記述しましょう。コードエディタの上部で、同様に、左で「myInputFolder」を選択し、右で「BeforeItemMove」を選択すると、「受信トレイからアイテムが移動される時」に発生するイベントのイベントハンドラがコードエディタに挿入されます。(20行目~36行目)ユーザーがOutlookで、メールを受信トレイから他のフォルダに移動すると、ここに記述したプログラムが実行されます。「アイテムの移動をする前」という意味で、移動した後ではないのは理由があります。設定して処理を抜けると、メールは移動されずに処理がおわります。False(規定値なので実際には書かなくてかまいません)で処理を抜けると、メールがそのまま移動されます。メッセージボックスを表示して、仕分けを作成するか?しないか?選択する他に、移動もキャンセル出来るように出来ます。何か探して実行している処理があります。メニュー項目から、「仕分けルールの作成」を探して実行しています。どの項目がどこにどういう名前・IDでオブジェクトとして存在しているのか?は、ちょっと資料が無くてわかりませんでした。私は、項目のタイトルを全て表示させてみて調べました。その方法はまた後日紹介します。ここでは、この名前とIDで探せば「仕分けルールの作成」が表示される、ぐらいで。まとめ以上の仕組みで、今回のマクロの機能は実装されています。同じ考え方でコードが書けることは伝わったでしょうか。Replyコメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目ですCommentName*Email*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。