Outlookのタスクを定期的に更新し、ユーザーフォームを付けてタスク情報を表示するVB.NETプログラムを作成します。以下のコードは、タスクを一定間隔で更新し、ユーザーフォームに表示する方法を示します。

準備

1. Outlookがインストールされていること。


2. Microsoft.Office.Interop.Outlook.dllへの参照が設定されていること。



サンプルコード

以下のコードをテキストエディタにコピーし、TaskUpdaterWithForm.vbとして保存してください。

Imports Microsoft.Office.Interop.Outlook
Imports System.Windows.Forms
Imports System.Timers

Public Class TaskUpdaterForm
    Inherits Form

    Private tasksListBox As ListBox
    Private refreshTimer As System.Timers.Timer

    Public Sub New()
        ' フォームの初期設定
        Me.Text = "Outlook Task Updater"
        Me.Size = New Drawing.Size(500, 400)

        ' タスク表示用のListBox
        tasksListBox = New ListBox() With {
            .Dock = DockStyle.Fill
        }
        Me.Controls.Add(tasksListBox)

        ' タイマーの設定(10秒ごとに更新)
        refreshTimer = New System.Timers.Timer(10000) ' ミリ秒
        AddHandler refreshTimer.Elapsed, AddressOf OnTimedEvent
        refreshTimer.AutoReset = True
        refreshTimer.Enabled = True

        ' 最初のタスク取得
        UpdateTasks()
    End Sub

    ' タイマーイベントでタスクを更新
    Private Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
        Me.Invoke(Sub() UpdateTasks())
    End Sub

    ' タスクをOutlookから取得して表示する
    Private Sub UpdateTasks()
        Try
            Dim outlookApp As New Application()
            Dim tasksFolder As MAPIFolder = outlookApp.Session.GetDefaultFolder(OlDefaultFolders.olFolderTasks)
            tasksListBox.Items.Clear()

            For Each task As TaskItem In tasksFolder.Items
                tasksListBox.Items.Add($"Subject: {task.Subject}, Due Date: {task.DueDate}, Status: {task.Status}")
            Next
        Catch ex As Exception
            MessageBox.Show($"タスクの更新中にエラーが発生しました: {ex.Message}", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    ' アプリケーションのエントリーポイント
    <STAThread>
    Public Shared Sub Main()
        Application.EnableVisualStyles()
        Application.SetCompatibleTextRenderingDefault(False)
        Application.Run(New TaskUpdaterForm())
    End Sub
End Class

コンパイルと実行方法

1. コードを保存したディレクトリに移動します。


2. 次のコマンドを使ってコンパイルします。

vbc.exe /r:System.Windows.Forms.dll /r:System.Drawing.dll /r:Microsoft.Office.Interop.Outlook.dll /out:TaskUpdaterWithForm.exe TaskUpdaterWithForm.vb


3. コンパイル後、TaskUpdaterWithForm.exeを実行します。



プログラムの動作

フォームが表示され、Outlookのタスクが10秒ごとに更新されます。

タスク情報はListBoxに表示されます。

更新中にエラーが発生した場合は、エラーメッセージが表示されます。


このコードは、Outlookのタスクを定期的に取得して表示するシンプルなユーザーフォームを提供します。タスク更新の間隔や表示内容は必要に応じてカスタマイズできます。