【Outlook VBA】エクセルワークシートのタスク一覧をOutlookのタスクに登録する方法


taskList,reg,eyecatch

皆様こんにちは、ノグチです。

前回記事では、Outlook VBAでタスクを登録する方法をご紹介しました。

Outlook VBAでタスクを登録する最も簡単なプログラム
Outlookのタスクを、VBAで登録する方法をご紹介しています。やらないといけないこと、やりたいことをメモや付箋に書いておくのもいいですが、Outlookのタスクに登録しておけば、期限の手前でアラームを鳴らしてくれたり、タスクをやったか、やっていないかまで管理することができて便利です。

今回はその応用編として、エクセルワークシートにリストアップしたタスクの一覧を、VBAでまとめてOutlookのタスクに登録する方法をご紹介していきます!

前回のおさらい

前回記事でご紹介した、1件のタスクを登録するコードはコチラでした。

TaskItemオブジェクトのプロパティに、コード内で直接タスクに登録したい値をセットしていました。

しかしこのままのコードでは1件ずつしかタスクが登録できませんね。

エクセルワークシートの内容によって複数のタスクをまとめて登録できるように、こちらのコードに色々書き加えていきましょう!

MicroSoft Excel xx.x Object Libraryの参照設定

まずは、Outlook VBAからExcelを操作できるように、MicroSoft Excel xx.x Object Libraryの参照設定をしておきましょう。

設定については下記記事で紹介していますので、こちらをご覧くださいね。

【Outlook VBA】エクセルワークシートの内容で予定登録する方法
Outlookの予定表は便利ですが、頻繁に予定を登録するのは面倒ですよね。本記事では、Outlook VBAからエクセル操作のための参照設定の方法と、エクセルワークシートに一覧化した内容でOutlookの予定を登録する方法をご紹介しています。

タスク一覧記入用のワークシートを用意

Outlookのタスクに登録したいタスクを、エクセルのワークシートに記入しておきましょう。

今回は、こんな感じのリストを用意しました。

エクセル,タスク一覧

この内容を、纏めてタスクに登録できるように、おさらいのコードに追加していきましょう。

エクセルワークシートの一覧からタスクを登録するコードを記述

Excelのオブジェクト達を取得する

MicroSoft Excel xx.x Object Libraryの参照設定の項でご紹介している記事でも同様にご紹介していますが、まずはOutlook VBAからExcelを操作できるように、ワークブックオブジェクトとワークシートオブジェクトを取得しましょう。

まずは、エクセルのアプリケーションオブジェクトを取得する為の変数です。

そして、各オブジェクト用の変数を宣言するのでしたね。

お次は宣言した変数で、各オブジェクトを取得しましょう。

このように。

これで、エクセルのオブジェクト達の取得はOKです。

タスク登録処理をループ文で挟み込む

では、Outlook VBAからエクセルが操作できるようになったところで、お次はタスク登録の部分をループで挟んじゃいます。

そして、TaskItemオブジェクトのプロパティにセットする値を、エクセルワークシートから取得するように変えて…

はい、おさらいのコードにループ文を入れて、エクセルワークシートの参照を追加しただけです。

超単純。

エクセルワークシートのタスク一覧をOutlookのタスクに登録する

上のコードを実行すると、この通りOutlookのタスクにちゃんと登録されます。

登録,タスク,Outlook

心配性のあなたへ…Displayメソッドで登録前に内容をチェック

タスクの内容がちゃんとワークシートに記入した通りになっているのか不安…という方には、TaskItemオブジェクトのDisplayメソッドで登録直前のタスクの内容をチェックすることができます。

TaskItemオブジェクト.Display

これを、Saveメソッドの代わりに仕込んでおけば、タスク登録の画面で自分が「保存して閉じる」をクリックしない限り、タスクに登録されません。

Displayメソッドを実行すると、こんな感じでタスクの登録直前の状態で内容をチェックできます。

登録内容,Outlook,タスク

但し、目視でタスクの内容をチェックしてから登録したい!という目的でDisplayメソッドを使う場合は、DisplayメソッドはSaveメソッドと置き換えて使うようにしましょう。

Displayメソッドの後にSaveメソッドが記述されていると、折角タスクの登録直前の画面が開いてもその直後にSaveメソッドが実行されてしまうので、Displayメソッドを挟んだ意味がなくなってしまいますよ。

最後に

今回は、エクセルワークシートにリストアップしたタスクの一覧を、VBAでまとめてOutlookのタスクに登録する方法をご紹介しました。

今回の方法なら、思いついたそばからエクセルのワークシートにタスクを記入しておいて、例えば一日の終わりにマクロ実行してタスクを登録しておく、ということもできますね。

また、一日の仕事を終えて退勤する前に、「明日のやらねば」をタスクとして登録しておくこともできますよ。

あと、タスクって実は宛先にメールアドレスを指定することで、依頼として登録することもできるんです。

例えば、職場に新人さんが入ってきたときに、依頼で纏めてやってほしいことを登録しておいてあげると便利かもしれませんね。

それでは、最後までお読み頂きありがとうございました!

連載目次:Outlook VBAでタスクを登録してみよう

Outlook VBAで基本的なタスクを登録する方法と、応用編としてエクセルワークシートに書き出した複数のタスクを、一括で登録する方法をご紹介していきます。

  1. Outlook VBAでタスクを登録する最も簡単なプログラム
  2. 【Outlook VBA】エクセルワークシートのタスク一覧をOutlookのタスクに登録する方法

  投稿者プロフィール

ノグチフリーランスPG・SE
元製造子会社SE。
業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。

コメント