[三流君] −−> [VBAで楽しく] −−> [VBA Outlook 操作]
−−> No.057 Outlook メールアイテムの形式でハマる

Outlook メールアイテムの形式でハマる

-- 下記、親切な読者より いただいたメッセージです。 --
>ページ更新日が2008/3になってましたがページ自体はきっと2003に書かれているんですよね。
>なのでもうとっくに本題は解決しているのかと思うんですがせっかくですから載せてください。
>その情報知りたくてここに来た感じなので後から来る他の人のためにも(^^;
>
>一応自分なりの結論は
>
>myMAIL.BodyFormat = 1 'olFormatPlain
>
>もしくはOutlookの既定値を変えるために
>
>ツール→オプション→メール形式
>の「このメッセージ形式で作成する」を「テキスト形式」
>に変更しておく
>
>でした。
-- ここまて、メッセージってありがたいですね。。。 ---

メルマガ発行内容

<Outlook メールアイテムの形式でハマる>

こんにちは、 三流プログラマーKen3です。 今回は、 Outlookのメール形式について、 軽く書きたいと思います。 *解決してないんだけど(笑) /* * 1.今回のキッカケ */ http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi?mode=allread&no=61&page=0 >投稿時間:2003/03/13(Thu) 17:59 >投稿者名:Yonekura >タイトル:メールを送信するときのメール形式について > >三流君 VBAで楽しくプログラミング で紹介していただいたNo.55 >,No56について質問です。メールを新規作成で表示させると >メール形式がリッチテキストになってしまうのですが、これを自動 >でテキスト形式にすることってできるのでしょうか? >Windows2000でOutlook2000を使ってます。 あれ、よく見ると私の環境もテキスト形式じゃなく、 リッチテキストになってますね。 どうしてだろう? /* * 2.EditorType プロパティ */ EditorType プロパティ アイテムに対する OlEditorType クラスの定数を取得します。 OlEditorType クラスの定数は、 olEditorHTML(2)、olEditorRTF(3)、olEditorText(1)、 および olEditorWord(4) のいずれかです。 メモ MsgBox myItem.Body のように、 アイテムの Body プロパティに単にアクセスするだけでは、 EditorType プロパティは変更されません。 しかし、myItem.Body = "This is a new body" のように、 Body プロパティを設定し直すと EditorType プロパティはユーザーの既定のエディタに戻ります。 値の取得のみ可能です。 おっ、これかなぁ?エディタ関係は、 あれ、 >値の取得のみ可能です えっ、指定できないんだぁ。。。 /* * 3.送信トレイからアイテムを作成してみた */ >Outlook を使って返信する場合、既定では、受信したメッセージと同じ形式の >返信メッセージが使用されます。たとえば、テキスト形式のメッセージに対す >る返信は、テキスト形式で送信されます。返信メッセージの形式は変更するこ >とができます。メッセージの本文にカーソルを置いて [書式] メニューをクリ >ックし、目的のメッセージ形式をクリックします。 現在、 'アプリケーションオブジェクトの作成 Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 と .CreateItem(0)でolMailItemを作成してました。 それじゃ、これを送信トレイからアイテム作成に変えて、 下記のようにしてみました。
Sub xxx()

    Dim myOlApp  As Object  'Outlook参照用
    Dim olMAPI   As Object  'ネームスペース
    Dim myFolder As Object  'フォルダーの頭
    Dim myMAIL   As Object  'メールアイテム
    Dim nFCNT    As Integer 'フォルダーのカウント用
    Dim strMOJI  As String  '本文

    'アプリケーション変数の作成
    Set myOlApp = CreateObject("Outlook.Application")
    Set olMAPI = myOlApp.GetNameSpace("MAPI")

    '送信トレイを探す
    For nFCNT = 1 To olMAPI.Folders(1).Folders.Count
        Debug.Print olMAPI.Folders(1).Folders(nFCNT).Name
        'フォルダー名が一致したら抜ける
        If olMAPI.Folders(1).Folders(nFCNT).Name = "送信トレイ" Then
            Set myFolder = olMAPI.Folders(1).Folders(nFCNT)
        End If
    Next nFCNT    'Debug.Print olMAPI.GetDefaultFolder(2).Name
    
    'MsgBox myFolder.Name
    
    strMOJI = "こんにちは" & vbCrLf _
            & "プログラマーの愚痴、教えまっせ?" & vbCrLf _
            & "http://www.ken3.org/ よろしく(笑)"
    
    Set myMAIL = myFolder.Items.Add  '送信トレイのアイテムを追加

    myMAIL.to = "test@ken3.org"           '宛先
    myMAIL.Subject = "未承諾広告※(笑)"  '件名

    myMAIL.display  '編集画面の表示
    'myMAIL.Save  '下書きに保存
    
    myMAIL.body = strMOJI                 '本文の代入
    'myMAIL.Send    '直接送信箱行き

End Sub
送信トレイのフォルダーを一覧から探して、 .Items.Add で、アイテムの追加後プロパティをセット。 あれ、これでもリッチテキストのままだ。。。 myMAIL.Save '下書きに保存 といったん保存してもダメだし、、、 間違って 'myMAIL.body = strMOJI '本文の代入 と.Bodyをコメントにしたら、 本文白紙でテキスト形式でメールが作成された。 う〜ん、.Body = "XXX"とセットした瞬間にリッチテキスト形式に変わってしまう。 .HtmlBodyはHTML形式になるだけだし。 /* * 4.おわりの挨拶 */ 今回は、回答編じゃなくて、いろいろとやった試行錯誤でした。 試行錯誤で、 ・フォルダー(トレイ)の探し方 ・.Saveで下書きへ ・.HtmlBodyでHTML形式のメールを作成できる なんてわかったけど、本題ができてない。。。 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。 ---------------------------------- 関連項目(ただのバックナンバー紹介) ---------------------------------- 2003/03/10 Outlookから複数のアドレスにBCC送信 ( http://www.ken3.org/backno/backno_vba12.html#56 を参照) で、 ;で区切って複数の宛先(BCC送信)を作成しました。 2003/03/05 Outlookを操作してメールを送りたい ( http://www.ken3.org/backno/backno_vba12.html#55 を参照) で、 Outlookの起動と送信メールの作成を行いました。 1999/11/23 Excel VBA からOutLookデータを読む ( http://www.ken3.org/backno/backno_guchi05.html#22 を参照) で、 Excel97とOutLook97で少し遊んでました。 時間があったら、あわせてみて下さい。

フィードバック

-- 下記、親切な読者より いただいたメッセージです。 --
>ページ更新日が2008/3になってましたがページ自体はきっと2003に書かれているんですよね。
>なのでもうとっくに本題は解決しているのかと思うんですがせっかくですから載せてください。
>その情報知りたくてここに来た感じなので後から来る他の人のためにも(^^;
>
>一応自分なりの結論は
>
>myMAIL.BodyFormat = 1 'olFormatPlain
>
>もしくはOutlookの既定値を変えるために
>
>ツール→オプション→メール形式
>の「このメッセージ形式で作成する」を「テキスト形式」
>に変更しておく
>
>でした。
-- ここまて、メッセージってありがたいですね。。。 ---


ページフッター

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

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

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

人気記事(来場者が多い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系バックナンバー目次へ移動]