VBScriptでOutlookから本文を抽出してExcelに追記する
作ってみた
VBScriptを使ってちょっとしたツールを作成してみました github.com
概要
Outlookから件名が設定項目記載の条件に一致するメールを対象に
本文を抽出してExcelに追記するツールになります
使い方
- Githubからoutlook-to-excel.vbsをダウンロードする
- Excelファイルを新規作成する
- outlook-to-excel.vbsを開き抽出条件、出力先のExcelに応じて設定項目を修正する
- outlook-to-excel.vbsをダブルクリックする
ダブルクリックで実行後、正常終了するとExcelに追記しましたと表示されます
設定項目
設定は以下項目を設定可能です
正規表現については、条件に一致する括弧内の文字列が追記対象になります
動かしてみる
以下のようなメールが受信トレイにあったとします。
このメール本文の■以降を抽出します。
件名と本文の抽出条件は以下のようにします
' 抽出対象の件名。設定した文字列が含まれるメールを対象とする config.Add "pickup_title", "お問い合わせ" ' 本文抽出条件 config.Add "body_grep_rule", "■(.+)$"
outlook-to-excel.vbsを実行すると以下のような警告が出る場合がありますので許可を押してください
警告内容に不安がある場合はoutlook-to-excel.vbsのソースコードを確認したうえで
問題ないと判断できたら許可を押下いただければと思います
許可いただければoutlook-to-excel.vbsが実行され
Excelを開くと以下のように追加されていることが確認できます
VBScriptで〇〇を利用する
以下開発時に調べた内容になります
連想配列を利用する
Set dict = CreateObject("Scripting.Dictionary")
仕様は以下を参照
https://msdn.microsoft.com/ja-jp/library/cc428065.aspx
正規表現を利用する
Set reg = New RegExp reg.Pattern = <抽出条件> reg.Execute(<検索対象文字列>)
仕様は以下を参照
https://msdn.microsoft.com/ja-jp/library/cc392403.aspx
正規表現の仕様は以下を参照
https://msdn.microsoft.com/ja-jp/library/cc392437.aspx
Excelを利用する
Set excel = CreateObject("Excel.Application") excel.Application.Workbooks.Open(<Excelファイルまでのパス>)
仕様は以下を参照
https://msdn.microsoft.com/ja-jp/library/office/ff198091.aspx
Outlookを利用する
Set Application = CreateObject("Outlook.Application")
仕様は以下を参照
https://msdn.microsoft.com/ja-jp/library/office/ff863377.aspx
メールから取得できるプロパティ値は以下を参照
https://msdn.microsoft.com/ja-jp/VBA/Outlook-VBA/articles/mailitem-object-outlook#%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3