Excel по-прежнему просит включить / отключить Active X, даже если я удалил все Active X и макросы - PullRequest
0 голосов
/ 11 марта 2020

У меня есть код, который берет лист из рабочей книги, удаляет все объекты Active X, сохраняет его как .xlsx, а затем прикрепляет его в электронном письме.

Тем не менее, он все еще дает мне предупреждение о том, хочу ли я включить / отключить Active X.

Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

'Copy the ActiveSheet to a new workbook
wsForm.Copy
Set Destwb = ActiveWorkbook

'Determine the Excel version and file extension/format
With Destwb
    If Val(Application.Version) < 12 Then
        'You use Excel 97-2003
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
        'You use Excel 2007-2016
        Select Case wbForm.FileFormat
        Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
        Case 52:
            If .HasVBProject Then
                FileExtStr = ".xlsx": FileFormatNum = 51
            Else
                FileExtStr = ".xlsx": FileFormatNum = 51
            End If
        Case 56: FileExtStr = ".xls": FileFormatNum = 56
        Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
    End If
End With

    'Delete all ActiveX controls(Control Toolbox)or linked or embedded OLE objects
    On Error Resume Next
        Destwb.OLEObjects.Visible = True
        Destwb.OLEObjects.Enabled = False
        Destwb.OLEObjects.Delete
    On Error GoTo 0

    'Change all cells in the worksheet to values
    With Destwb.Sheets(1).UsedRange
        .Cells.Copy
        .Cells.PasteSpecial xlPasteValues
        .Cells(1).Select
        .Cells.Validation.Delete
    End With

    Application.CutCopyMode = False

'Save the new workbook/Mail it/Delete it
TempFilePath = Environ$("temp") & "\"
TempFileName = wbForm.Name & " " & Format(Now, "dd-mmm-yy") & " " & Destwb.Sheets(1).Range("Prenom") & " " & _
Destwb.Sheets(1).Range("Nom")

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With Destwb
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
    On Error Resume Next
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    With OutMail
        .To = wbForm.Sheets("Liste").Range("HR_Email")
        .CC = ""
        .BCC = ""
        .Subject = "Avis de correction/Note au dossier"
        .Body = "Avis de correction/Note au dossier."
        .Attachments.Add Destwb.FullName
        'You can add other files also like this
        '.Attachments.Add ("C:\test.txt")
        '.Send
        .Display
    End With
    On Error GoTo 0
    .Close SaveChanges:=False
End With

'Delete the file you have send
Kill TempFilePath & TempFileName & FileExtStr

Set OutMail = Nothing
Set OutApp = Nothing

With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With

Я в тупике, как мне обойти это сообщение? Когда я открываю новый файл, там нет макросов или объектов Active X, поэтому я не уверен, почему он спрашивает меня, хочу ли я включить / отключить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...