私は、受信ボックスに入ってくるすべてのメールをAccessデータベースに記録するためにOutlook VBAにスクリプトを書いています。私は問題なしでトリガしているコードです。 Accessデータベースに問題なくアクセスします。それは問題なしで主題全体をコピーします。それは体に届き、何もコピーしません。私は.Bodyの代わりに.HTMLbodyのようなものを試しましたが、これは再び空のボディを示しています。私のコードは次の通りです:VBA Outlook 2010受信メール.Body is empty
Option Explicit
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim objNS As Outlook.NameSpace
Dim objEmail As Outlook.MailItem
Dim strIDs() As String
Dim intX As Integer
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim sDb As String
Dim sSQL As String
Dim qdf As QueryDef
strIDs = Split(EntryIDCollection, ",")
For intX = 0 To UBound(strIDs)
Set objNS = Application.GetNamespace("MAPI")
Set objEmail = objNS.GetItemFromID(strIDs(intX))
sDb = "C:\Users\######\Documents\EmailDatabase.accdb"
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(sDb)
sSQL = "INSERT INTO AllEmails (Subject,Message) Values ('" & objEmail.Subject & "','" & objEmail.HTMLBody & "')"
Set qdf = db.CreateQueryDef("", sSQL)
qdf.Execute dbFailOnErro
MsgBox objEmail.HTMLBody
Next
Set objEmail = Nothing
End Sub
私が間違っていることを知っている人は、私に知らせてください。 3時間のグーグル・グーグルはそれをソートしていないようです!
メッセージボックスにも何も表示されませんか? – Jordan
はい@ジョーダンメッセージボックスが開きます(何も障害はスローされません)。 – codeacker
あなたのコード(F8)を踏んで、それが割り当てられたらあなたのローカルウィンドウで 'objEmail'を見ます。変数を展開するときに 'body'プロパティがあるかどうかを確認してください。 'GetItemFromID'が実際に' MailItem'を返すかどうかわかります –