0
以下は私が使用しているコードです。Item.Bodyは ""を返します。誰もがアイデアを持っていますか?
Sub HowManyEmails()
Dim objOutlook As Object, objnSpace As Object, objFolder As MAPIFolder
Dim EmailCount As Integer
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
On Error Resume Next
Set objFolder = objnSpace.Folders("Inbox")
If Err.Number <> 0 Then
Err.Clear
MsgBox "No such folder."
Exit Sub
End If
EmailCount = objFolder.Items.Count
MsgBox "Number of emails in the folder: " & EmailCount, , "email count"
Dim dateStr As String
Dim myItems As Outlook.Items
Dim myItem As Outlook.MailItem
Dim dict As Object
Dim msg As String
Dim CurrDate
Set CurrDate = Now
Dim opnTkt
Dim clsTkt As Integer
Dim omntrRprt As Integer
Dim webCht As Integer
Set dict = CreateObject("Scripting.Dictionary")
Set myItems = objFolder.Items
myItems.SetColumns ("SentOn")
'Determine date of each message:
For Each myItem In myItems
dateStr = GetDate(myItem.SentOn)
If Month(dateStr) <> Month(Now) Then
Defaults = Defaults + 1
'here myItem.Body return ""
ElseIf InStr(myItem.Body, "Process started") > 0 Then
omntrRprt = omntrRprt + 1
Else
def = def + 1
End If
Next myItem
'Output counts per day:
msg = ""
msgs = "omniture: " & vbCrLf & omntrRprt & "Web Chat:" & webCht & vbCrLf
MsgBox msgs
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing
End Sub
Function GetDate(dt As Date) As String
GetDate = Year(dt) & "-" & Month(dt) & "-" & Day(dt)
End Function
私の考え:あなたは単に空のボディを持つメッセージを見つけました。ちょうど他のアイテムを繰り返し続けます。 – miroxlav
電子メールには、Html本文、テキスト本文、またはその両方を含めることができます。 miroxlavが言っているように、おそらくこのメールにはボディはありません。あなたがユーザーインターフェースを介して電子メールを見るとどうなるでしょうか?もう1つの可能性は、電子メールにはHTML本文がありますが、テキスト本文はありません。電子メールに本文が両方ある場合、Outlookと他の電子メールパッケージ(?)はHtml本文を表示し、テキストを無視します。 Html本文がある場合、Html書式を削除することによってテキスト本文が作成されているように見えます。テキストが不明ではない絵にすべて含まれている場合は、書式設定なしで何も残っていない可能性があります。 –