2019.04.08皆様こんにちは、ノグチです。日々のお仕事に欠かせない、メール。連絡手段として便利なツールですが、送られる方の日々の業務負担になっていたりすることもあります。日々の業務内容と作業時間をメールで報告する、所謂日報、というもの。この日報の中で勤務開始時間と終了時間を書いて上長に送っているのに、更に勤務表が存在していることが少なくありません。上長はこの日報と、部下から提出された勤務表を突き合せて勤務表の承認をするなど、業務の負荷になっていることがあるようです。日報として送信するメールはフォーマットが決まっていることが多いので、フォーマットに従って、見たい情報だけを取り出して、例えばエクセルのシートに書き出すことができれば、確認作業が楽になるかもしれません。VBAでメールを操作してみようMailItemオブジェクトのおさらいさて、メールを操作するには、MailItemオブジェクトを取得する必要があることは以前の記事でお伝えしました。エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックするOutlookのMailItemオブジェクトのDisplayメソッドを使って、VBAで作成したOutlookのメール内容を、メール送信前にチェックする方法をご紹介しています。「VBAでメールを作成するのは便利だけど、内容をチェックしないでメール送信してしまうのは心配...」という方にお勧めです。tonari-it.com2018.08.01メールの本文は、MailItemオブジェクトのBodyプロパティで取得することができるので、メール本文にあった取得方法をコーディングすれば、欲しい情報がメール本文から取り出せるという訳です。今ウインドウで開いているメール本文から、欲しい情報を取り出してみましょう!ちなみに、今開いているメールのウインドウ操作については、下記記事で紹介していますので、併せてご覧くださいね。vbaで、メールの添付ファイルをワンクリックで指定フォルダに保存する方法を複数回記事にわたってご紹介していきます。今回は、ActiveInspectionメソッドで、今開いているOutlookウインドウのInspectorオブジェクトを取得する方法をご紹介しています。tonari-it.com2018.09.25メール本文から目的の情報を取り出してみるBodyプロパティとMid関数で欲しい情報を取り出す例えば、下のメールから、作業時間だけを取り出したいとします。このメールの本文である、MailItemオブジェクトのBodyプロパティを、VBEのウォッチ式で覗いてみると、こんな感じになっています。一見すると1行目と2行目の間にスペースが入っているように見えますが、メール本文上で改行していますので、このスペースには改行コードの「vbCrLf」が存在しています。“【作業時間】13:00~16:00vbCrLf【作業時間計】5HvbCrLf【作業内容】xxxxxxxxxxxxxxxxxxxxxxxx”こんな風に書かれているイメージです。メール本文の作業時間だけを取り出したいならば、メールの先頭から「【作業時間】」の6文字を除いた7文字目から、最初の改行コードまでを取り出せばOK。コードはこんな風に記述できます。1)Mid関数を使って、メール本文の7文字目から改行コードのある文字列までを取得しています。メールから欲しい情報を取り出す為のコードのメイン部分はこれだけです。メール本文から目的の情報を取り出すコード試しに取得した内容を、メッセージで表示してみましょう。全体はこんな感じのコードになります。今開いているメールの、【作業時間】という文字列の次の文字から改行コードまでをの文字列を取得して、メッセージ表示するというものです。Subこのコードを実行してみると...この通り、作業時間の時間だけの部分を取り出すことができました。メール本文は決まったフォーマットでこの記事でご紹介した方法なら、受信メール本文ボックス内のメールを対象にして、複数のメールからまとめて文字を取り出すこともできそうです。例でご紹介したように、日々の勤怠を日報で上長に送っていて、その報告内容と勤務表やタイムカードと照らし合わせたい...といったとき。1ヶ月分のメールを対象にしてこの方法で一気に対象の文字をメールから取り出して、エクセルのシートに貼り付けて一覧にしてしまえば、楽に勤務時間や勤務内容を把握することができますね。そのためには送信されてくるメール本文が、決まったフォーマットで書かれている必要があります。【時間】xxxxx(改行)【作業内容】xxxxxのように書かれてしまうと、上のコードでは欲しい情報がメール本文から取り出せなくなってしまいます。そのあたりの運用上のルールも考えておかなければいけません。最後に今回は、メールの本文から特定の文字を取り出す方法をご紹介しました。様々なシステムで勤怠管理ができるようになっている昨今、未だメールでの時間報告をしなければならない職場もあるようです。(筆者の経験より)メールで報告する方も面倒臭いですが、メールと勤怠表を突き合せたりして面倒くさい!とお嘆きの方は、今回の記事でご紹介した方法を使えば少し楽になるかもしれませんね。VBAでメールを操作してみようメーラーとして名高く、そして便利なOutlook。Outlookのメールだって、VBAで操作することができますよ。本シリーズでは、Outlookのメールを、VBAで操作する方法をご紹介していきます。投稿者プロフィールノグチフリーランスPG・SE元製造子会社SE。業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。Input命令でUTF-8のCSVファイルを取り込むと文字化けを起こします。今回は、ADODB.Streamを使ってUTF-8のCSVファイルを取り込む方法についてお伝えします。VBAで、ワンクリックで今開いているメールの内容を転記した予定登録画面を開く方法をご紹介しています。メールのメニューバーにマクロのプロシージャを表示しておく方法と併せて使えば、メニューのワンクリックで予定登録ができちゃいますよ。【エクセルVBA】AfterUpdateイベントでテキストボックス同士を連動させてみようエクセルユーザーフォーム上の複数のテキストボックスを、AfterUpdateイベント内で連動させる方法をご紹介しています。テキストボックスに入力された値から、ワークシート上のリストを検索して、検索結果を別のテキストボックスに表示させるという、マスタ管理画面や、検索画面などで使える方法です。2019.12.06Excel・VBA活用術エクセルVBAでADODBレコードセットをSortメソッドで並び替えする方法エクセルVBAでAccessデータベースを操作する方法についてシリーズでお伝えしています。ADODBレコードセットの並び順について確認しつつ、Sortメソッドを使って並び替えをする方法についてです。【初心者向けエクセルVBA】取引先別に請求書を作成するマクロを作る初心者向けのエクセルVBAのシリーズとして、請求書を作成するマクロの作り方をお伝えしています。これまで紹介してきたテクニックを元に、取引先ごとに別のブックで請求書を作成するマクロを完成させていきます。【エクセルVBAでAccess連携】データベースに特定条件のデータが存在するかどうかを判定するエクセルVBAでAccessデータベースを操作する方法についてシリーズでお伝えしています。今回はエクセルVBAでAccessデータベースに特定のデータが存在するかどうかを判定するプログラムを作ります。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。