Outlookで予定を一つずつ登録するのが手間で・・・
それならOutlookVBAを使って一括登録してしまいましょう!
この記事を読んでわかること
- OutlookVBAの使い方が分かる
- OutlookVBA×Excelで予定を一括登録する方法が分かる
今回は、OutlookVBAを使って、Outlookの予定を一括登録する方法を解説します。
Outlookで登録したい予定が複数ある場合、一つずつ登録するのは意外と手間がかかるものです。
でも、今回解説するOutlookVBAを使った方法であれば、あらかじめExcelに予定を入力をしておくことで一括で登録が可能です。
Outlookでの業務を効率化したいという方は、ぜひ最後まで読んでいって参考にしてみてください。
日々の小さな業務はPower Automateを活用して、どんどん自動化して定時帰りを加速していきましょう!
ExcelとOutlookVBAを活用すればあっという間に予定登録ができます
OutlookVBA(マクロ)を使えば、1つずつ予定を入れるといった時間のかかることをしなくてもあっという間に複数の予定を一括登録することができます。
今回使うマクロはこちら
Sub 予定作成マクロ()
' エラーハンドリングの設定
On Error GoTo ErrorHandler
' OutlookとExcelのアプリケーションオブジェクトを宣言
Dim objOutlook As Outlook.Application
Dim objExcel As Excel.Application
Dim wb As Workbook
Dim ws As Worksheet
Dim objApItem As Outlook.AppointmentItem
' Excelファイルのパス
Dim strFile As String
strFile = "C:\Users\ichimoku\OneDrive\デスクトップ\予定.xlsx"
' Excelオブジェクトを開く
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open(strFile)
Set ws = wb.Worksheets("Sheet1")
' Outlookオブジェクトを開く
Set objOutlook = New Outlook.Application
' データの取り込み開始行
Dim i As Long
i = 2
' Excelのデータが空でない間、ループ
Do Until ws.Cells(i, 1).Value = ""
' Outlookのアポイントメントアイテムを作成
Set objApItem = objOutlook.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 ' 開始60分前にリマインダー設定
.Save ' 保存
End With
i = i + 1
Loop
' オブジェクトを閉じる
wb.Close SaveChanges:=False
objExcel.Quit
Set ws = Nothing
Set wb = Nothing
Set objExcel = Nothing
Set objOutlook = Nothing
Exit Sub
ErrorHandler:
' エラーメッセージの表示
MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical
' オブジェクトを閉じる
If Not wb Is Nothing Then
wb.Close SaveChanges:=False
End If
If Not objExcel Is Nothing Then
objExcel.Quit
End If
Set ws = Nothing
Set wb = Nothing
Set objExcel = Nothing
Set objOutlook = Nothing
End Sub
次章からはこのOutlookVBA(マクロ)の使い方を順に解説します。
これまでOutlookVBAを使ったことがない方にも分かるように、一つずつ詳しく解説します。
ステップ①:OutlookVBAでExcelデータを扱うための準備
OutlookVBAの初期設定では、Excelデータが使えない(実行するとエラーになる)ことがあります。
ここでは、そういったことにならない設定を解説します。
初めてOutlookVBAを使う場合は、マクロ(OutlookVBA)にアクセスする「開発タブ」が非表示になっている場合があるため、表示設定を行います。
▼具体的な方法は、こちらの記事で解説をしていますのでご覧ください
OutlookVBAでExcelを参照させるにはExcelの参照設定が必要になります
▼「開発」→「Visual Basic」をクリックしVBA画面を開く
▼「ツール」→「参照設定」をクリック
▼「Microsoft Excel 16.0 Object Library」のチェックを入れる
すでにチェックが入っている方はそのままで問題ありません。
OutlookVBAでExcelを扱う設定はこれで完了です!
次からは実際にOutlookVBAで実行するマクロの作り方を解説します
ステップ②:OutlookVBA(マクロ)の作成
▼名前は任意で問題ありません。ここでは、「予定作成」としました。
▼「Microsoft Visual Basic for Applications」はVBAを記述するための画面のことです。
▼以下のコードを貼り付けます。
Sub 予定作成マクロ()
' エラーハンドリングの設定
On Error GoTo ErrorHandler
' OutlookとExcelのアプリケーションオブジェクトを宣言
Dim objOutlook As Outlook.Application
Dim objExcel As Excel.Application
Dim wb As Workbook
Dim ws As Worksheet
Dim objApItem As Outlook.AppointmentItem
' Excelファイルのパス
Dim strFile As String
strFile = "C:\Users\ichimoku\OneDrive\デスクトップ\予定.xlsx"
' Excelオブジェクトを開く
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open(strFile)
Set ws = wb.Worksheets("Sheet1")
' Outlookオブジェクトを開く
Set objOutlook = New Outlook.Application
' データの取り込み開始行
Dim i As Long
i = 2
' Excelのデータが空でない間、ループ
Do Until ws.Cells(i, 1).Value = ""
' Outlookのアポイントメントアイテムを作成
Set objApItem = objOutlook.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 ' 開始60分前にリマインダー設定
.Save ' 保存
End With
i = i + 1
Loop
' オブジェクトを閉じる
wb.Close SaveChanges:=False
objExcel.Quit
Set ws = Nothing
Set wb = Nothing
Set objExcel = Nothing
Set objOutlook = Nothing
Exit Sub
ErrorHandler:
' エラーメッセージの表示
MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical
' オブジェクトを閉じる
If Not wb Is Nothing Then
wb.Close SaveChanges:=False
End If
If Not objExcel Is Nothing Then
objExcel.Quit
End If
Set ws = Nothing
Set wb = Nothing
Set objExcel = Nothing
Set objOutlook = Nothing
End Sub
▼初期値はデスクトップになっていますので、任意でパス(保存場所)を入力します
参考:パスの取得方法
▼Ctrl + S
or フロッピーアイコンから保存して画面を閉じるボタンをクリック
ステップ③:作成した「予定作成マクロ」の使い方
▼次の通り予定入力用のテーブルを作成して任意の場所へ保存
A1 | タイトル | 予定の件名 |
B1 | 場所 | 予定の場所 |
C1 | 開始時間 | 予定の開始時間 yyyy/MM/dd HH:mm形式 |
D1 | 終了時間 | 予定の終了時間 yyyy/MM/dd HH:mm形式 |
E1 | 本文 | ※任意で入力 |
今回のサンプルマクロの場合は次の通りです
場所:C:\Users\ichimoku\OneDrive\デスクトップ
ファイル名:予定.xlsx
▼Outlookに登録したい複数の予定を入力して、保存しておきます
▼Outlookに移り、「開発」→「マクロ」→「作成したマクロ」をクリック
▼Excelで入力されていた通りに予定表が登録されていれば成功です
これで予定一括登録のOutlookVBAが完成しました!
まとめ:OutlookVBA(マクロ)で予定表登録を時短しよう!
今回は、OutlookVBA(マクロ)を活用して、面倒な複数の予定登録を一括で処理する方法を解説、不規則な複数の予定などでは使うことができません。
かといって、1つ1つ登録することはとても手間がかかり時間が取られてしまいます。
今回解説したOutlookVBA(マクロ)は、そのような時にとても役に立ちます。
予定登録用のExcelに登録したい予定情報を入力しておき、マクロ実行するだけで複数の予定でも一瞬で登録されます。
1つ1つは数分で終わる作業も、量が増えると意外と時間を使ってしまうものです。
このマクロを活用し、作業時間の時短をして定時帰りをしていきましょう!
このブログではPower Automateを始めとしたローコードツール、Microsoft365系ソフトの効率的な使い方など定時帰りに役立つ情報を発信しています。
参考になりましたら、ぜひブックマーク登録をお願いします!
定時帰り後の時間を有効活用する活動『てじ活』には副業ブログがおすすめ!
副業ブログには、自分の知識やスキルを活かして収入を得るチャンスがあります。さらに、ブログを書くことで日常の業務スキルも向上し、新しい分野への知識が広がりますよ!
オススメのPower Automate教材はコチラ
▲これから自動化を学びたい方にぴったりの入門書です。PowerAutomateなどのウェブツールは日々進化しています。そのアップデートにより画面構成や用語など、UI自体に見直しが入ることがあります。数年前の書籍では、使われている画面や用語が自分のPC画面と若干違って戸惑うことがあります。その点、この書籍は2024年に発売されたばかりで安心です。
▲これからPower Automate Desktopを始めたい人にオススメの入門書です。基本的なところから実用的はフローの紹介まで幅広く書かれています。図解も多く最初の1冊にぴったり。自分も最初はこの書籍から入りました。PADの書籍選びに迷っているならこの書籍を激推します。
▲Power Automatedesktopをこれから学習する人にはこの書籍がオススメです。インプレス社の「できる」シリーズなので内容は間違いなし。イラストを多用しているので飽きずに最後まで読めます。しかも内容も初心者向けに丁寧に解説されているので、これ一冊でPower Automate Desktopの基礎はマスターできます。
ここで紹介している書籍はすべて実際に自分が学習に使ったものですので、安心してオススメできるものばかりです!