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のタスクを定期的に取得して表示するシンプルなユーザーフォームを提供します。タスク更新の間隔や表示内容は必要に応じてカスタマイズできます。