- 締切済み
VBAについての質問
自分は今Excel VBAの学習をしています。 分からない点がありましたので 誰か力になって貰えると嬉しいです。 VBAでoutlook起動させて 受信メールのテンプファイルをC:¥直下に保存するやりかたを 知ってる方がいましたら教えて下さい。 一週間位悩んでますが先に進めないので・・・
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
この様な、場合エクセルのVBAではなく OutlookにVBAで設定を組み込んだ方が理想に近いと思います。 考え方として、Outlookを起動しておいて 1、新規にメールが受信された場合に実行 2、添付ファイルがあって、ファイル名(或いはタイトル名)が ** の場合に 添付ファイルを C:へ保存する といったVBAを記述しておきます。 勝手に。メール受信のたびに指定したフォルダへ希望する添付ファイルが保存されます。 MsgBoxで、ファイルが保存された時にメッセージを出すことも出来るでしょう。 以下、参考にしてください。 http://outlooklab.spaces.live.com/blog/cns!9D7EA61EC7DAA750!175.entry
- end-u
- ベストアンサー率79% (496/625)
例えば 『excelvba outlook 添付ファイル 保存』 こんなキーワードでgoogle検索すると参考になるサイトがhitします。 >自分は今Excel VBAの学習をしています。 ...という事であれば、サンプルコードでもいいのでまず自分でやってみて、 解らない点を絞って質問したほうが早く身につくでしょう。 定番サイトとしては http://www.ken3.org/cgi-bin/group/vba_outlook.asp こちらなどがよく紹介されます。 参考にちょっと書いてみると、 Sub test() Const olFolderInbox = 6 Dim mail As Object Dim x As Object With CreateObject("outlook.application") With .GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) '.Display '確認の為outlookを表示したい時 For Each mail In .Items For Each x In mail.Attachments x.SaveAsFile ("c:\" & x.DisplayName) Next Next End With 'outlook終了 .Quit End With End Sub こんな感じでしょうか。 上記CreateObject("outlook.application")...というのはコード実行時にオブジェクトを参照する書き方です。 最初は、VBEメニュー[ツール]-[参照設定]で Microsoft Outlook x.0 Object Library を事前に参照設定する書き方のほうが Objectについて理解する近道だと思います。コーディングも楽になります。 #以下、ご存知かと思いますが念のため。 ExcelVBAの学習に最も効果的なものは3点。 1)マクロの自動記録 [新しいマクロの記録]という自動記録機能がありますから、これを活用するのが手っ取り早いです。(今回のケースでは無理) 2)ステップ実行 VBEコード内[F8]キーでステップ実行できます。デバッグとコード理解の基本です。 3)ヘルプの活用 VBEのヘルプは状況依存型です。 調べたい語句にマウスキャレット(Iビームみたいなやつ)をあてて[F1]キーを押すと目的のトピックにクイックアクセスできます。(できない語句もある)
お礼
outlookを起動させて開く事も出来ました。 Outlookでのメールを受信し、 Cドライブに保存するプログラムも作成出来ました☆ アリガトウございました。