みなさまこんにちは、ノグチです。
前回の記事では、OutlookでもVBAは使えるということと、VBAでOutlookの予定を登録する方法をご紹介しました。

今回は、まとめて予定を登録してしまおう!ということで、エクセルワークシートに記入した予定の内容を、Outlookの予定に登録する方法をご紹介していきます。
MicroSoft Excel xx.x Object Libraryの参照設
さて、エクセルワークシートに記入された内容で予定登録をするということは、エクセルのブックやシートを参照したり、操作できるようにせねばなりませんね。
そこでまずは、OutlookからExcelの参照設定をしましょう。
(この参照設定は必須ではありませんが、参照設定をした方がコードが短くなるのと、クイックヒントが表示されてコーディングが楽、スペルミスをしにくいということもあるので、特に制限が無いのであれば、参照設定をしておくことをお勧めします。)
OutlookのVBEから、参照設定の画面を開きます。
参照設定の画面を開くまでのメニューパスは、エクセルで参照設定をするときと全く同じなので、下記記事を参考にしてくださいね。

筆者の環境では、Microsoft Excel 16.0 Object Libraryとなっていますが、使っているofficeのバージョンによって数字の部分が異なります。
MicroSoft Excel xx.x Object Libraryにチェックを入れて「OK」をクリックすれば、参照設定は完了です。
ワークブックオブジェクトとワークシートオブジェクトを取得
さて、参照設定ができたところでエクセルブックやシートを操作するため、必要なオブジェクトを取得していきましょう。
まずは、Excelアプリケーションオブジェクトの取得です。
後はエクセルブックやワークシートオブジェクトですが、こちらはエクセルでVBAを使うときと同様の記述方法でOK。
こんな感じですね。
Dim wb As Workbook Dim ws As Worksheet
エクセルシートに記入した内容をOutlookの予定に登録するコード
では、準備もできたところでエクセルシートに記入した内容をOutlookの予定として登録していきましょう。
デスクトップに「予定.xlsx」というファイルを作って、Sheet1にこんな感じで予定の内容を記入していきます。
このワークシートの内容を纏めてOutlookの予定に登録するコードがこちら。
Sub CreateAppointmentFromExcel()
Dim objApItem As Outlook.AppointmentItem
Dim objExcel As Excel.Application
Dim wb As Workbook
Dim ws As Worksheet
Dim strFile As String
strFile = "C:\Users\Desktop\予定.xlsx"
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open(strFile)
Set ws = wb.Worksheets("Sheet1")
Dim i As Long
i = 2
Do Until ws.Cells(i, 1).Value = ""
Set objApItem = Application.CreateItem(olAppointmentItem)
With objApItem
.Subject = ws.Cells(i, 1).Value '件名
.Location = ws.Cells(i, 2).Value '場所
.Start = ws.Cells(i, 3).Value '開始日時
.End = ws.Cells(i, 4).Value '終了日時
.Body = ws.Cells(i, 5).Value '本文
.ReminderSet = True
.ReminderMinutesBeforeStart = 60
.Save
End With
i = i + 1
Loop
End Sub
事前通知のプロパティ、ReminderSetプロパティをTrueにして、ReminderMinutesBeforeStartプロパティに「60」をセットしているので、予定の60分前にOutlookが通知してくれます。
Outlook VBAで登録された予定
上のコードを実行して登録された予定がこれらです。
予定の中身を見てみると…

この通り、エクセルワークシートに記入された内容で予定登録されていますね。
最後に
今回は、エクセルワークシートに記入された内容を、Outlook VBAで予定登録する方法をご紹介しました。
筆者が企業に所属していた頃、やたらと会議やら外勤やらが多かった時期がありまして、この予定の登録が面倒で放置してしまい、社内で「居るかいないかよくわからん。ミーティングに呼べる時間がわからん。」とお叱りを受けたことがあります。
そのとき、予定がまとめて登録できたらいいのにな~と心底思ったものです。
この方法が、みなさまの予定管理ライフを少しでも快適にできれば幸いです。
それでは、最後までお読みいただきありがとうございました!
連載目次:Outlook VBA 予定を登録してみよう
Outlook VBAで、予定の管理も便利にしてしまいましょう。
VBAでの予定の登録だけでなく、登録済みの予定への操作方法もご紹介しています。




