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

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で少し遊んでました。 時間があったら、あわせてみて下さい。

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.057を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

ページフッター(リンクや広告など)


[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・