OutlookのメモをExcelへエクスポートをしたいときはないでしょうか。
けど、そんな中で悩むことは、
・Outlook VBAでOutlookのメモをExcelへエクスポートしたいがやり方がわからない。
ですよね。
今回はそんなお悩みを解決する
抽出期間指定でOutlookのメモをExcelへエクスポートする方法について
まとめます!
もくじ
OutlookのメモをExcelへエクスポートする完成イメージ
OutlookのメモをExcelへエクスポートする完成イメージについて説明をします。
OutlookメモをExcelへ出力する機能はないため、VBAで作り込み実装する必要があります。
実装先は、出力結果を書き込む先のExcelブック側となります。
Excelブック側からスクリプトを実行し以下の流れで処理が行われます。
①Excelブック(VBA) → メモ一覧ちょうだい → Outlook
②Excelブック ← メモ一覧を出すよ ← Outlook
Excel側のVBAを実行すると、
Outlookuのメモ情報が
さくっとExcelのシートへ出力されます!
早速使ってみましょう!
Outlookのメモのエクスポート先のExcelシートを用意する
まずはOutlookメモ出力先のExcelシートを用意しましょう。
Excelブックを新規作成します。
Outlookのメモの内容を確認する
エクスポートの対象となるOutlookのメモの内容を確認しましょう。
OutlookのメモをExcelへエクスポートするVBA
VBAを実装する
新規作成したブックへ、VBAを追加します。
VBAの追加手順については「VBAの実装手順」を参考にしてください。
サンプルコードは以下の通りです。
Sub OutlookのメモをExcelへエクスポートする()
'Outlook用の定義
Dim olApp As Outlook.Application
Dim olNamespace As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olConItems As Outlook.Items
Dim olItem As Object
'Excel用の定義
Dim wbBook As Workbook
Dim wsSheet As Worksheet
Dim lnContactCount As Long
Dim strStart As String
Dim strEnd As String
'メモ取得の対象期間を指定します。
strStart = Format("2020/10/1", "yyyy/mm/dd") '開始日を指定
strEnd = Format("2021/10/24", "yyyy/mm/dd") '終了日を指定
'スクリーンの更新は行われません。
Application.ScreenUpdating = False
'Excelのブックとワークシートのオブジェクトを設定します。
Set wbBook = ThisWorkbook
Set wsSheet = wbBook.Worksheets(1) '1の場合左端の1番目のシートが対象となります。
'書き込み先のセルを指定します。また1行目にタイトルを記述します。
With wsSheet
.Range("A1").CurrentRegion.Clear
.Cells(1, 1).Value = "タイトル"
.Cells(1, 2).Value = "本文"
.Cells(1, 3).Value = "カテゴリー"
.Cells(1, 4).Value = "作成日"
.Cells(1, 5).Value = "修正日"
.Cells(1, 6).Value = "色"
.Cells(1, 7).Value = "サイズ"
.Cells(1, 8).Value = "EntryID"
With .Range("A1:Z1")
.Font.Bold = True
.Font.ColorIndex = 10
.Font.Size = 11
End With
End With
wsSheet.Activate
'Outlookオブジェクトを設定し、MAPI名前空間を介してOutlookの連絡先一覧を取得します。
Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
'メモを対象にします。
Set olFolder = olNamespace.GetDefaultFolder(olFolderNotes)
Set olConItems = olFolder.Items
'Restrictメソッドで期間指定して抽出するメモアイテムを絞り込みます。
Set olConItems = olConItems.Restrict("[CreationTime] >= '" & strStart & "' And [CreationTime] <= '" & strEnd & "'")
'取得結果を記述する行番号を指定します。2の場合は2行目のセルから開始されることになります。
lnContactCount = 2
'メモアイテムを1件づつ取り出し、各値をシートへ出力していきます。
For Each olItem In olConItems
With olItem
Cells(lnContactCount, 1).Value = .Subject 'タイトル
Cells(lnContactCount, 2).Value = .Body '本文
Cells(lnContactCount, 3).Value = .Categories 'カテゴリー
Cells(lnContactCount, 4).Value = .CreationTime '作成日
Cells(lnContactCount, 5).Value = .LastModificationTime '修正日
Cells(lnContactCount, 6).Value = .Color '色
Cells(lnContactCount, 7).Value = .Size 'サイズ
Cells(lnContactCount, 8).Value = .EntryID 'EntryID追加
End With
lnContactCount = lnContactCount + 1
Next olItem
'オブジェクトを解放します。
Set olItem = Nothing
Set olConItems = Nothing
Set olFolder = Nothing
Set olNamespace = Nothing
Set olApp = Nothing
'スクリーンの更新をオンにします。
Application.ScreenUpdating = True
MsgBox "Outlookメモのエクスポートが完了しました!", vbInformation
End Sub
VBAを設定する
VBAを設定していきましょう。
メモ取得の対象期間を指定します。
サンプルでは作成日が”2020/10/1″から”2021/10/24″までとしています。
strEnd = Format(“2021/10/24”, “yyyy/mm/dd”) ‘終了日を指定
VBAを実行する
VBAを実行しましょう。
はい!メモの各内容がExcelへエクスポートされていますね!
VBAの説明
OutlookのメモをExcelへエクスポートするVBAの内容について説明をします。
まず、Excelへエクスポートされる値の項目について、以下の通りとなっています。
「タイトル」:メモのタイトル名です。
「本文」:メモの本文となります。
「カテゴリー」:メモのカテゴリー名となります。色分類の名前が入ります。
「作成日」:メモを新規作成した日時が入ります。
「修正日」:メモを修正した日時が入ります。
「色」:色分類のカラー番号が入ります。
「サイズ」:メモのサイズが入ります。単位はバイトです。
「EntryID」:メモアイテムの識別子が入ります。編集の時にアイテムを特定する時などに利用します。
Excelのブックとワークシートのオブジェクトを設定します。
1の場合左端の1番目のシートが対象となります。
Set wsSheet = wbBook.Worksheets(1)
書き込み先のセルを指定します。また1行目にタイトルを記述します。
.Range(“A1”).CurrentRegion.Clear
.Cells(1, 1).Value = “タイトル”
.Cells(1, 2).Value = “本文”
.Cells(1, 3).Value = “カテゴリー”
.Cells(1, 4).Value = “作成日”
.Cells(1, 5).Value = “修正日”
.Cells(1, 6).Value = “色”
.Cells(1, 7).Value = “サイズ”
.Cells(1, 8).Value = “EntryID”
Outlookオブジェクトを設定し、MAPI名前空間を介してOutlookの連絡先一覧を取得します。
Set olNamespace = olApp.GetNamespace(“MAPI”)
引数「olFolderNotes」でメモフォルダを対象にします。
Restrictメソッドで期間指定して抽出するメモアイテムを絞り込みます。
取得結果を記述する行番号を指定します。2の場合は2行目のセルから開始されることになります。
メモアイテムを1件づつ取り出し、各値をシートへ出力していきます。
With olItem
Cells(lnContactCount, 1).Value = .Subject ‘タイトル
Cells(lnContactCount, 2).Value = .Body ‘本文
Cells(lnContactCount, 3).Value = .Categories ‘カテゴリー
Cells(lnContactCount, 4).Value = .CreationTime ‘作成日
Cells(lnContactCount, 5).Value = .LastModificationTime ‘修正日
Cells(lnContactCount, 6).Value = .Color ‘色
Cells(lnContactCount, 7).Value = .Size ‘サイズ
Cells(lnContactCount, 8).Value = .EntryID ‘EntryID追加
VBAの実装手順
実装手順は以下の通りです。
今回はExcel側にこのVBAを実装します。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
次にExcelでOutlookの機能を有効化するための設定を行います。
①VBEのメニューから「ツール」>「参照設定」を選択します。
②「Microsoft Outlook XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし「OutlookのメモをExcelへエクスポートする」を選択し、「実行」をクリックします。
②「Outlookメモのエクスポートが完了しました!」が表示されたら完了です。
さいごに
いかがでしょうか。
今回は、
抽出期間指定でOutlookのメモをExcelへエクスポートする方法について
まとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す