title: Error 287 on Send command after upgrade to Windows 10
body: <p>I have Excel VBA code that generates an Outlook e-mail with an attachment.</p>
  
  <p>This worked in Windows 8.1 but does not work in Windows 10. I have stepped through the macro, and it gets all the way to the end, generates the e-mail, then fails on the OutMail.Send command. The error is </p>
  
  <blockquote>
    <p>Runtime error 287 - Application-defined or object-defined error</p>
  </blockquote>
  
  <p>Here is the code.</p>
  
  <pre><code>Sub batchallocationemail()
  
  'define email &amp; 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 " &amp; Range("B1").Value
          PdfFile = CreateObject("WScript.Shell").SpecialFolders("Desktop") &amp; "\" &amp; Title &amp; ".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 ' &lt;-- Put email of the recipient here
              OutMail.CC = x.Offset(0, 3).Value ' &lt;-- Put email of 'copy to' recipient here
              OutMail.Body = "Hello," &amp; vbLf &amp; vbLf _
              &amp; "Please see your attached allocation sheet in PDF format." &amp; vbLf &amp; vbLf _
              &amp; "Kind Regards," &amp; vbLf _
              &amp; Application.UserName &amp; vbLf &amp; 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
  </code></pre>