xlsx - Dateisicherheitswarnung und Funktionsaufruf
03.04.2018 11:43:18
Markus
Folgendes Problem liegt bei mir vor:
Ich habe eine Funktion gefunden, diese hier, die prüft ob eine Arbeitsmappe Makros
oder nicht, diese hatte ich unter Module geschrieben und Public gesetzt:
Public Function HasMakros(wkb As Workbook) As Boolean
'prüft, ob Standardmodule vorhanden sind
'benötigt Verweis auf
'Microsoft Visual Basic for Applications Extensibility 5.3
'Visual Basic for Applications
Dim VB As VBComponents, VBC As VBComponent
Set VB = wkb.VBProject.VBComponents
For Each VBC In VB
If VBC.Type = 1 Then
HasMakros = True
Exit Function
End If
Next VBC
HasMakros = False
End Function
Diese Funktion möchte ich unter Diese Arbeitsmappe aufrufen und zwar so in der Art:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
On Error Resume Next
If HasMakros() = True Then
Application.OnTime EarliestTime:=DaEt, Procedure:="Zeitmakro", Schedule:=False
Application.DisplayAlerts = True
End If
Else
MsgBox "Keine Makros vorhanden"
End Sub
Das Problem ist das er meint die Argumente seien nicht Optional bei dieser Zeile, wo ich die Funktion aufrufen möchte, da fehlt irgendetwas glaube ich nur was?
If HasMakros() = True Then
Es war so gedacht, das er prüft ob eine Arbeitsmappe Makros enthält oder nicht.
Wenn ja soll er das Application.OnTime ausführen, wenn nicht also eine xlsx-Datei, dann soll er nichts ausführen.
Dabei kommt aber mein zweites Problem zu Stande, denn wenn es eine xlsx-Datei ist, kommt immer noch diese Meldung hier:
Datensicherheitswarnung: Dieses Dokument enthält Makros, Active-X- Steuerelemente, XML Erweiterungspaketinformationen oder Webkomponenten. Diese enthalten möglicherweise persönliche Informationen, die durch den Dokumenteninspektor nicht entfernt werden können.
Mir ist klar das er diese Meldung bringt, weil er versucht eine xlsx-Datei mit Makros zu speichern, was er aber gar nicht soll, er soll sie einfach so speichern, das reicht mir schon. Von daher gibt es eine Möglichkeit das diese Meldung nicht mehr erscheint, also das man diese wegbekommt? Ich mein er macht ja da was er soll, nur diese Meldung davor müßte noch weg, da die jedesmal kommt.
Zusammenfassend: Hintergrund des ganzen war halt, das er erkennen soll ob Datei Makros enthält , wenn ja das Application on Time noch ausführt und dann speichert und wenn nein, diese Datei einfach als xlsx-Datei abspeichert ohne diese Dateisicherheitswarnung, die einfach weg sollte.
Kann jemand bitte helfen?
Beste Grüße
Marcus