• 締切済み

【EXCEL VBA メール文からの文言抽出】

お疲れ様です。 行き詰まりました。 EXCELやVBAにくわしいかた、教えてください。 外部よりいただくメールの文章から条件に合うキーワードを抽出したいのですが、どうすればよいでしょうか? ・例えば「8桁の数字(半角・全角とも)があれば、商品のコードだと判断して抽出する。なければ空欄あるいは"-"を返す。」 ・例えば「『様』を含む文字列はお客様のお名前であると判断して抽出する。なければ空欄あるいは"-"を返す。」       等々 ・キーワードや定義は一覧として用意出来て、後々追加していければありがたい。 ・いただくメールはルールや定型はありません。自由な文章です。 ・目的は事務処理の効率化です。 つたない文章ですみません。 やりたいことをご理解いただけますか? 例) 拝啓 ~ 略 ~ 近々日本太郎様と申し合わせのうえ、私どもを交えて御社を訪問させていただきたく存じます。 その際、件の新商品「ABCD-EF(87654321)」および「OPQ-RSTU(55555555)」の実機を拝見させていただければ・・・ ~ 後略 ~ 抽出結果 お客様氏名1:日本太郎 様 お客様氏名2:- お客様氏名3:- 商品コード1:87654321 商品コード2:55555555 商品コード3:- 日時1:- 日時2:- 日時3:-          etc. 操作はoutlook側からでもexcel側からでも、どちらからでも可です。 vbaでも関数でも良いのでヒントをお願いします。 以上 よろしくお願いします。

みんなの回答

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.2

No.1の方が回答されているように無理です. (1)8桁の数字(半角・全角とも)があれば、商品のコードだと判断...東京の電話番号には 8桁があったような. (2)『様』を含む文字列はお客様のお名前であると判断...No.1の方の回答のとおりです. (1) については,東京都の電話番号と一致する可能性がある商品コードを使わない(将来的に東京都以外にも 8桁の電話番号が出てきたらアウト). (2) については,たとえば顧客リストのようなものがあって,それと照会するのなら少しはマシ(顧客リストに無い顧客には対応できない). 処理結果を確認する作業が増えるだけです(今の作業よりも楽なら,それも有り).

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

> vbaでも関数でも良いのでヒントをお願いします。 https://www.depthbomb.net/?p=208 このサイトを参考にしてメール本文を読み込んでください。 サイトの説明では本文は取り出していないので、たとえば以下のようになりますから追加してください。 本文はBodyになりますのでD列に取り出す場合は TargetSheet.Cells(RowCount, 4).Value = itms.Body http://officetanaka.net/excel/vba/tips/tips56.htm#02 このサイトを参考にして数値だけを取り出して個々に8桁かどうかを判別してください。 全角を半角にするのは StrConv を使います。 http://officetanaka.net/excel/vba/function/StrConv.htm > 『様』を含む文字列はお客様のお名前であると判断 無理です。 近々日本太郎様 を 日本太郎様 とは判別できませんし、たとえば 「ウェブサイト運営者様にとって重要な事の一つに〇〇が挙げられ今月のヒントでは〇〇についてご紹介しサイト運営者様のお力に云々」 とあった場合、どこまでが名前(サイト運営者様)なのか判別のしようがありません。 また、文章に様が出てくるのが全て名前とは限りません。 様の例 https://dictionary.goo.ne.jp/word/kanji/%E6%A7%98/