Outlookの予定表をExcelにCSVデータで出力する方法

こんにちは、マイクロソフトマンです。

今回は、Office365のOutlookの予定表データをExcelに出力する方法について解説します。

 

目先のスケジュールであれば、Outlookのカレンダーで確認すればよいですが、だいぶ先のスケジュールを確認するのはかなり手間です。

月表示にすると小さくて見えないですし、かといって週表示にすると、先の予定を見るときに、何回も次の週を表示するボタンをクリックしないといません。

 

そこで、Excelに現在予約されている全データを出力して先々の予定が確認できれば便利です。

他のサイトではマクロやスクリプトで紹介されていますが、そんな複雑なことをしなくても、Office365に用意されている機能で出力できます。

 

とても便利な機能ですが、不要なデータも大量に出力されるので、必要なデータのみを抽出する方法についても解説します。

スポンサーリンク
スポンサーリンク

Outlookの予定表をExcelにCSVデータで出力する方法

Exchange Onlineに接続するコマンド

次に以下のコマンドで、Exchange Onlineに接続します。

ユーザ名とパスワードの入力画面が表示されますので、自身のOffice365のアカウント、パスワードを入力しましょう。

$UserCredential = Get-Credential

 

次に以下のコマンドを実行します。

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

もし、リモートサーバoutlook.office365.comへの接続に失敗や、アクセスが拒否されましたというエラーが表示されたら、Exchangeオンラインへの接続がうまくできていませ。

先ほど入力したアカウントか、パスワードの入力ミスの可能性がありますので、もう一度最初のやり直してください。

 

次に以下のコマンドを実行すれば、準備が整います。

Import-PSSession $Session -DisableNameChecking

Outlookの予定表をExcelに出力するコマンド

では、いよいよExcelへのCSV出力になります。

以下のコマンドになりますが、sample@mail.comの部分には、予定表を出力したいメールアドレスを設定します。

自身の予定表を出力したい場合は、自身のメールアドレス、特定の会議室の予定表を出力したい場合は、会議室に設定されているメールアドレスになります。

 

末尾のファイルパスは、データを出力する場所になります。とりあえず、Cドライブの直下で設定していますが、変更できます。

 

Get-CalendarDiagnosticObjects -Identity sample@mail.com -ResultSize Unlimited | Export-Csv -NoTypeInformation -Encoding UTF8 -path C:\schedule.csv

スポンサーリンク

出力したCSVデータで必要な情報のみ表示する

出力されたCSVデータを見ると、不要なデータが大量に出力されているのがわかると思います。

そこで、必要なデータのみを表示するようにしましょう。スケジュールで必要なデータは以下の4つです。

・会議のタイトル(NromalizedSubject)

・その会議に予約されているメンバー(DisplayAttendeesAll)

・開始日時(StartTime)

・終了日時(EndTime)

 

出力されたCSVデータをExcelで開いて、上記4つの列と、以下の1つの列だけを残して、他の列は全て削除するか非表示にします。

・ParentDisplayName

ParentDisplayNameで重複している予定表のデータを消す

列を削除しただけでは、同じ名前のスケジュールが重複して表示されていると思います。

重複データを消すために、ParentDisplayName の列が必要になります。

 

画像のように1列目にフィルターを設定し、ParentDisplayNameの列で「予定表」となっている行のみ抽出すればOKです。

 

あとは、StartTimeのフィルタのところで昇順に並べれば、開始日時順にソートすることができます。

StartTimeもEndTimeもGMT標準時間で出力されるので、日本時間にするには+9時間する必要がありますので注意してください。

 

DisplayAttendeesAll は出席者の表示名ですが、出席者が多い場合、すべては表示されませんので注意してください。

 

また、休暇の場合は、終日のスケジュールで予約するかと思います。その場合は自身の予定表にだけ予定を入れるので、出席者はNotFoundとなり、StartTimeは15:00、EndTimeは翌日の15:00で設定されます。丸一日分ですね。

ちなみに、GMT標準時間の15:00は日本時間の0:00のことです。(+9時間の時差を足すため)

スポンサーリンク
スポンサーリンク
Outlook



Windows777技術屋さん
タイトルとURLをコピーしました