4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Outlookのタスク機能からタスク一覧をエクスポートするVBA

Posted at

タスクやTODOの管理にOutlookのタスク機能をよく利用しています。基本的には自分専用なのですが、ごくまれに人に見せる機会があります。このようなときはExcelファイルにエクスポートしてやると取り回しが良く便利です。

そういうわけで「Outlookのタスク機能からタスク一覧をエクスポートするVBA」を作りました。せっかくなのでQiitaにお焚き上げしておきたいと思います。

まず前提として、VBAからOutlookを操作するライブラリがインポートされている必要があります。やり方としては、VBEから「ツール(T)」>「参照設定(R)」を選択。「参照設定」ウィンドウで「Microsoft Outlook XX.X Object Library」にチェックをつけて「OK」を押下するだけです (XX.Xにはバージョン番号が入ります)

サブルーチンMainはOutlookからエクポートしてきたタスク情報から、変数sheetがしめすワークシートに書き込むものになります。書き込む情報としてはA列から順に「インデックス番号」「タイトル」「タスクの本文」「カテゴリ」「タスクの状況」になります。もちろん、これは一例に過ぎないので、ほかの情報についても取得が可能です。なお「タスクの状況」については、取得できる情報が列挙型Outlook.OlTaskStatusのため、これを日本語に修正する関数ToDisplayNameも作成しています。

Sub Main()
    ' sheet変数は目的に合わせて初期化すること
    Dim sheet As Excel.Worksheet
    
    Dim tasks As Outlook.Items
    Dim task As Outlook.TaskItem
    Dim x As Integer
    Set tasks = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks).Items
    For x = 1 To tasks.Count
        Set task = tasks.Item(x)
        
        sheet.Range("A" & x) = x
        sheet.Range("B" & x) = task.Subject
        sheet.Range("C" & x) = task.Body
        sheet.Range("D" & x) = task.Categories
        sheet.Range("E" & x) = ToDisplayName(task.status)
    Next x
End Sub


Function ToDisplayName(status As Outlook.OlTaskStatus) As String
    Select Case status
        Case Outlook.OlTaskStatus.olTaskComplete
            ToDisplayName = "完了"
        Case Outlook.OlTaskStatus.olTaskDeferred
            ToDisplayName = "遅延"
        Case Outlook.OlTaskStatus.olTaskInProgress
            ToDisplayName = "進行中"
        Case Outlook.OlTaskStatus.olTaskNotStarted
            ToDisplayName = "未着手"
        Case Outlook.OlTaskStatus.olTaskWaiting
            ToDisplayName = "待機中"
        Case Else
            ToDisplayName = "UNKNOWN"
    End Select
End Function

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?