メールの内容を表にまとめたい

メールのデータを、エクセルVBAのプログラムを使って自動的に一覧表にまとめることができます。その例を紹介します。
ある会社に勤めるTさんには、毎日お客さんからメールで発注が入ります。
発注のメールがあると、お客様名、品物、数量、金額などを一覧表に書き移します。そして、1日分とか半日分とか貯まったら処理をして次の担当へと回します。
その発注メールは1日に何十件も来ます。数が多いと何度も表に書き移すのは面倒です。この処理をエクセルVBAのプログラムで自動化することが可能です。いちどプログラムを作ってしまえば次からは自動で一瞬で処理できるようななります。
全自動よりも、部分的な自動化の方が現実的
メールをどうやってエクセルに取り込むか? というのが1つ目のポイントです。
メールをエクセルに取り込むにはいくつか方法はあります。Tさんはメールを読むのにOutLookを使っていました。OutLookにはメールをテキストで保存する機能があります。そこで複数のメールを一度に選択してテキストに保存すると、全部のメール文章が1つのファイルにまとまります。これをエクセルのシートに貼り付けて処理するのが簡単そうです。ここは手作業になります。
処理を自動化するとき、なにがなんでも全自動、と考えるとうまくできないことが多いのです。手作業でも苦にならないところは手作業で行って、部分的に自動化するところから考えましょう。
特定のフォーマットとキーワードが必要

自動で処理を行うには、メールはある程度決まったフォーマットで書かれている必要があります。
仮に上の図のようなメールだとします。【 】で囲まれて、【お客様名】【商品コード】【商品名】といった決まった単語のあとに内容を書いてもらいます。
キーワードから必要なデータを取り込む
VBAのプログラムの処理では、メールを貼りつけたシートから、【お客様名】【商品名】【数量】などのキーワードとなる語句を検索して見つけていきます。
そしてそれぞれのキーワードの後に書かれた単語、例えば「【お客様名】串カツ中田 田中店」だったら、「串カツ中田 田中店」の部分を取り出して表に書き込みます。
同じように、それぞれのキーワードをもとに必要なデータを見つけて表に書き込んでいくプログラムを作ります。
すると、プログラムを実行するとこんな感じの一覧表ができあがります。

表を整える
まずは正確なデータを表に並べることが先決です。
次の段階で、表を整えるのを自動化することを考えます。
表に罫線をつける。罫線を太字にする。セルの色を付ける。などの操作もVBAでプログラムを作って自動化することができます。そこまで作り込まなくてもいい場合も多いですけれど。
こうして、Tさんのお仕事は自動化できました。
エクセルVBAでお仕事を自動化してみませんか。

コメント