電子書籍の厳選無料作品が豊富!

お世話になります。
ExcelVBAでOutlookのメールを作成する際に文字(特殊文字?)が消えてしまうことを解消したいです。
処理手順は以下の通りです。

stringmessage = "テスト前" & "�" & "テスト後"

Set ol = CreateObject("Outlook.Application")
Set m = ol.CreateItemFromTemplate("テンプレートファイル.oft")
'テンプレートファイルはTEXT形式

m.Body = Replace(m.Body, "置き換え文字列", stringmessage)
m.Display
※実際の処理では、stringmessageへはExcelのセルに入力されている文字列を
 取得して設定しています。


作成されたメールを確認すると、本文の記載が
"テスト前テスト後"
となり、�が消えています。

なお、m.Displayの直前でstringmessageをExcelのフォームに出力してみると
"テスト前�テスト後"
と表示されます。

別のツールで出力した元の文字列(�)が文字化けしていると考えられるのですが、
それも含めて「出力された文字列と全く同じ文字列をメール本文に貼り付けて送付する」という仕様があるため、上記を解消したく。

よろしくお願いします。

質問者からの補足コメント

  • Excel、Outlookは2010です。

      補足日時:2017/06/26 13:34

A 回答 (1件)

>※実際の処理では、stringmessageへはExcelのセルに入力されている文字列を


 取得して設定しています。

? Sheet4.Range("A1")
で試してみるとこの時点で?に置き換わっていますが
そちらでは如何でしょうか?
    • good
    • 0
この回答へのお礼

HTMLメールを作成→テキストメールにフォーマット変更で対応できました。

m.HTMLBody = Replace(m.Body, "置き換え文字列", stringmessage)
m.BodyFormat = 1
m.Display

意図しない改行が入ったりするのですが、ひとまず、上記文字は表現できたので妥協します。

ありがとうございました。

お礼日時:2017/07/03 11:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!