今回は、Excelマクロを使って、Outlookの特定のメールから情報を抜き出してリストに追記していく方法を取り上げます。
Man to Manは人材サービスの会社です。
スカウト代行のサービスを行っており、求人媒体からの数多くのメールを受信して、応募状況をExcelにまとめて、求職者の動向を分析しています。
求人媒体の管理画面は、CSVで情報を取得できない仕組みにしているケースが多く、都度、受信するメールから、各社のスカウトの状況を目視で確認し、Excelの一覧に転記するという作業を行っていました。
担当者は、Outlookで受信するメールをソートして、該当のメールを見逃さないよう、気を付けているもの、抜け漏れは発生します。決まった作業の繰り返しとは言え、メールを確認し、転記するという作業も、それなりの工数を取られるため、作業を自動化してExcelリストを作成できないか検討しました。
リストで集計する項目は、以下の2項目です。
1.求人を出している、企業名・求人No・ID
2.特定の期間中に「1」の情報を持つ求人のメールが何通配信されたか
求人媒体から来たメールを特定するために、メールの件名、差出人名などで、抜き出すメールの対象を決めます。
今回は、
1.3/1~25の間に受信2.件名「応募フォームからの問い合わせです」3.本文に記載されている「No:」から先の情報のみを抜き出す
という条件で、Excelファイルの各列に、メールから抜き出したそれぞれ情報を記述することにしました。
マクロのコードをExcelに適用する手順は以下の通りです。
Excelファイルを開きます。[開発]タブから[VBAエディター]を開きます([開発]タブが表示されていない場合は、Excelのオプションからリボンのカスタマイズを行って表示させてください)。[挿入] > [モジュール]を選択して新しいモジュールを追加します。上記のコードを新しいモジュールに貼り付けます。VBAエディターを閉じて、マクロを実行します([マクロ] > [マクロの実行]から選択して実行)。
例えば、受信日日を3/1~25から期間を変更したい場合は、以下の関数を記述して開始・修了の期間を設定します。
receivedStartDate = DateSerial(2024, 3, 1) receivedEndDate = DateSerial(2024, 3, 25)
既に受信済みのメールから、「企業名、求人No、ID」を抽出して、別の列に記載した、「企業名、求人No、ID」を突き合わせることで、3月中に受信した該当の「企業名、求人No、ID」の件数を算出できます。
使った関数はこちらです。=SUMPRODUCT(($C$2:$C$10=TRANSPOSE(G6))*1)
月別の合計でなく、日別で件数を出したい場合は別の関数を作ることで算出できます。
Microsoft製品であれば、Excelマクロは、Outlookなど、他の製品と連携して情報を転記して、Excelで集計することにも活用できます。
Power Automateでも、Outlookから情報を抜き出して、Excelへ転記することはできます。Excelマクロをゼロから作るのは大変ですが、ChatGPT(有料版)等を利用すれば、比較的つくりやすいです。Power Automate のプログラムはChatGPTでは作成できないので、学習コストと運用を考慮して、どちらで作成するか決めるとよいでしょう。