こんにちは!私はVBの初心者です。私はOutlookからのメールを、オンラインで入手できるいくつかのVBスクリプトの助けを借りて自動的にExcelにエクスポートしようとしています。私は80%の結果で終わった。私が使用したコードを見てください。その中で、私はメール本体もエクスポートするいくつかのコードを追加する必要があります。誰かが私を導いてください。Outlook電子メールをExcelにエクスポートする
Public WithEvents objMails As Outlook.Items
Private Sub Application_Startup()
Set objMails = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub objMails_ItemAdd(ByVal Item As Object)
Dim objMail As Outlook.MailItem
Dim strExcelFile As String
Dim objExcelApp As Excel.Application
Dim objExcelWorkBook As Excel.Workbook
Dim objExcelWorkSheet As Excel.Worksheet
Dim nNextEmptyRow As Integer
Dim strColumnB As String
Dim strColumnC As String
Dim strColumnD As String
Dim strColumnE As String
If Item.Class = olMail Then
Set objMail = Item
End If
strExcelFile = "d:\LocalData\Z018439\Desktop\MY\NX-AMO\Mail Export\export.xlsx"
On Error Resume Next
Set objExcelApp = GetObject(, "Excel.Application")
If Error <> 0 Then
Set objExcelApp = CreateObject("Excel.Application")
End If
Set objExcelWorkBook = objExcelApp.Workbooks.Open(strExcelFile)
Set objExcelWorkSheet = objExcelWorkBook.Sheets("Sheet1")
nNextEmptyRow = objExcelWorkSheet.Range("B" & objExcelWorkSheet.Rows.Count).End(xlUp).Row + 1
strColumnB = objMail.SenderName
strColumnC = objMail.SenderEmailAddress
strColumnD = objMail.Subject
strColumnE = objMail.ReceivedTime
If StrComp(strColumnB, "[email protected]", vbTextCompare) = 0 Then
objExcelWorkSheet.Range("A" & nNextEmptyRow) = nNextEmptyRow - 1
objExcelWorkSheet.Range("B" & nNextEmptyRow) = strColumnB
objExcelWorkSheet.Range("C" & nNextEmptyRow) = strColumnC
objExcelWorkSheet.Range("D" & nNextEmptyRow) = strColumnD
objExcelWorkSheet.Range("E" & nNextEmptyRow) = strColumnE
objExcelWorkSheet.Columns("A:E").AutoFit
objExcelWorkBook.Close SaveChanges:=True
End If
objExcelApp.Quit
Set objExcelApp = Nothing
Set objExcelWorkBook = Nothing
Set objExcelWorkSheet = Nothing
Set objMail = Nothing
End Sub
VB.Netは 'Set'ステートメントを使用しますか?私はそれがVBAでのみ必要と考えました。 – YowE3K
@ YowE3K:いいえ。 'Set'はVB.NETにも存在しません(少なくともそのコンテキストにはありません)。これにはVBAでタグ付けする必要があります。 –