<Outlookでファイルを添付するには?.Attachments.Add>
こんにちは、三流プログラマーKen3です。 今回は、 VBAでOutlookにファイルを添付するには? です。/* * 1.今回のキッカケ */
seltaeb@倉敷さん から >はじめまして >検索で「Outlookを操作してメールを送りたい」にたどり着き早速メルマガ登録し >ました > >現在1つのBOOKを業者別に複数のBOOKに分割するところまで作成しております >次のステップとして業者別のBOOKをMailに添付して自動で送ろうと考えています >メルマガを参考とさせていただき作成したいと思います > >あと、ファイル添付の方法が分からないのでご教示ください > >よろしくお願いします ---- ご教示かぁ、、、三流作者にはそんなこと言わなくていいのにね。 なんて書いてないで、調べますか。/* * 2.ヘルプの探し方 */
ヘルプで添付をキーワードに調べると。 .Attachments.Add ってのが見つかる。(ネットでoutlook 添付で探すと一発だけど) 嘘つくなよテメエ、ExcelVBAのヘルプにそんなの無いぞ。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 素人だと思ってバカにしやがって、いつもヘルプ見ろヘルプ見ろってうるせえ。 Excelのヘルプで添付が出てこないから聞いてんだろ。 まぁまぁ、そんなに興奮しないでよ、どこかの危険な掲示板じゃないんだから。 えっと、これ、Outlookを起動してから、Alt+F11押すと、 OutlookのVBA編集画面が出るんですよ。 ここで、F1(ヘルプ)押して添付とキーワード入力をすると、 Attachmentsオブジェクトを見つけることが出来ます。 ※outlook2000,20002からで、97は出ません(残念、、、)↑ヘルプの検索イメージ さてと、 Attachmentsオブジェクトのヘルプを見ると、 --- アイテムに添付ファイルを追加するには、Add メソッドを使用します。 一貫した結果を得るには、アイテムの Attachments コレクションのオブジェクトを 追加したり削除したりする前に、アイテムを必ず保存します。 次の VBA の例は、新しいメッセージを作成し、Q496.xls ファイルをリンクではなく 添付ファイルとして添付し、その添付ファイルにわかりやすいキャプションを付けます。 Set myOlApp = CreateObject("Outlook.Application") Set myItem = myOlApp.CreateItem(olMailItem) myItem.Save Set myAttachments = myItem.Attachments myAttachments.Add "C:\My Documents\Q496.xls", _ olByValue, 1, "1996 年の第 3 四半期報告" --- なんて載ってます。
/* * 3. 単体テスト */
ヘルプでオブジェクトがわかったので、 .Attachments.Add "ファイル名"でいいのかな。 単体のテストプログラムで確認してみる。
Sub testSEND送信()
Dim oApp As Object 'アプリケーションオブジェクト
Dim objMAIL As Object 'メールのオブジェクト
Dim strMOJI As String '本文
'アプリケーションオブジェクトの作成
Set oApp = CreateObject("Outlook.Application")
Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
strMOJI = "こんにちは" & vbCrLf _
& "プログラマーの愚痴、教えまっせ?" & vbCrLf _
& "三流君です。 www.ken3.org よろしく(笑)"
objMAIL.To = "test@ken3.org" '宛先
objMAIL.Subject = "未承諾広告※(笑)" '件名
objMAIL.Body = strMOJI '本文の代入
objMAIL.Attachments.Add "e:\work\test.txt"
objMAIL.Send '直接送信箱行き
End Sub |
↑警告画面のイメージ
はい を押すと、無事に送信箱に添付ファイル付のメールが保存されました。
まぁ、
.Attachments.Add "ファイル名"
で、添付はできたかぁ。。。
う〜ん、まぁ、ウイルス問題もあるし、こんな感じなのかなぁ。
警告メッセージみて、ウイルスだとか騒がれるのもイヤなので、
.Send を .Display に変えて、確認してもらってから、
ユーザーに送信ボタンを押してもらう(送信ボタンを押しても、送信トレイに行くだけ)
そんな操作に変えてもらうか、、、
※それだと、連続自動実行ができないじゃん、、、
Sub testSEND送信()
Dim oApp As Object 'アプリケーションオブジェクト
Dim objMAIL As Object 'メールのオブジェクト
Dim strMOJI As String '本文
'アプリケーションオブジェクトの作成
Set oApp = CreateObject("Outlook.Application")
Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
strMOJI = "こんにちは" & vbCrLf _
& "プログラマーの愚痴、教えまっせ?" & vbCrLf _
& "三流君です。 www.ken3.org よろしく(笑)"
objMAIL.To = "test@ken3.org" '宛先
objMAIL.Subject = "未承諾広告※(笑)" '件名
objMAIL.Body = strMOJI '本文の代入
objMAIL.Attachments.Add "e:\work\test.txt"
objMAIL.Display '編集メッセージの表示 .Sendから変更
'おまけでOutlook表示
Dim myNameSpace As Object
Dim myFolder As Object
Set myNameSpace = oApp.GetNameSpace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定
myFolder.Display '表示
End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
|
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]