[三流君] −−> [VBAで楽しく] −−> [VBA Outlook 操作]
−−> No.055 Outlookを操作してメールを送りたい

Outlookを操作してメールを送りたい

    'アプリケーションオブジェクトの作成
    Set oApp = CreateObject("Outlook.Application")

    Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
    
    strMOJI = "こんにちは" & vbCrLf _
            & "プログラマーの愚痴、教えまっせ?" & vbCrLf _
            & "http://www.ken3.org/ よろしく(笑)"
    
    objMAIL.To = "test@ken3.org"           '宛先
    objMAIL.Subject = "件名"  '件名
    objMAIL.Body = strMOJI                 '本文の代入
    objMAIL.Send    '直接送信箱行き ※警告メッセージ出ます。
こんな感じで、単純なテストをしてみました。。。

動作イメージの動画を貼りました。↓ヒマなら見て笑ってください。。。
[テスト VBA Outlook メールの作成をテストした]
※↑画質が悪く、ボケてるけど・・・

メルマガ発行内容

<Outlookを操作してメールを送りたい>

こんにちは、三流プログラマーKen3です。 なんか、間があいてしまいました。 1ヶ月間、何にもしていないのに、読者が増えているのはビックリ。 そして、今日の発行でまた減って行く、、、 なんていつもの暗い前置きは置いといて、 今回は、 Outlookを操作してメールを送りたい を軽く書きたいと思います。 へぇ〜、そうなんだぁ程度に、気楽に読んでください。 /* * 1.今回のキッカケ */ In message "outlookを開いてメールを送ることはできますか?", onikoさん wrote... > IEを開いてHPを見るというのがありましたが、 >OUTLOOKを開いてメールを送るにはどうしたら >よろしいでしょうか? > > 宛先はエクセルのどこかのセルに入れておいても >構いません。 > > マガジンで紹介してください。 >急ぎませんのでよろしくお願いいたします。 ---- 急がないって言われると、変わり者だから急ぎたくなるんだよなぁ、、、 といってたけど、メールを貰ってから1ヶ月がたってたりして(笑) 1999/11/23 Excel VBA からOutLookデータを読む ( http://www.ken3.org/backno/backno_guchi05.html#22 を参照) でだいぶ前に、Excel97とOutLook97で少し遊んでました。 それを思い出しつつ、、、 /* * 2.アプリケーション名はOutlook.Application */ 下記、オブジェクト作成のテストです。 Sub test_Outlook() Dim oApp As Object Dim myNameSpace As Object Dim myFolder As Object Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNameSpace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 End Sub ポイントは、 Set oApp = CreateObject("Outlook.Application") で、Outlookのアプリケーションを操作するためのオブジェクトを作成してます。 Set oApp = CreateObject("Excel.Application") とよくExcelでやってるので、イメージはOKかなぁ。 私が少しハマッタのは、よく oApp.Visible = True とやっているので、これでOutlookが表示されるかと思ったらエラーが出てしまい、 あれ?って感じでした。 ヘルプを見てみると、 Set myNameSpace = oApp.GetNameSpace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 で規定のフォルダー表示とあったので、流用しました。 フォルダー関係の操作は今後の課題かなぁ。 まぁ、なんとか起動は出来たと思います。 /* * 3.送信メールの作成をテストする */ やりたいことは、メールの作成なので、 Sub test送信メール作成() 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 _ & "http://www.ken3.org/ よろしく(笑)" objMAIL.To = "test@ken3.org" '宛先 objMAIL.Subject = "未承諾広告※(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 objMAIL.Display '途中で編集したい時(メール表示してみた) 'おまけでOutlook表示 Dim myNameSpace As Object Dim myFolder As Object Set myNameSpace = oApp.GetNameSpace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 End Sub まず、アプリケーションオブジェクトの作成 Set oApp = CreateObject("Outlook.Application") 次に、メールアイテムを作成します。 Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 本文を一時的に変数に保管して(直接でもいいですよ) strMOJI = "こんにちは" & vbCrLf _ & "プログラマーの愚痴、教えまっせ?" & vbCrLf _ & "http://www.ken3.org/ よろしく(笑)" こんな感じで、vbCrLfの改行を使って、作成してます。 データをメールアイテムにセットする objMAIL.To = "test@ken3.org" '宛先 objMAIL.Subject = "未承諾広告※(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 見たまま?で、 .To 宛先 .Subject 件名 .Body 本文 をセットしてます。 objMAIL.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 _ & "http://www.ken3.org/ よろしく(笑)" objMAIL.To = "test@ken3.org" '宛先 objMAIL.Subject = "未承諾広告※(笑)" '件名 objMAIL.Body = strMOJI '本文の代入 objMAIL.Send '直接送信箱行き 'おまけでOutlook表示 Dim myNameSpace As Object Dim myFolder As Object Set myNameSpace = oApp.GetNameSpace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 End Sub ポイントは、 objMAIL.Send '直接送信箱行き の.Sendプロパティです。 これで送信箱に行きます。 えっ、送受信をしないと、実際に送信されないって? いきなり送りたいのかなぁ。。。 次回のネタに取って、今回はこれくらいで。 逃げるなって? バレた(笑) /* * 4.おわりの挨拶 */ 今回は、OutLookアプリの操作で、 ・アプリケーションの参照用のオブジェクト変数の作成 ・メールの新規作成 ・メールを送信箱に作成 でした。 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。 ---------------------------------- 関連項目(ただのバックナンバー紹介) ---------------------------------- 1999/11/23 Excel VBA からOutLookデータを読む ( http://www.ken3.org/backno/backno_guchi05.html#22 を参照) で、 Excel97とOutLook97で少し遊んでました。 時間があったら、あわせてみて下さい。


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

種類別のリンク や 広告など

気になったジャンル↓を選択してください。

人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [VBAやASPのサンプルコード]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]