当サイトの記事にはプロモーションが含まれています。

Outlookの他人の予定表をVBAでExcelにエクスポートする方法

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、こんにちは。今日は、Outlookで他の人の予定表をExcelに取り込む方法について、初心者の方にもわかりやすく解説します。特に、パソコンやスマホに不安がある方でも安心して実践できる内容にしていますので、ぜひ最後までご覧ください。

スポンサーリンク

Outlookの他人の予定表をExcelに取り込む方法

Outlookのイメージ

Outlookのイメージ

VBAを使って他人の予定表を取得する準備

まず、ExcelでVBAを使ってOutlookの予定表を取得するための準備をしましょう。

  1. Excelを開き、「開発」タブをクリックします。
  2. 「Visual Basic」を選択し、VBAエディタを開きます。
  3. 「ツール」メニューから「参照設定」を選び、「Microsoft Outlook XX.X Object Library」にチェックを入れて「OK」をクリックします。

これで、ExcelからOutlookを操作する準備が整いました。

VBAコードの実装

次に、VBAコードを実装します。以下のコードをVBAエディタにコピー&ペーストしてください。

Sub Outlookの他人の予定表をExcelへ取り込む()
    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.Namespace
    Dim olFolder As Outlook.Folder
    Dim olConItems As Outlook.Items
    Dim olItem As Outlook.AppointmentItem
    Dim wbBook As Workbook
    Dim wsSheet As Worksheet
    Dim lnContactCount As Long
    Dim strAddress As String
    Dim strStart As String
    Dim strEnd As String

    ' 他人の予定表のメールアドレスを指定
    strAddress = "hanako@extan.jp"

    ' 抽出する期間を指定
    strStart = Format("2023/09/01", "yyyy/mm/dd")
    strEnd = Format("2023/09/30", "yyyy/mm/dd")

    ' Outlookのオブジェクトを設定
    Set olApp = New Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olConItems = olNamespace.GetSharedDefaultFolder(olNamespace.CreateRecipient(strAddress), olFolderCalendar).Items

    ' Excelのワークブックとシートを設定
    Set wbBook = ThisWorkbook
    Set wsSheet = wbBook.Sheets(1)

    ' ヘッダーの設定
    wsSheet.Cells(1, 1).Value = "件名"
    wsSheet.Cells(1, 2).Value = "場所"
    wsSheet.Cells(1, 3).Value = "開始日時"
    wsSheet.Cells(1, 4).Value = "終了日時"
    wsSheet.Cells(1, 5).Value = "詳細"

    ' 予定をExcelに書き込む
    lnContactCount = 2
    For Each olItem In olConItems
        If TypeName(olItem) = "AppointmentItem" Then
            If olItem.Start >= strStart And olItem.End <= strEnd Then
                wsSheet.Cells(lnContactCount, 1).Value = olItem.Subject
                wsSheet.Cells(lnContactCount, 2).Value = olItem.Location
                wsSheet.Cells(lnContactCount, 3).Value = olItem.Start
                wsSheet.Cells(lnContactCount, 4).Value = olItem.End
                wsSheet.Cells(lnContactCount, 5).Value = olItem.Body
                lnContactCount = lnContactCount + 1
            End If
        End If
    Next olItem

    MsgBox "予定表の取り込みが完了しました!", vbInformation
End Sub

このコードを実行すると、指定した他人の予定表がExcelシートに取り込まれます。

注意点と対策

アクセス権限の確認: 他人の予定表を取得するには、その人から「すべての詳細を表示可能」の権限が必要です。権限が不足していると、予定情報が取得できない場合があります。
エラー処理の実装: 上記のコードにはエラー処理が含まれていません。実際の運用では、エラーが発生した場合に備えて、適切なエラー処理を追加することをおすすめします。

よくある質問や疑問

Q1: 他人の予定表を取得するには、どのような権限が必要ですか?

他人の予定表を取得するには、「すべての詳細を表示可能」の権限が必要です。権限が不足していると、予定情報が取得できない場合があります。

Q2: VBAコードを実行する際にエラーが発生しました。どうすればよいですか?

エラーの内容によりますが、まずはコード内の変数やオブジェクトの設定が正しいか確認してください。また、エラー処理を追加することで、問題の特定と解決がしやすくなります。

Q3: 他の形式(CSVやiCalendar)で予定表をエクスポートする方法はありますか?

はい、Outlookの予定表はCSVやiCalendar形式でエクスポートすることができます。手動でエクスポートする方法や、VBAを使用して自動化する方法があります。詳細については、Microsoftの公式ドキュメントや信頼性のある情報源を参照してください。

まとめ

今回は、Outlookの他人の予定表をVBAを使ってExcelに取り込む方法について解説しました。初心者の方でも実践できるよう、手順を丁寧に説明しましたので、ぜひ試してみてください。もし、操作中に不明な点や困ったことがあれば、お気軽にLINEでお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました