メール本文の書式を変更せずに文字列を追加する方法


添付ファイルをつけて全員に返信するマクロのコメントにて以下のご要望をいただきました。


お世話になっております。
添付ファイルをつけて全員に返信するマクロを活用させていただきました。
大変ありがとうございます。
そこで、本文にコメントを入れるために、下記のような文を書き実行したところ、元々のメールの書式ではなく、MS UI Gothicに変換されてしまいます。
何を追加すると元の書式のまま文章を追加できるか、よろしければご教授ください。
With objForward
.Subject = “【○○依頼】” & objForward
.Body = “よろしくお願い致します”
End With


Body プロパティに文字列を追加すると、自動的にテキスト形式となってしまい、元々のメールの書式は維持されません。
かといって、HTMLBody プロパティに文字列を挿入する際には、HTML タグを考慮して適切なところに追加する必要があるため、複雑な処理となります。
そこで、元々のメールの書式を維持して文字列を追加するには、メール作成を行う Word のコンポーネントを呼び出し、Selection オブジェクトの TypeText メソッドを使用します。

まず、Word のコンポーネントを呼び出すには、Inspector オブジェクトの WordEditor プロパティを使用します。
たとえば、objItem に格納されているアイテムを編集する Word コンポーネントを objDoc に取得する方法は以下のようになります。

Set objItem = ActiveInspector.CurrentItem
Dim objDoc
Set objDoc = objItem.GetInspector().WordEditor

そして、本文の現在のカーソル位置に文字列を追加する場合は、以下のようにします。

With objDoc.Application
    .Selection.TypeText "カーソル位置に追加"
End With

カーソル位置にかかわらず、常に本文の先頭に追加したい場合は、以下のようにします。

With objDoc.Application
    .Selection.HomeKey Unit:=6  ' wdStory
    .Selection.TypeText "先頭に追加"
End With

また、本文の末尾に追加するなら以下の通りです。

With objDoc.Application
    .Selection.EndKey Unit:=6  ' wdStory
    .Selection.TypeText "末尾に追加"
End With

他にも、検索した文字列の前後や、先頭から何行目、というような指定方法も、Word のマクロと同様の方法で記述できるでしょう。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中