【VBA】Excel からOutlookの会議出席依頼を送信する方法!会議変更後の送信も対応!

Outlookの予定表で会議出席依頼を送信する機会は多いかと思います。

そんな中で困ることことは、

・会議出席依頼の宛先を手入力するのは面倒
・複数の会議出席依頼を出す場合は、件数分新規作成しなければならないので面倒

ではないでしょうか?

実はOutlookとExcelのVBAを組み合わせて利用すると
Excelでまとめた会議情報から会議出席依頼を生成、送信することができるのです。

今回はそんな実用性が高い、
Excelにまとめた会議情報からOutlookの会議出席依頼を送信する方法と合わせて会議スケジュールや内容の変更後の送信について
まとめます!

Excelにまとめた会議情報からOutlookの会議出席依頼を送信する方について

今回のマクロ実行環境はスケジュール一覧があるExcel側となります。

タカヒロ
タカヒロ
ExcelからOutlookの操作を行いますので、Outlookを起動していなくても予定の登録が可能です。

Excelの会議情報一覧から一件づつ取り出しOutlookの予定表へ会議を登録・送信する流れとなります。

Excelブック(VBA) → 予定表へ会議を登録・送信して → Outlook
Excelブック ← 会議を登録・送信したよ ← Outlook

次に早速実装をして動かしてみましょう!

Excel VBAからOutlookを操作するための下準備

①まずExcelを起動し、「開発」タブをクリックします。

②VBEの画面が開いたら、メニューから「ツール」>「参照設定」を選択します。

③「Microsoft Outlook XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。

以上です。

VBAを実装する

続いてVBAを実装します。

今回VBAは以下の通りとなります。

