dポイントプレゼントキャンペーン実施中!

vbaでoutlookのメール本文取得時の問題役に立った:0件
質問者:sstta 投稿日時:2011/05/07 11:51 困り度:
メールの仕分けルールで、条件に該当したメールに対して以下を
実行するように設定しています。


Sub CustomMailMessageRule(Item As Outlook.MailItem)

msgbox(Item.body)

End Sub


一応、メール本文が表示されはするのですが、何故か空白行だけ「?」マークが
入ってしまいます。対象メールがhtml形式でもテキスト形式でも同じです。

上記はmsgboxですが、テキストファイルに出力しても変わりません。

どうしたら?が入らないようになりますでしょうか?

A 回答 (1件)

似た経験をしたような気が…?むずがゆい(--;



根本解決にはなりませんが、よかったらお試しください。

' テスト@文字コードの確認
 s = Item.body
 For i = 1 To LenB(s) Step 2
  c = c & Right("0" & Hex(AscB(MidB(s, i, 1))), 2)
  c = c & Right("0" & Hex(AscB(MidB(s, i + 1, 1))), 2) & " "
 Next
 MsgBox c

VBAはUnicode、改行はCR=0D00 & LF=0A00
改行の間に"?"の正体を確認できるかも知れません。
「... 0D00 0A00 ???? 0D00 0A00 ...」
 ' 仮対処案1@強引に削除
 msgbox Replace(Item.body,Chr("&H" & "????"), "")

改行の間に何も無いなら、CRLFがイケナイ?
 ' 仮対処案2@CRLFをOSの改行コードに
 msgbox Replace(Item.body,vbCrLf, vbNewLine)
    • good
    • 1
この回答へのお礼

記載頂いたコードで試したところ、????にはA000が入っていました。

ただ、Replaceが上手くいかなくて、困っていますが、ここまで分かれば後は自分で何とかなりそうです。

有難う御座いました。

お礼日時:2011/05/22 17:30

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