• 締切済み

vbaでoutlookのメール本文取得時の問題

vbaでoutlookのメール本文取得時の問題役に立った:0件 質問者:sstta 投稿日時:2011/05/07 11:51 困り度: メールの仕分けルールで、条件に該当したメールに対して以下を 実行するように設定しています。 Sub CustomMailMessageRule(Item As Outlook.MailItem) msgbox(Item.body) End Sub 一応、メール本文が表示されはするのですが、何故か空白行だけ「?」マークが 入ってしまいます。対象メールがhtml形式でもテキスト形式でも同じです。 上記はmsgboxですが、テキストファイルに出力しても変わりません。 どうしたら?が入らないようになりますでしょうか?

みんなの回答

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.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)

sstta
質問者

お礼

記載頂いたコードで試したところ、????にはA000が入っていました。 ただ、Replaceが上手くいかなくて、困っていますが、ここまで分かれば後は自分で何とかなりそうです。 有難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Outlook2007のVBAで

    Outlook2007のVBAで Outlook2007のVBAで件名か本文にAかBの文字列を含んでいるときにアラートを表示させるというマクロを作りたいのですがどのようにすればいいのかわかりません。 あと本文はItem.bodyで件名はItem.Subjectを使ってますがこれでよろしいのですか?

  • outlook2003 本文の一部に色を付けたい。

    vbaでメールを作成するマクロは組めたのですが 一部の文字に色をつける方法がわかりません。 Sub test() Dim acoutlook As Outlook.Application Dim acmail As MailItem Set acoutlook = GetObject(, "outlook.Application") Set acmail = acoutlook.CreateItem(olMailItem) With acmail .To = "aaaa@com" .Subject = "件名" .Body = "赤です。よろしくお願いします。" .Display End With End Sub 上のコードの「赤」という部分を赤色にするにはどうすればいいでしょうか。 ちなみにこれはアクセスから起動しています。 よろしくお願いします。

  • 本文が空白のメールを自動的に削除したいのですが

    はじめまして スパムメールで悩まされています。 本文や件名が空白のメールがよく来るのですが(画像だけでテキストがないものも含めて) Outlook Expressのメッセージルールで、これらをポイしたいのですがルールをどう作ればよいか教えて下さい。

  • エクセルVBAでOutlookメール作成

    いろいろ検索や質問をしてエクセルVBAで、下記のコードによりOutlookのメールを自動作成できるようになりました。 Sub TEST01() Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 strMOJI = "こんにちは!" & vbNewLine & "テストメールです。" & vbNewLine & "よろしくおねがいします。" objMAIL.To = "XXXX@XXXXX.co.jp" '宛先 objMAIL.Subject = "テスト" '件名 objMAIL.Body = strMOJI '本文の代入 objMAIL.display '表示 End Sub それで、実際にはstrMOJI に代入した文字列の下に、このマクロを記述してあるBOOKのSheets("Sheet1").Range("A1:D10")をコピーし、 「リッチテキスト形式」で貼り付けたいのです。 どのようなコードに変えればよいのか教えていただけると助かります。 よろしくお願いいたします。

  • エクセルでOutlookのメールを作成

    エクセルでOutlookのメールを作成しようとしています。 一応、以下のコードでできるようです。 質問は、メール本文中の ABC という文字だけを赤い太字にする方法です。教えてください。 Sub test01() Dim mi As Object ' MailItem Dim wdDoc As Object ' Word.Document Dim olApp As Object ' Outlook.Application Set olApp = CreateObject("Outlook.Application") Set mi = olApp.CreateItem(0) mi.To = "test@abc.co.jp" ' 送り先 mi.BodyFormat = 2 ' メールを HTML 形式にする mi.Display ' メールを表示する Set wdDoc = olApp.ActiveInspector.WordEditor ' メールの Word エディタを取得する wdDoc.Windows(1).Document.Range.Text = "本文本文本文本文本文1" _ & vbCrLf & "本文本文本文本文本文2" _ & vbCrLf & "本文ABC本文本文3" With wdDoc.Windows(1).Document.Range.Font .Name = "Meiryo UI" ' メール本文のフォントを "Meiryo UI" .Size = 11 ' フォントサイズを 11 に設定する End With End Sub

  • Outlook 2003 で本文が真っ白

    頻繁ではないのですが、メールを送信後、「受信者から本文が真っ白ですよ。」 と連絡をもらうことがここ半年で3回ほどありました。 受信者は特定の人物ではなく、3名とも別の人です。 ccで社内の人間にも送っておりますが、その受信メールも本文が真っ白。 自分の送信済みアイテムフォルダを見ても同様に本文が真っ白。 送信アドレス、件名はそのまま表示されております。 どうしたものでしょうか?ご教示くださいませ。 メッセージ形式はHTML形式で作成したものです。 本文に他からコピーしたテキストを貼り付け、署名を挿入しております。 使用メーラ:Outlook 2003 SP3 OS: Windows XP Proffessional

  • エクセルVBAでのメール作成について

    お世話になります。エクセルVBAでのメール作成で、メール本文のファイルサーバのリンク貼り付けがうまくいきません。本文のフォント色を変更し、かつリンク貼り付けを行うためhtml形式に本文を変換すると、うまくいかなくなります。 対処方法をご教示頂きたく、どうぞ宜しくお願い致します。 Sub mail_try() 'Outlookオブジェクト生成 Dim OL As Outlook.Application Dim MI As Outlook.MailItem Set OL = CreateObject("Outlook.Application") Set MI = OL.CreateItem(olMailItem) 'メール各設定 MI.SentOnBehalfOfName = "" '差出人 MI.To = "" 'TO MI.Cc = "" 'CC MI.Bcc = "" MI.Subject = "【リンク先送信】" '件名 Dim buf As String buf = ThisWorkbook.Path '本文 MI.Body = "<font color = ""#ff0000"">" & "リンク先を送信致します。" & "</font>" _ & "<br>" & "<br>" & _ "<br>" & buf & "\" & "<br>" _ & "<br>" & "<br>" & "以上、宜しくお願い致します。" 'メール表示 MI.display MI.HTMLBody = MI.Body 'オブジェクト解放 Set OL = Nothing Set MI = Nothing End Sub

  • アクセスからアウトルックでメールを送りたい

    アクセスからアウトルックでメールを送るために調べたのですが 新しいメッセージを作ってメールを送信するところまではできたのですが 送信ボタンを押下しても、どうやらアウトルックが開いてないと送信できないことがわかりました。 アウトルックは常に立ち上げていません。 なので下記のコードに、アウトルックを立ち上げるコードを入れたのですが わからないので教えていただけますか? Sub メール送信() Dim OlApp As Outlook.Application Dim mItem As Outlook.MailItem Set OlApp = New Outlook.Application Set mItem = OlApp.CreateItem(olMailItem) With mItem .To = "○○@docomo.ne.jp" .Body = "test" .display End With End Sub アウトルックのバージョンは2007です。ご教授よろしくお願いします。

  • Outlookの文面を赤にする方法-エクセルVBA

    下記のようなコードでエクセルVBAでOutlookメールを作成する際、「期限:10月30日」の部分だけを赤にする方法を教えてください。 HTMLBodyというのを使うようなのですが、下記のコードの基本を変えず、対応する方法を教えてください。 Sub メール() 'Outlookの定義 Set myOutLook = CreateObject("outlook.application") Set Omail = myOutLook.CreateItem(olMailItem) 'メール作成 Omail.BodyFormat = 2 'メール形式 1=テキスト 2=HTML 3=リッチテキスト Omail.Subject = "意見記入のお願い" 'subject Omail.Body = Omail.Body & "いつもお世話になっております。" & vbCrLf Omail.Body = Omail.Body & "下記の申請が提出されました。" & vbCrLf Omail.Body = Omail.Body & "期限:10月30日" Omail.Display End Sub

  • ExcelVBAからメール本文を取得できません

    ExcelのVBAからOutlookのメール本文を取得できません。 エクセル上のデータを自動でOutlookのメール本文にとばすプログラムを作成しています。 Outlookを開き、宛先、件名までは転記できるのですが、本文転記の時にエラーがでます。 <本文転記のプログラム> If Range("A1") = 1 Then .body = Range("B1") ElseIf Range("A1") = 2 Then .body = Range("B1") & vbCrLf & Range("B2") ElseIf Range("A1") = 3 Then .body = Range("B1") & vbCrLf & Range("B2") & vbCrLf & Range("B3") Else .body = Range("B1") & vbCrLf & Range("B2") & vbCrLf & Range("B3") & vbCrLf & Range("B4") End if <エラー内容> (1)A1=1以外はエラーが出ない (2)A1=1の時にエラーが出るPCと、エラーが出ず正常に動くPCがある。 ※何れのPCもWindows10 <質問内容> エラーがでるPCと出ないPCがあるのはなぜでしょうか。 エラーが出ないようにするにはどうしたらよいでしょうか。 ご教示よろしくお願い致します。

専門家に質問してみよう