Sub Outlookから会議出席依頼を送信する()

    'Outlook用の定義
    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.Namespace
    Dim olFolder As Folder
    Dim olConItems As Outlook.Items
    Dim olItem  As AppointmentItem
    Dim checkFlg As Long
    
    '重複チェックフラグ初期値設定
    checkFlg = 0

    'Excel用の定義
    Dim wbBook As Workbook
    Dim wsSheet As Worksheet
    Dim lnContactCount As Long
    
    '抽出期間の定義
    Dim strStart As String
    Dim strEnd As String
    Dim intKikan As Integer
    
    
    '対象予定表の抽出期間を月単位で指定します。
    '※抽出期間が短いと予定アイテムのチェックができず登録できない場合がありますので注意してください。
    intKikan = 12  '抽出期間を12か月にしています。
    
    strStart = Format(DateAdd("m", -intKikan, Date), "yyyy/mm/dd") '抽出するスケジュールの開始日を指定
    strEnd = Format(DateAdd("m", intKikan, Date), "yyyy/mm/dd") '抽出するスケジュールの終了日を指定
    
    
    'スクリーンの更新は行われません。
    Application.ScreenUpdating = False
    
    'Excelのブックとワークシートのオブジェクトを設定します。
    Set wbBook = ThisWorkbook
    Set wsSheet = wbBook.Worksheets(1)
    
    wsSheet.Activate
    
    'Outlookオブジェクトを設定し、MAPI名前空間を介してOutlookの予定表を取得します。
    Set olApp = New Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olFolder = olNamespace.GetDefaultFolder(olFolderCalendar)
    Set olConItems = olFolder.Items

    'Restrictメソッドで期間指定して抽出するメールアイテムを絞り込みます。
    Set olConItems = olConItems.Restrict("[Start] >= '" & strStart & "' And [End] < '" & strEnd & "'")


    '取得結果を記述する行番号を指定します。2行目のセルから開始されることになります。
    lnContactCount = 2

    Dim rc As Integer
    rc = MsgBox("会議出席依頼を送信しますか?", vbYesNo + vbQuestion, "確認")
    
    If rc = vbYes Then
    
        '予定表一覧の件数分繰り返します。
        For i = lnContactCount To Cells(1, 1).End(xlDown).Row
            Set olItem = olApp.CreateItem(olAppointmentItem)

            '重複チェック&更新処理
            For Each olItemBefor In olConItems
                If TypeName(olItemBefor) = "AppointmentItem" Then
                
                    'エクセルI列のEntryIDと登録されているEntryIDが一致していたら該当予定表を更新します。
                    If olItemBefor.EntryID = Cells(i, 9) Then
                    
                        '比較用に一時的に作成
                        With olItem
                            .Subject = Cells(i, 1)
                            .Start = Format(Cells(i, 3), "yyyy/mm/dd hh:mm:ss")
                            .End = Format(Cells(i, 4), "yyyy/mm/dd hh:mm:ss")
                        End With
    
                    
                        '重複フラグ1をセット
                         checkFlg = 1
                    
                        '登録されている予定表の件名と開始日時及び終了日時が一致していなかった場合のみ更新します。
                        '※更新の条件はご都合に応じて変更してください。この条件が無い場合はエクセルの予定表すべて更新されますので、ご注意ください。
                        If olItemBefor.Subject = olItem.Subject And olItemBefor.Start = olItem.Start And olItemBefor.End = olItem.End Then
    
    
                        Else

                            '定期アイテムは除外します。
                            If Cells(i, 10) <> "True" Then
                                 With olItemBefor
                                    .Subject = Cells(i, 1)
                                    .Location = Cells(i, 2)
                                    .Start = Format(Cells(i, 3), "yyyy/mm/dd hh:mm:ss")
                                    .End = Format(Cells(i, 4), "yyyy/mm/dd hh:mm:ss")
                                    .Body = Cells(i, 5)
                                    .RequiredAttendees = Cells(i, 7)
                                    .OptionalAttendees = Cells(i, 8)
                                    .Recipients.ResolveAll
                                    
                                    .MeetingStatus = 1  '予定を "会議" に設定 ※「olMeeting」でもOK
                                    .Send  '送信
                                End With
                            End If
                        End If
                        
                        'Null out the variables.
                        Set olItem = Nothing
                        
                    End If
                End If
            Next
            'EntryIDが空である場合のみ新規登録をすることにしました。
            If checkFlg <> 1 And Cells(i, 9) = "" Then
                With olItem
                    .Subject = Cells(i, 1)
                    .Location = Cells(i, 2)
                    .Start = Format(Cells(i, 3), "yyyy/mm/dd hh:mm:ss")
                    .End = Format(Cells(i, 4), "yyyy/mm/dd hh:mm:ss")
                    .Body = Cells(i, 5)
                    .RequiredAttendees = Cells(i, 7)
                    .OptionalAttendees = Cells(i, 8)
                    .Recipients.ResolveAll
                    .MeetingStatus = 1
                    .Send

               End With
               

    
               'エクセルI列へ発行されたEntryIDを書き込みをします。
               Cells(i, 9) = olItem.EntryID
               
               'エクセルF列へ予約者を書き込みをします。
               Cells(i, 6) = olItem.Organizer

               
            End If
    
        
        '重複フラグリセット
        checkFlg = 0
    
    Next
    
    Else
        MsgBox "処理を中断します"
    End If
    
    'Null out the variables.
    Set olItem = Nothing
    Set olApp = Nothing
    Set wbBook = Nothing
    Set wsSheet = Nothing
    Set olNamespace = Nothing
    Set olFolder = Nothing
    Set olConItems = Nothing

    'Turn screen updating back on.
    Application.ScreenUpdating = True
    
    MsgBox "会議出席依頼の送信が完了しました!", vbInformation
    
End Sub

実装手順は以下の通りです。今回はExcel側にこのVBAを実装します。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のマクロを入力します。

こちらで完了です。

会議出席依頼のデータを準備する

会議出席依頼のデータを準備しましょう。

VBAを実装したエクセルのシートへ
以下の項目に沿って記入をしていきます。

件名 場所 開始日時 終了日時 予定の本文 予約者 必須出席者 任意出席者 EntryID
件名を入力 場所を入力 開始日時を”yyyy/mm/dd hh:mm:ss”形式で入力 終了日時を”yyyy/mm/dd hh:mm:ss”形式で入力 予定の本文を入力 予約者が登録後入ります。空でOKです。 必須出席者のアドレスを入力 任意出席者のアドレスを入力 会議識別子のEntryIDが登録後入ります。空でOKです。

タカヒロ
タカヒロ
複数の会議出席者を指定する場合は、「;」セミコロンで区切って入力してください。

サンプルでは以下のように入力しています。

VBAを実行し、会議出席依頼を送信する

メール誤送信予防の設定をする

今回はメールを送信しますが、メール誤送信防止のためにメールが即送信とならない設定をしておきましょう。

①Outlookのオプションを開きます。

②左ペイン詳細設定をクリックします。

