• このエントリーをはてなブックマークに追加

Outlookで複数タスクを登録するマクロを作ったので、ソ-スを公開。
たとえは、マインドマップでタスクを洗い出したあと、
登録するためには今までは1つずつ登録が必要だったが、
これで一括登録可能だ。

Module1

Dim InputText As String
 
'与えられたリストからタスクを複数生成するマクロ
Sub CreateMultiTasks()
Dim max As Integer
Dim Subjects() As String
 
'入力フォ-ム表示し、複数タスク取得
UserForm1.Show
 
Subjects() = Split(InputText, vbCr) '複数タスクを分割
max = UBound(Subjects()) 'タスク数を取得
 
For i = 0 To (max - 1)
  Call CreateTask(Subjects(i)) 'タスク生成
Next i
 
End Sub
 
'入力テキスト取得
Function GetTextBox(ByVal text As String)
InputText = text
End Function

Module2

Sub CreateTask(jobNAME As String)
 'タスクオブジェクト生成 (olTaskItem=3 TaskItemオブジェクト)
  Dim oITEM As TaskItem
  Set oITEM = Application.CreateItem(olTaskItem)
 
  With oITEM
    '.Display  '画面表示
 
    'データセット
    .Subject = jobNAME  '件名
    .Categories = "!Inbox" '分類項目に!Inboxを追加
 
    'タスクを登録
    .Close 0  'olSaveで閉じるときに保存(セーブして終了)
  End With
End Sub

UserForm1

Private Sub OK_Click()
Call GetTextBox(TextBox1.text)
Unload Me
End Sub
Private Sub Cancel_Click()
End
End Sub