Per VBA feststellen,ob Datei passwortgeschützt ist
04.12.2012 15:09:46
John
ich möchte ein Makro schreiben, dass eine Excel-Arbeitsmappe öffnet. Diese kann eventuell passwortgeschützt sein. Falls dem so ist, soll der Anwender das Passwort eingeben (damit die Datei geöffnet werden kann), und außerdem soll das Passwort dann in Zelle A1 der Tabelle eingetragen werden.
Ich habe das folgendermaßen gelöst:
Sub test()
eingabe = InputBox("Wie lautet das Passwort für die Arbeitsmappe?")
Workbooks.Open "c:\testmich.xlsx", Password:=eingabe
Range("A1").Value = eingabe
End Sub
Dadurch habe ich der Variable "eingabe" das Passwort zugeordnet und kann es später im Code beliebig verwenden.
So weit, so gut. Ich will aber, dass die Eingabeaufforderung nur dann erscheint, wenn die Datei wirklich passwortgeschützt ist. Falls nicht, soll sie nur geöffnet werden (der Eintrag in Zelle A1 entfällt dann).
Natürlich könnte ich die Datei mit einem normalen workbooks.open-Befehl (also ohne den Teil "Password:=eingabe") öffnen und den Benutzer das Passwort dann in den Standard-Dialog von Excel eingeben lassen, aber dann könnte ich es ja keiner Variable zuordnen.
Der langen Rede kurze Frage: Gibt es eine Möglichkeit, per Excel-VBA festzustellen, ob eine nicht gerade geöffnete Datei passwortgeschützt ist? Dann könnte ich das nämlich prüfen und die entsprechenden Passwort-Routinen dann nur ausführen lassen, wenn tatsächlich ein Passwortschutz vorliegt.
Vielen Dank für Eure Hilfe!