③右ペイン送受信>「接続したら直ちに送信する」のチェックを外し、OKをクリックします。

続いて、VBAを実行してみましょう。

VBAを実行する

①「開発」タブの「マクロ」をクリックします。

②「Outlookから会議出席依頼を送信する」を選択し、「実行」をクリックします。

③メッセージ「会議出席依頼の送信が完了しました!」が表示されば完成です!

予定用へ会議スケジュールが登録されましたね。

登録した2件の会議内容を確認しましょう。

宛先、件名、本文共にExcel通りに入っていますね!

次に会議出席依頼が送信されているかチェックしてみます。

Outlookの送信トレイを見てみましょう。

はい、会議出席依頼メールが送信されていることが確認できましたね!

会議のスケジュール、内容を変更し再送信する

会議のスケジュール、内容を変更し再送信してみましょう。

①Excelの件名、開始日時、終了日時を変更します。

②「Outlookから会議出席依頼を送信する」を選択し、「実行」をクリックします。

③メッセージ「会議出席依頼の送信が完了しました!」が表示されば完成です。

予定用へ変更後の会議スケジュールになりましたね。

会議変更通知も送信されていますね。

 

今回のVBAについて説明

対象期間を設け、期間を絞ることによりチェック対象の件数が少なくなるので処理時間を短くすることができました。
サンプルでは抽出期間を12か月にしています。

intKikan = 12

抽出するスケジュールの開始日を指定します。

strStart = Format(DateAdd(“m”, -intKikan, Date), “yyyy/mm/dd”)

抽出するスケジュールの終了日を指定します。

strEnd = Format(DateAdd(“m”, intKikan, Date), “yyyy/mm/dd”)

取得したOutlookオブジェクトを取得します。

Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace(“MAPI”)

予定表のリストはolFolderCalendarというメンバーに格納されていますのでそれを指定しています。

Set olFolder = olNamespace.GetDefaultFolder(olFolderCalendar)

エクセルI列のEntryIDと登録されているEntryIDが一致していたら該当予定表を更新します。

If olItemBefor.EntryID = Cells(i, 9) Then

登録されている予定表の件名と開始日時及び終了日時が一致していなかった場合のみ更新します。
※更新の条件はご都合に応じて変更してください。この条件が無い場合はエクセルの予定表すべて更新されますので、ご注意ください。

If olItemBefor.Subject = olItem.Subject And olItemBefor.Start = olItem.Start And olItemBefor.End = olItem.End Then

定期的な予定でない場合変更します。

If Cells(i, 10) = “False” Then

Excel側の値を読み込み、予定オブジェクトにセットします。

.Subject = Cells(i, 1)
.Location = Cells(i, 2)
.Start = Format(Cells(i, 3), “yyyy/mm/dd hh:mm:ss”)
.End = Format(Cells(i, 4), “yyyy/mm/dd hh:mm:ss”)
.Body = Cells(i, 5)
.RequiredAttendees = Cells(i, 7)
.OptionalAttendees = Cells(i, 8)
.Recipients.ResolveAll

予定を “会議” に設定します。「olMeeting」でもOKです。

.MeetingStatus = 1

OlMeetingStatusプロパティの値の詳細は以下の通りです。

Name Value Description
olMeeting 1 予定が組まれた状態。
olMeetingCanceled 5 予定が取り消された状態。
olMeetingReceived 3 参加要請が受信された状態。
olMeetingReceivedAndCanceled 7 予定されていた会議が取り消されたが、ユーザーの予定表にはまだ表示されている状態。
olNonMeeting 0 参加者なしで予定が組まれた状態。 予定表に休日を設定する際、この状態が生じることがあります。

※参考:https://docs.microsoft.com/ja-jp/office/vba/api/outlook.olmeetingstatus

タカヒロ
タカヒロ
公式サイトの日本語版は機械翻訳のせいか値が正しくないので英語版を見るようにしましょう。

Sendメソッドでメール送信します。

.Send

エクセルI列のEntryIDと登録されているEntryIDが一致していなかったら新規登録します。

If checkFlg <> 1 Then

新規の場合は発行されたEntryIDをExcelシートのI列へ書き込みます。

Cells(i, 9) = olItem.EntryID

<追加>日本語交じりのURLを日本語も含む形でハイパーリンクを付与するよう機能(URLエンコード処理)追加

