• ベストアンサー

Excel, OutLookでのVBAの組み方を教えてください

仕事で、OutLook(Expressではない)のまとめをやることになりました。特定の文字をタイトルにもつメールを選択、その中の特定の文字をキーとして情報を収集し、Excelにまとめるというものです。 メールタイトル:「問題xxxx」(ホルダ「問題」) 期日:2005/09/01 - 2005/09/15 内容  1.問題番号:xxxx 2.担当者名:xxxx  3.地域:xxxxx  4.発生時刻:xx:xx  5.対応終了:xx:xx 情報吸い上げ後、該当メールを処理済みのフォルダへ移動させる。 エクセルでは、1行をメールの1件に対応させて記録します。 基本的には、エクセルからマクロを起動して、Outlookを開いて処理することになるのだろうと思います。 (期日なんかは、エクセルで入力する) よろしくお願い致します。

noname#95859
noname#95859

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 Wendy02です。 返事が遅くなりした。インターネット検索をされると思い込んでいましたので、そのまま放置してしまいました。 http://www.ken3.org/cgi-bin/group/vba_outlook.asp 三流君VBAでOutlookを操作する ここを参考にすると良いです。 簡単に説明すると、参照設定すれば、以下のようになり、 Dim myOL As Outlook.Application Set myOL = New Outlook.Application で、オートメーション・オブジェクトを作ります。 Dim myOL As Object Set myOL =CreateObject ("Outlook.Application") でも可能です。 それで、 MAPIを参照し、フォルダオブジェクトを作り、後は、ローカルウィンドウで必要な項目を探してみてください。 Set myNamespace = myOL.GetNamespace("MAPI") Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)

noname#95859
質問者

お礼

本当にありがとうございました。参考にしてやってみます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#2 のWendy02 です。 文章の訂正です。 × CreateObjectと参照設定で    ↓ ○ CreateObject または参照設定で

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 どのぐらいおわかりになるのでしょうか? 今、覚えている範疇だけで申し訳ないのですが、簡単に言うと、CreateObjectと参照設定で、Outlook.Application のオートメーション・オブジェクトを作ってやって、OutlookオブジェクトのNamespace でフォルダを取ってやります。(GetDefaultFolderを使います) 後は、配列に入れてあげてあげるか、一件ずつ吸い上げるかして、処理すれば出来るように思います。(ここは、私自身やってみないと分りません。) Excelから行うと、Outlookのセキュリティが働くので、途中で、アクセスを許可する時間を聞いてきますので、手動で処理します。(私は、この解除の仕方は知りません)

noname#95859
質問者

補足

案の定ですが、参照設定はわかりますが、CreateObject、オートメーション・オブジェクト、GetDefaultFolder、まだ、わかっていません。 大変,申し訳ないのですが、VBAのたたき台みたいなものを教えていただけますか? 後は、試行錯誤で、調べてやっていきたいと考えます。 よろしくお願い致します。

回答No.1

先日、VBAのサイトをいろいろ探しているうちに、下記のようなページを見つけました。参考にならないでしょうか? 「Outlookメールフォルダの本文を取得する」

参考URL:
http://homepage.mac.com/sunagoh/excel/ap000103.html
noname#95859
質問者

お礼

ありがとうございます。参考になります。トライしてみます。

