0
添付ファイル付きのOutlook電子メールを生成するExcel VBAコードがあります。Windows 10へのアップグレード後に送信コマンドでエラー287
これはWindows 8.1では機能しましたが、Windows 10では機能しません。マクロをステップ実行し、最後まで到達して電子メールを生成し、OutMail.Sendコマンドで失敗します。ここでは、コードされたアプリケーション定義またはオブジェクト定義エラー
- エラーが
ランタイムエラー287です。
Sub batchallocationemail() 'define email & pdf Dim IsCreated As Boolean Dim PdfFile As String, Title As String Dim OutlApp As Object Dim OutMail As Object ' ' print allocation Macro 'define worksheets Dim ws As Worksheet Set ws = Sheets("Caseworkers") Dim ws2 As Worksheet Set ws2 = Sheets("Allocation Sheet") 'define range Dim NameRange As Range Dim NameRange2 As Range Dim x As Range Dim z As Range Set z = ws2.Range("B1") Set NameRange = ws.Range("A1:C69") Set NameRange2 = ws.Range("A2:A69") Set NameRange3 = ws.Range("C2:C69") 'Selects name from list and pastes into allocation ws.Select NameRange.AutoFilter Field:=2, Criteria1:="In" For Each x In NameRange2.SpecialCells(xlCellTypeVisible) x.Copy ws2.Select Range("B1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ws2.Select 'CONVERTS ACTIVE SHEET TO PDF AND EMAILS IT ' Define Title Title = Range("B1").Value ' Define PDF filename Title = "Allocation Sheet for " & Range("B1").Value PdfFile = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & Title & ".pdf" ' Export activesheet as PDF With ActiveSheet .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End With ' Use already open Outlook if possible On Error Resume Next Set OutlApp = GetObject(, "Outlook.Application") If Err Then Set OutlApp = CreateObject("Outlook.Application") IsCreated = True End If OutlApp.Visible = True On Error GoTo 0 ' Prepare e-mail with PDF attachment Set OutMail = OutlApp.CreateItem(0) With OutMail ' Prepare e-mail OutMail.Subject = Title OutMail.To = x.Offset(0, 2).Value ' <-- Put email of the recipient here OutMail.CC = x.Offset(0, 3).Value ' <-- Put email of 'copy to' recipient here OutMail.Body = "Hello," & vbLf & vbLf _ & "Please see your attached allocation sheet in PDF format." & vbLf & vbLf _ & "Kind Regards," & vbLf _ & Application.UserName & vbLf & vbLf OutMail.Attachments.Add PdfFile ' Try to send Application.Visible = True OutMail.Display OutMail.Send End With ' Quit Outlook if it was not already open If IsCreated Then OutlApp.Quit ' Release the memory of object variable Set OutMail = Nothing Set OutlApp = Nothing Next x End Sub