日本語交じりのURLを入力すると、会議/予定アイテム生成時にハイパーリンクが日本語の手前で切れてしまう問題があります。

Excelの本文欄へ日本語交じりのURLを入力します。

VBA実行後、会議アイテムの本文欄にハイパーリンクが入っていますが、日本語の手前までしか認識されていません。

Outlookの仕様で、2バイト文字をURLと認識しないことが原因ですね。

対策としては手直しすることが簡単で速いのですが、
予定や会議を生成するたびにハイパーリンクを手直しすることは少々面倒です。

そこで、Excelで入力した本文の内容にhttps始まりのURLがあればURLエンコードをするよう処理を追加し、
日本語交じりでもハイパーリンクが付くようにしてみました。

タカヒロ

タカヒロ
なお、URLエンコード機能はExcel2013以降のバージョンが対象となりますことご了承ください。

サンプルコードは以下の通りです。

Sub Outlookから会議出席依頼を送信する__URLエンコード追加()

    'Outlook用の定義
    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.Namespace
    Dim olFolder As Folder
    Dim olConItems As Outlook.Items
    Dim olItem  As AppointmentItem
    Dim checkFlg As Long
    
    '重複チェックフラグ初期値設定
    checkFlg = 0

    'Excel用の定義
    Dim wbBook As Workbook
    Dim wsSheet As Worksheet
    Dim lnContactCount As Long
    
    '抽出期間の定義
    Dim strStart As String
    Dim strEnd As String
    Dim intKikan As Integer
    
    'URLエンコードの条件を定義します。
    '「http」を指定。「http」や「https」に該当。
    Const myHyperlink = "http"
    Dim objApp As New Excel.Application
    Dim arrUrlLists As Variant
    Dim strURL As Variant
    
    
    '対象予定表の抽出期間を月単位で指定します。
    '※抽出期間が短いと予定アイテムのチェックができず登録できない場合がありますので注意してください。
    intKikan = 12  '抽出期間を12か月にしています。
    
    strStart = Format(DateAdd("m", -intKikan, Date), "yyyy/mm/dd") '抽出するスケジュールの開始日を指定
    strEnd = Format(DateAdd("m", intKikan, Date), "yyyy/mm/dd") '抽出するスケジュールの終了日を指定
    
    
    'スクリーンの更新は行われません。
    Application.ScreenUpdating = False
    
    'Excelのブックとワークシートのオブジェクトを設定します。
    Set wbBook = ThisWorkbook
    Set wsSheet = wbBook.Worksheets(1)
    
    wsSheet.Activate
    
    'Outlookオブジェクトを設定し、MAPI名前空間を介してOutlookの予定表を取得します。
    Set olApp = New Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olFolder = olNamespace.GetDefaultFolder(olFolderCalendar)
    Set olConItems = olFolder.Items

    'Restrictメソッドで期間指定して抽出するメールアイテムを絞り込みます。
    Set olConItems = olConItems.Restrict("[Start] >= '" & strStart & "' And [End] < '" & strEnd & "'")


    '取得結果を記述する行番号を指定します。2行目のセルから開始されることになります。
    lnContactCount = 2

    Dim rc As Integer
    rc = MsgBox("会議出席依頼を送信しますか?", vbYesNo + vbQuestion, "確認")
    
    If rc = vbYes Then
    
        '予定表一覧の件数分繰り返します。
        For i = lnContactCount To Cells(1, 1).End(xlDown).Row
            Set olItem = olApp.CreateItem(olAppointmentItem)
            
            
            '本文のURLエンコード処理---ここから
            arrUrlLists = Split(Cells(i, 5), vbLf)
            
            For Each strURL In arrUrlLists
            
                If InStr(strURL, myHyperlink) Then
                
                    '一文字づつ取り出し、半角記号以外をエンコードする
                    For k = 1 To Len(strURL)
                        strMoji = Mid(strURL, k, 1)
                        If strMoji Like "[ -/:-@\[-~]" Then
                        'If strMoji Like "[ぁ-んァ-ヴー亜-熙一-龠々]" Then
                           strMojiTemp = strMojiTemp & strMoji
                        Else
                            strMojiTemp = strMojiTemp & objApp.WorksheetFunction.EncodeURL(strMoji)
                        End If
                    Next
        
                    'エンコード後の文字列を結合する
                    strBody = strBody & vbCr & strMojiTemp
                    
                Else
                    strBody = strBody & vbCr & strURL
                
                End If
            Next
            '本文のURLエンコード処理----ここまで
            
            
            
            '重複チェック&更新処理
            For Each olItemBefor In olConItems
                If TypeName(olItemBefor) = "AppointmentItem" Then
                
                    'エクセルI列のEntryIDと登録されているEntryIDが一致していたら該当予定表を更新します。
                    If olItemBefor.EntryID = Cells(i, 9) Then
                    
                        '比較用に一時的に作成
                        With olItem
                            .Subject = Cells(i, 1)
                            .Start = Format(Cells(i, 3), "yyyy/mm/dd hh:mm:ss")
                            .End = Format(Cells(i, 4), "yyyy/mm/dd hh:mm:ss")
                        End With
    
                    
                        '重複フラグ1をセット
                         checkFlg = 1
                    
                        '登録されている予定表の件名と開始日時及び終了日時が一致していなかった場合のみ更新します。
                        '※更新の条件はご都合に応じて変更してください。この条件が無い場合はエクセルの予定表すべて更新されますので、ご注意ください。
                        If olItemBefor.Subject = olItem.Subject And olItemBefor.Start = olItem.Start And olItemBefor.End = olItem.End Then
    
    
                        Else

                            '定期アイテムは除外します。
                            If Cells(i, 10) <> "True" Then
                                 With olItemBefor
                                    .Subject = Cells(i, 1)
                                    .Location = Cells(i, 2)
                                    .Start = Format(Cells(i, 3), "yyyy/mm/dd hh:mm:ss")
                                    .End = Format(Cells(i, 4), "yyyy/mm/dd hh:mm:ss")
                                    .BodyFormat = "olFormatHTML"
                                    .Body = strBody
                                    .RequiredAttendees = Cells(i, 7)
                                    .OptionalAttendees = Cells(i, 8)
                                    .Recipients.ResolveAll
                                    
                                    .MeetingStatus = 1  '予定を "会議" に設定 ※「olMeeting」でもOK
                                    .Send  '送信
                                End With
                            End If
                        End If
                        
                        'Null out the variables.
                        Set olItem = Nothing
                        
                    End If
                End If
            Next
            'EntryIDが空である場合のみ新規登録をすることにしました。
            If checkFlg <> 1 And Cells(i, 9) = "" Then
                With olItem
                    .Subject = Cells(i, 1)
                    .Location = Cells(i, 2)
                    .Start = Format(Cells(i, 3), "yyyy/mm/dd hh:mm:ss")
                    .End = Format(Cells(i, 4), "yyyy/mm/dd hh:mm:ss")
                    .Body = strBody
                    .RequiredAttendees = Cells(i, 7)
                    .OptionalAttendees = Cells(i, 8)
                    .Recipients.ResolveAll
                    .MeetingStatus = 1
                    .Send

               End With
               

    
               'エクセルI列へ発行されたEntryIDを書き込みをします。
               Cells(i, 9) = olItem.EntryID
               
               'エクセルF列へ予約者を書き込みをします。
               Cells(i, 6) = olItem.Organizer

               
            End If
    
        
        '重複フラグリセット
        checkFlg = 0
    
    Next
    
    Else
        MsgBox "処理を中断します"
    End If
    
    'Null out the variables.
    Set olItem = Nothing
    Set olApp = Nothing
    Set wbBook = Nothing
    Set wsSheet = Nothing
    Set olNamespace = Nothing
    Set olFolder = Nothing
    Set olConItems = Nothing
    
    

    'Turn screen updating back on.
    Application.ScreenUpdating = True
    
    MsgBox "会議出席依頼の送信が完了しました!", vbInformation
    
End Sub

日本語混合のURLを入力し、VBAを実行してみます。

はい、日本語の部分がエンコードされ、ハイパーリンクが文字列の最後までつきましたね!

リンクをクリックしてみましょう。

はい、「日本語」と表示されていますね!

 

 

タカヒロ
タカヒロ
httpを含む行全体がハイパーリンクとなりますので、ハイパーリンク部分の文字列と文章の文字列を改行でわけるようお願いします。

さいごに

いかがでしょうか。

今回は
Excelにまとめた会議情報からOutlookの会議出席依頼を送信する方法と合わせて会議スケジュールや内容の変更後の送信について
まとめました。

Outlookの操作は手作業が多いですからなるべく自動化して効率化を図りたいですね。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。



タカヒロ

 
タカヒロ  
Excelの基礎がスルスル入ってくるAmazonランク1位の優良Excel本です。
 
この基礎本と応用技が多いエク短と組み合わせれば、短時間で誰よりもExcelが使いこなせるかと思います。
 
2022/1/21(金)23: 59までAmazon限定の「厳選ショートカットキー」DL特典アリです。 >詳細を見てみる 

15 件のコメント

  • お世話になります。いつも参考にさせていただいています。
    予約者の設定について、お聞きしたいです。
    会議依頼を送信する際、予約者の名前を固定値として持たせることは可能でしょうか。
    複数人で1つのExcelファイルを共有・日程を記載するが、誰かがマクロを実行すると特定の1人の名前で予約を取れるようなシステムを作りたいと考えています。

    特殊な事例ではあると存じますが、ご回答のほどよろしくお願いいたします。

  • 初心者です。
    最近は会議室ではなくteams会議やzoom会議多く、場所をTeamsやzoomをしていしたいのですが、ご教授いただけないでしょうか

    • いつもご利用ありがとうございます。

      最近ではオンラインミーティングを会議場所に指定する機会が多いですね。

      ご質問のteams会議やzoom会議を出席依頼に入力する方法ですが、先に、各アプリのオンライン会議を設定いただき、会議のリンク「https://teams.microsoft.com/****など」を取得し、本文欄へ記載、また場所の欄へ「teams会議」や「zoom会議」などと入れて頂ければと存じます。

      よろしくお願いいたします。

  • ありがとうございました。感動です!!エンコード処理を勉強してみます。
    予定/会議はHTMLタグは今後サポートされることを期待してます。

  • ご回答ありがとうございます。
    確かにhttps で始まるURL で全てアルファベット表記であれば付与されるのですが、社内サーバーで日本語を含むURL ですと正しくリンクが出来ません。
    Htmlコードを本文に混ぜて書いたりもしたのですが、色も含めて正しくなりませんでした。
    色や太字化も出来れば設定したく、Excel本文欄で編集した状態にして試したのですが、会議出席依頼には反映出来ませんでした。
    尚、手動で会議出席依頼を起動する際の基本設定はhtmlになっております。
    長文でかつ、前回の質問が説明不足てあり申し訳ございません。
    タカヒロ様のお知恵をお貸し頂ければ幸いです。ご検討の程宜しくお願いします。

  • 早速のご回答ありがとうございました!ご教示頂いたコードを追加して思い通りの情報が取得出来ました。

    もう一点宜しいでしょうか。
    本文にURL を入れたいのですが、方法はありますでしょうか。

    • できたようでよかったです。

      本文中にURLを入れる方法については
      Excel側のE列へhttps://始まりのURLを記載頂ければと存じます。

      書式がリッチテキスト形式かHTML形式になっていれば
      ハイパーリンクも自動で付与されるかと存じます。

  • お世話になります。最近VBA を勉強し始めたのですが、大変参考になっております。
    出来れば、entryID のように、予約者のアドレスをExcelに書き込むようにしたいのですが可能でしょうか。色々調べては試してみたのですが自己解決が出来ませんでした。

    • いつもご利用ありがとうございます。

      予約者のアドレスですが、説明文では後で入れるとしてありましたが、肝心の命令文を入れておりませんでした…
      大変失礼いたしました。

      お手数ですが、
      Cells(i, 9) = olItem.EntryID
      の下に
      Cells(i, 6) = olItem.Organizer
      を追加頂けますでしょうか。

      また本文中のコードも追加修正いたしました。

      よろしくお願いいたします。

  • お世話になります。いつもPC事務作業に参考にさせていただいています。
    さて、このたび日付を指定して1日単位でのエクスポートとOutlook取り込みをしたいと考えております。
    その場合は抽出期間も1日にすることで、動作時間も短縮できますでしょうか。

    • いつもご利用ありがとうございます。

      抽出期間を1日にすることで時間短縮ができるかということですが、
      現在デフォルトの12か月間から短くなるので時間短縮につながると思われます。
      ただ処理時間は、対象となる予定や会議のアイテム数に比例する形となるので、
      抽出期間におけるアイテム数が少ないようでしたら変更したとしてもあまり感じないかもしれません。
      一度検証頂ければと存じます。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です