Alle Dialogfelder in Excel deaktivieren, während VB-Skript ausgeführt wird?

Ich habe einen Code in VB, der alle XLSM-Dateien als XLSX speichert. Ich habe bereits den Code, der das für mich erledigt, aber Dialogfelder werden für jede Aktion angezeigt. Dies war gut für ein paar Dutzend Dateien. Ich werde dies jedoch für Hunderte von XLSM-Dateien gleichzeitig verwenden, und ich kann nicht einfach den ganzen Tag an meinem Computer sitzen und immer wieder auf Dialogfelder klicken.

Der Code, den ich ausprobiert habe, ist ziemlich viel:

Application.DisplayAlerts = False

Dies verursacht zwar keinen Fehler, funktioniert aber auch nicht.

In den Feldern wird eine Warnung zum Aktivieren von Makros angezeigt. Außerdem wird beim Speichern unter XLSX die Datei aller Makros entfernt. In Anbetracht der Art der Warnungen habe ich den Verdacht, dass das Deaktivieren dieser Dialogfelder aufgrund des Sicherheitsrisikos eingeschränkt ist.

Gibt es möglicherweise eine Option, mit der ich Dialogfelder für das Debuggen deaktivieren kann, da ich diesen Code im VB-Editor von Excel ausführe?

Ich habe auch versucht:

Application.DisplayAlerts = False       
Application.EnableEvents = False        
' applied code
Application.DisableAlerts = True
Application.EnableEvents = True

Beides hat nicht funktioniert.

Bearbeiten:

So sieht der obige Code in meinem aktuellen Code aus:

Public Sub example()
Application.DisplayAlerts = False
Application.EnableEvents = False

For Each element In sArray
    XLSMToXLSX(element)
Next element

Application.DisplayAlerts = False
Application.EnableEvents = False
End Sub

Sub XLSMToXLSX(ByVal file As String)
    Do While WorkFile <> ""
        If Right(WorkFile, 4) <> "xlsx" Then
            Workbooks.Open Filename:=myPath & WorkFile

            Application.DisplayAlerts = False
            Application.EnableEvents = False

            ActiveWorkbook.SaveAs Filename:= _
            modifiedFileName, FileFormat:= _
            xlOpenXMLWorkbook, CreateBackup:=False

            Application.DisplayAlerts = True
            Application.EnableEvents = True

            ActiveWorkbook.Close
        End If
        WorkFile = Dir()
    Loop
End Sub

Ich habe auch das umzingeltFor Schleife, im Gegensatz zu derActiveWorkbook.SaveAs Linie:

Public Sub example()
For Each element In sArray
    XLSMToXLSX(element)
Next element
End Sub

Endlich habe ich die verlegtApplication.DisplayAlerts überWorkbooks.Open Linie:

Sub XLSMToXLSX(ByVal file As String)
    Do While WorkFile <> ""
        If Right(WorkFile, 4) <> "xlsx" Then
            Workbooks.Open Filename:=myPath & WorkFile

            Application.DisplayAlerts = False
            Application.EnableEvents = False

            ActiveWorkbook.SaveAs Filename:= _
            modifiedFileName, FileFormat:= _
            xlOpenXMLWorkbook, CreateBackup:=False

            Application.DisplayAlerts = True
            Application.EnableEvents = True

            ActiveWorkbook.Close
        End If
        WorkFile = Dir()
    Loop
End Sub

Keines davon funktioniert auch.

Bearbeiten:

Ich verwende Excel für Mac 2011, wenn das hilft.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage