Outlook VBAでタスクを登録する最も簡単なプログラム

eyecatch,vba,task

みなさまこんにちは、ノグチです。

お仕事だけでなく、お仕事以外でもやらなければいけないこと、やりたいことってありますよね。

私はそれらをきっちり頭の中に留めて置けるタイプではないので、忘れないように手元の付箋に書いてPCのディスプレイに貼り付けたり、手帳に書き込んだりしています。

でも、掃除をして付箋がはがれていたり、手帳をカバンに入れっぱなしにしているなど、パッとそれらを見返すことができないことがあるんですよね。

そんな時、使えるのがOutlookのタスク

PCは毎日10時間近く使っていますし、これならPCを開いてさえいれば思いついた傍からどんどん登録できます。

通知機能で期限前に知らせてくれますし、「やった」or「やってない」も管理できます。

しかし、これも1件1件登録していくのも面倒臭い…

じゃあ、エクセルワークシートに書いたタスクを一気にOutlookに登録できれば良いのでは?!

ということで今回からは、エクセルワークシートにリストアップした「やらねば」を、VBAでOutlookのタスクに登録していく方法をご紹介していきます。

今回の記事ではその第一歩として、1件のタスクをVBAで登録する方法をご紹介します。

スポンサーリンク

タスクを操作するTaskItemオブジェクト

これまで、VBAでOutlookのメールや連絡先を登録する方法をご紹介してきました。

その中でまずやるのが、Outlookのアイテムを操作するためのオブジェクトの取得でしたね。

メールならMailItemオブジェクト、連絡先ならContactItemオブジェクト、タスクならTaskItemオブジェクトを取得することで、各アイテムをVBAで操作することができるようになります。

CreateItemメソッドでTaskItemオブジェクトを取得

さてさて、今回操作したいタスクのTaskItemオブジェクトを取得する方法は、MailItemオブジェクトやContactItemオブジェクトと全く同じです。

まずは、TaskItem型変数の宣言です。

Dim オブジェクト名 As TaskItem

そしておなじみ、CreateItemメソッドでTaskItemオブジェクトを取得します。

パラメータには、タスクの定数を示すolTaskItemを指定します。

Outlookアプリケーションオブジェクト.CreateItem(olTaskItem)

ちなみに、先頭のOutlookアプリケーションオブジェクト部分は省略可能です。

省略した場合、コードではこんな感じで記述します。

Set objTask = CreateItem(olTaskItem)

TaskItemオブジェクトのプロパティ

TaskItemオブジェクトのプロパティには、例えばこんなものがあります。

プロパティ名 内容
Subject タスクのタイトル
StartDate タスクの開始日
DueDate タスクの期限
ReminderSet タスクのアラームを鳴らすかどうか(True/Falseで指定)
ReminderTime タスクのアラームを鳴らす日時
Body タスクの本文

プロパティでタスクの内容をセット

上のプロパティは、こんな感じで記述します。

With objTask
    .Subject = "やらねばタスク"
    .StartDate = "2018/10/1"
    .DueDate = "2018/10/10"
    .ReminderSet = True
    .ReminderTime = "2018/10/8 12:00"
    .Body = "住民票と印鑑証明取得@xxx区役所"
End With

Saveメソッドでタスクを登録

TaskItemオブジェクトの各プロパティに値がセットできたら、後は登録するだけです。
タスクの登録には、Saveメソッドを使います。

記述方法は、連絡先のContactItemオブジェクトのSaveメソッドと全く同じで、コチラ。

TaskItemオブジェクト.Save

タスクを登録するコード

例えば、こんなタスクを登録したい場合、こんなコードになります。

outlook,vba,タスク登録

Sub RegTask()
Dim objTask As TaskItem

Set objTask = CreateItem(olTaskItem)

With objTask
    .Subject = "やらねばタスク"
    .StartDate = "2018/10/1"
    .DueDate = "2018/10/10"
    .ReminderSet = True
    .ReminderTime = "2018/10/8 12:00"
    .Body = "住民票と印鑑証明取得@xxx区役所"
    
    .Save
End With
    
End Sub

最後に

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

タスクを管理するツールは、携帯電話のアラームやカレンダー、Googleカレンダーの予定など色々ありますが、毎日必ずPCを使う、Outlookを使っている、という人はこのOutlookのタスク機能を使ってタスク管理するのもアリですね。

次回は、今回のタスク登録の応用で、エクセルワークシートにリストアップしたタスクの内容を、一気にOutlookのタスクに登録する方法をご紹介します。

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

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

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

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