Hallo,
Code: Alles auswählen
Dim oDialog1 As Object
'-------------------------------------------------
Sub Begin
Dialog1Show
End Sub
'-------------------------------------------------
Sub Dialog1Show
DialogLibraries.LoadLibrary("Standard")
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
oDialog1.Execute()
End Sub
'-------------------------------------------------
Sub Btn2 ' Abbrechen
' oDialog1.setVisible(False)
oDialog1.endexecute()
' oDialog1.dispose()
End Sub
Mit
oDialog1.setVisible(False) setzt Du den Dialog auf nicht
sichtbar, kurioserweiser bleibt er in diesem Fall trotzdem sichtbar. Vermutlich weil nur ein Dialog verwendet wird.
Weil unsichtbar, führt dies zu dem Konflikt, dass das Event
oDialog1.endexecute() nicht ausführbar ist.
Sollte Office abstürzen, wenn
oDialog1.dispose() ausgeführt wird, dann bitte auskommentieren.
Ich weise aber daraufhin, wenn Du mal einen Listener programmierst, muss
dispose()
für das Listener-Ereignis unbedingt vorhanden sein, sonst wird dieses nicht korrekt beendet.
----------------------------------------------------------------------
Dies funktioniert bei mir:
Diese VBA-/VB-typische Anweisung verwende ich grundsätzlich nur,
bei Listener-Ereignissen, weil diese dort unbedingt erforderlich sind.
siehe hier...
Deshalb vermeide ich Unterstriche bei gewöhnlichen Routine- und Funktionsnamen.