みなさまこんにちは、ノグチです。
前回の記事では、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での予定の登録だけでなく、登録済みの予定への操作方法もご紹介しています。