【OutlookVBA】Excelを使って予定を一括登録する方法【マクロ利用】

OutlookVBAとExcelでイベント予定一括登録
こまったさん

Outlookで予定を一つずつ登録するのが手間で・・・

イチモク

それならOutlookVBAを使って一括登録してしまいましょう!

この記事を読んでわかること

  • OutlookVBAの使い方が分かる
  • OutlookVBA×Excelで予定を一括登録する方法が分かる

今回は、OutlookVBAを使って、Outlookの予定を一括登録する方法を解説します。

Outlookで登録したい予定が複数ある場合、一つずつ登録するのは意外と手間がかかるものです。

でも、今回解説するOutlookVBAを使った方法であれば、あらかじめExcelに予定を入力をしておくことで一括で登録が可能です。

Outlookでの業務を効率化したいという方は、ぜひ最後まで読んでいって参考にしてみてください。

目次

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データが使えない(実行するとエラーになる)ことがあります。

ここでは、そういったことにならない設定を解説します。

STEP
OutlookVBAの表示設定

初めてOutlookVBAを使う場合は、マクロ(OutlookVBA)にアクセスする「開発タブ」が非表示になっている場合があるため、表示設定を行います。

▼具体的な方法は、こちらの記事で解説をしていますのでご覧ください

STEP
Outlookで「Excelの参照設定」をする

OutlookVBAでExcelを参照させるにはExcelの参照設定が必要になります

▼「開発」→「Visual Basic」をクリックしVBA画面を開く

▼「ツール」→「参照設定」をクリック

▼「Microsoft Excel 16.0 Object Library」のチェックを入れる

参照可能なライブラリファイルの中から、「Microsoft Excel 16.0 Object Library」にチェックを入れてOKをクリック

イチモク

すでにチェックが入っている方はそのままで問題ありません。

STEP
これで準備完了です。

OutlookVBAでExcelを扱う設定はこれで完了です!

てじまる

次からは実際にOutlookVBAで実行するマクロの作り方を解説します

ステップ②:OutlookVBA(マクロ)の作成

STEP
Outlookを開き、「開発」→「マクロ」→「マクロ」をクリック
STEP
マクロの名前を付けて「作成」をクリック

▼名前は任意で問題ありません。ここでは、「予定作成」としました。

STEP
「Microsoft Visual Basic for Applications」ウィンドウでVBAを記述する

▼「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
STEP
貼り付けたコードの「Excelファイルのパス」を変更します

▼初期値はデスクトップになっていますので、任意でパス(保存場所)を入力します

参考:パスの取得方法

STEP
対象のファイルの上で「Shiftキー + 右クリック」して「パスのコピー」
STEP
マクロを保存して「Microsoft Visual Basic for Applications」を閉じる

Ctrl + S or フロッピーアイコンから保存して画面を閉じるボタンをクリック

STEP
これでマクロの作成は完了です!

ステップ③:作成した「予定作成マクロ」の使い方

STEP
予定入力用のExcelデータを用意

▼次の通り予定入力用のテーブルを作成して任意の場所へ保存

A1タイトル予定の件名
B1場所予定の場所
C1開始時間予定の開始時間 yyyy/MM/dd HH:mm形式
D1終了時間予定の終了時間 yyyy/MM/dd HH:mm形式
E1本文※任意で入力

前章で作成したマクロで入力した「Excelファイルのパス」と場所・ファイル名を一致させます

今回のサンプルマクロの場合は次の通りです

場所:C:\Users\ichimoku\OneDrive\デスクトップ

ファイル名:予定.xlsx

STEP
予定入力用Excelデータに登録したい予定表を入力する

▼Outlookに登録したい複数の予定を入力して、保存しておきます

STEP
Outlookで「予定作成」マクロを実行する

▼Outlookに移り、「開発」→「マクロ」→「作成したマクロ」をクリック

STEP
outlook予定表で登録されたことを確認します

▼Excelで入力されていた通りに予定表が登録されていれば成功です

イチモク

これで予定一括登録のOutlookVBAが完成しました!

まとめ:OutlookVBA(マクロ)で予定表登録を時短しよう!

今回は、OutlookVBA(マクロ)を活用して、面倒な複数の予定登録を一括で処理する方法を解説、不規則な複数の予定などでは使うことができません。

かといって、1つ1つ登録することはとても手間がかかり時間が取られてしまいます。

今回解説したOutlookVBA(マクロ)は、そのような時にとても役に立ちます。

予定登録用のExcelに登録したい予定情報を入力しておき、マクロ実行するだけで複数の予定でも一瞬で登録されます。

1つ1つは数分で終わる作業も、量が増えると意外と時間を使ってしまうものです。

このマクロを活用し、作業時間の時短をして定時帰りをしていきましょう!

てじまる

このブログではPower Automateを初めとしたローコードツール、Microsoft365系ソフトの効率的な使い方など定時帰りに役立つ情報を発信しています。
参考になりましたらぜひブックマーク登録をお願いします!

オススメのPower Automate教材はこちら

PowerAutomateを書籍で学びたい方はコチラ

▲これから自動化を学びたい方にぴったりの入門書です。PowerAutomateなどのウェブツールは日々進化しています。そのアップデートにより画面構成や用語など、UI自体に見直しが入ることがあります。数年前の書籍では、使われている画面や用語が自分のPC画面と若干違って戸惑うことがあります。その点、この書籍は2024年に発売されたばかりで安心です。

▲これからPower Automate Desktopを始めたい人にオススメの入門書です。基本的なところから実用的はフローの紹介まで幅広く書かれています。図解も多く最初の1冊にぴったり。自分も最初はこの書籍から入りました。PADの書籍選びに迷っているならこの書籍を激推します。

▲Power Automatedesktopをこれから学習する人にはこの書籍がオススメです。インプレス社の「できる」シリーズなので内容は間違いなし。イラストを多用しているので飽きずに最後まで読めます。しかも内容も初心者向けに丁寧に解説されているので、これ一冊でPower Automate Desktopの基礎はマスターできます。

イチモク

ここで紹介している書籍はすべて実際に自分が学習に使ったものですので、安心してオススメできます。

OutlookVBAとExcelでイベント予定一括登録

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次