Hallo und guten Abend wünsche ich euch allen!
Ich schreibe ein Makro für Outlook, wobei der Benutzer dazu aufgefordert wird, den Dateipfad einer bestimmten Datei (hier: eine Excel-Arbeitsmappe) anzugeben. Outlook 2016 verfügt leider über keine eingebauten Dateidialoge, deshalb starte ich eine Excel-Application und benutze ihre GetOpenFileName-Methode. Hier der Code:
Set gobjAppExcel = New Excel.Application 'Starte Excel
gstrDatabaseFilePath = gobjAppExcel.GetOpenFilename("Excel-Arbeitsmappe mit Makros (*.xlsm), *.xlsm") 'Setze den Dateipfad in String-Variable
gobjAppExcel.Application.Quit
Set gobjAppExcel = Nothing
In den Verweisen habe ich die Microsoft Excel 16.0 Object-Library aktiviert. Starte ich das Makro aus Outlook, wird Excel zwar gestartet (sehe ich im Task-Manager), aber das war es dann auch schon. Der Dateidialog wird gar nicht erst angezeigt. Eine Fehlermeldung erscheint auch nicht - es tut sich einfach nichts. Bis ich im Task-Manager den Excel-Prozess "kille", dann kann ich wieder auf meine UserForm zugreifen.
Setze ich schrittweise Haltepunkte im Code, funktioniert es. Aber das kann doch nicht darüber entscheiden, ob der Dateidialog angezeigt wird, oder nicht? Zumal beim nächsten Öffnen die Haltepunkte nicht mehr vorhanden sind und der Benutzer davon gar nichts mitbekommen soll.
Hat jemand Rat? Ich bedanke mich auch schon mal herzlich!
Maria
|