関連するQ&A

  • vbaで特定の文字を加算して項目に数値を表示したい

    下のようなエクセルがあり、特定の文字ごとに加算してその横のセル数値を入れて表示するマクロを作りたいのですがうまくいきません。 xxxxの数や、その項目数は注文によって数が違うのでうまくいきません 解決策がわかる方いらっしゃいましたらご協力よろしくお願い致します。 ◆注文 xxxxx xxxx xxx xxxx ◆注文 xx xxx xxxx xxxx xx ◆注文 xxx xxxxx xx xxx  この表を  ◆注文 1  xxxxx 1  xxxx 1  xxx 1  xxxx  ◆注文 2  xx 2  xxx 2  xxxx 2  xxxx 2  xx ◆注文 3  xxx 3  xxxxx 3  xx 3  xxx という風にしたいです。どうかよろしくお願いします。

  • エクセルVBAでOutlookメール作成

    いろいろ検索や質問をしてエクセルVBAで、下記のコードによりOutlookのメールを自動作成できるようになりました。 Sub TEST01() Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 strMOJI = "こんにちは!" & vbNewLine & "テストメールです。" & vbNewLine & "よろしくおねがいします。" objMAIL.To = "XXXX@XXXXX.co.jp" '宛先 objMAIL.Subject = "テスト" '件名 objMAIL.Body = strMOJI '本文の代入 objMAIL.display '表示 End Sub それで、実際にはstrMOJI に代入した文字列の下に、このマクロを記述してあるBOOKのSheets("Sheet1").Range("A1:D10")をコピーし、 「リッチテキスト形式」で貼り付けたいのです。 どのようなコードに変えればよいのか教えていただけると助かります。 よろしくお願いいたします。

  • エクセルでの処理方法を教えてください

    例えば、 ○○店 XXXX-XX-XXXX △△屋 XXXX-XX-XXXX ・ ・ ・ となっているデータがあるとしてそれをエクセルで表にしたい時、どのようにしたらいいと思いますか? ○○店  XXXX-XX-XXXX △△屋  XXXX-XX-XXXX 縦に繋がっているデータを横にしたいのです。 XXXX-XX-XXXXは電話番号です。 それ以外に住所などもあります。 最終的にはすべて情報をを一つのシートにして検索などもしやすいようにしたいです。 VBAなしで作るにはどうしたらいいと思いますか? 良いアイディアがあったら教えてください。 バージョンは2000です。

  • ExcelのVBAからのOutlookメール発信

    ExcelのVBAを使ってOutlookからメールを発信させています。その時のメール本文に付けているハイパーリンクの設定について教えて頂けないでしょうか。 困っている具体的な内容は、メール本文にハイパーリンクをつける際に、文字数が多いとOutlook側で文字列が折り返えされてしまい、ハイパーリンクが機能しない、というものです。 実際のリンク先のアドレスではなく、例えば「関連データ」の様な決った文字列をExcelのVBAを使ってメール本文にハイパーリンクとして表示させる方法を教えて頂けないでしょうか。 (Outlook側の折り返し文字数の設定で文字数を増やす方法では、使用者毎に設定しなければならないと思うので上記方法を教えて頂けないでしょうか。) 宜しくお願いします。

  • 配信のエラーが出るけど、送信できる謎

    お疲れ様です。 Outlook2002を使用してますが、特定(全てではありません。無事に送信できる人もいます。)人宛てにメールを出すと下記の配信エラーメッセージが出ます。 なお、特に迷惑メール等の設定もしておりません。 ================================================= このメールは、受信者全員または一部に届きませんでした。 件名 : (省略) 送信日時 : 平成 14/05/25 XX:XX 以下の受信者にメールが配信できませんでした : 'XXXXX@XXXX.com' 平成 14/05/25 XX:XX 554 <XXXXXX@XXXX.com>: Relay access denied ================================================= ところが、送信先に問い合わせると、受信できているそうです。なぜなんでしょう? なお、メールの送受信時には、ノートンアンチビールスのチェックがかかるように設定してます。

  • [MS Outlook2007]代理送信メールを受信した際の仕分けルー

    [MS Outlook2007]代理送信メールを受信した際の仕分けルールについて質問です。 差出人が、  ml-owner@xxxxx.xx.jp が次の人の代理で送信しました: 猫 [neko@xxxxx.xx.jp] や  ml-owner@xxxxx.xx.jp が次の人の代理で送信しました: 犬 [inu@xxxxx.xx.jp]   のメールを、猫 [neko@xxxxx.xx.jp]、犬 [inu@xxxxx.xx.jp]から届いたメールとして、それぞれ猫フォルダと犬フォルダに自動仕分けされるようにルールを設定したいのですが、どのように設定すれば良いのか分かりません。 ルール『[差出人]が猫 [neko@xxxxx.xx.jp]の場合、猫フォルダへ移動する』の設定では、ルールが実行されず、『[差出人]がml-owner@xxxxx.xx.jpの場合、…』を設定すれば実行されますが、猫、犬フォルダへの仕分けは当然できません。 http://okwave.jp/qa/q4008969.html にて、過去に同様の質問がありましたが、最終的に解決していないようでしたので、新規で質問させて頂いています。過去の質問内容にはOutlook Expressでは問題なかったとの記載がありますが、Outlook2007では不可能なのでしょうか。 良い設定方法(多少、邪道でも)などあれば、ご回答をお願いします。 (不可能であれば、そのように教えて頂けると助かります)

  • Outlook送信エラー 0x80004005

    Microsoft Outlookの送信時クライアントエラー0x80004005-00000000-0x000501について、 原因と復方法を教えて下さい。 ・環境:Microsoft Outlook 2003 SP2/Exchange Server ・送信側と送信宛先のそれぞれのメールBOXの容量には十分空きはあります。 自分でも各種調べてみましたが、有力な情報が見つかりませんでした。 何卒、宜しくお願い致します。 以下、配信不能で返ってきた内容です。 このメールは、受信者全員または一部に届きませんでした。 件名: RE: xx 送信日時: YYYY/MM/DD xx:xx 以下の受信者にメールが配信できませんでした: xxxxx YYYY/MM/DD xx:xx このメッセージを送信できませんでした。あとでメッセージを送信し直すか、ネットワーク管理者に問い合わせてください。 クライアントの処理が失敗しました。 エラー: [0x80004005-00000000-0x000501].

  • 会社のメールをGmailに統一したい

    会社で使用しているメールアドレス(xxxx@xxxxx.co.jp)は、現在OUTLOOKで送信・受信し、管理しています。 これをGmailに変更したいと思います。 とりあえず、メールをGmailへ転送する設定にしました。 OUTLOOKは削除しても問題ないでしょうか? それともOUTLOOKも併用しないとダメでしょうか? 完全にGmailだけに移行する方法はないですか? ただし、メールアドレスは会社のもの(xxxx@xxxxx.co.jp)でないと具合が悪いです。

  • 宛先に名前を表示させたい

    管理者に送られるフォーム内容のメールの送信先や宛先に会社名や名前を表示させたいのですが、CGIでは $SENDTO = 'xxxxx@xxxx.co.jp,xxxx@xx.co.jp'; $SENDFROM = 'xxxx@xxxxx.co.jp'; となっています。 どのようにしたらよいのでしょうか? お手数をおかけしますが、教えてください。 どうぞよろしくお願いたします。

    • 締切済み
    • CGI
  • outlook→excelに処理を引き継ぎたい

    (1)"Outlookで特定のメールアドレスからメールを受信したとき"、 (2)"エクセルにメール内容を転記する"マクロを作りたいのですが・・・ (1)は仕訳ルールで実装できることがわかっているのですが、(2)をどうやっていいかわかりません。 案として、 (3)outlookからエクセルブックを起動し、エクセル側でブックが起動したときに自動実行するマクロを作っておく (4)エクセルを起動しておいて、メールを受信したらエクセルマクロを実行するようにoutlookから命令をする があると思うのですが、(4)は出来るかどうかわかりません。 もし(4)が出来るなら(4)を実装したいのですが、無理なら(3)でもOKです。 どうやって書けばいいか、ご存知の方いらっしゃいましたら教えてください。よろしくお願いします。

専門家に質問してみよう