Discussion:
Laufzeitfehler '4248' beim Beenden von Word
(zu alt für eine Antwort)
u***@drv-bund.de
2012-11-23 11:50:41 UTC
Permalink
Guten Tag,

eine gleichlautende Anfrage ist hier: http://www.office-loesung.de/ftopic554556_0_0_asc.php
veröffentlicht; leider sind dort bislang noch keine Ideen aufgetaucht.
Deshalb meine Veröffentlichung hier, um so möglicherweise einen
größeren Expertenkreis zu erreichen.

Ich benutze eine Dokumentvorlage mit umfangreichen Makros. Bislang war
eine Symbolleiste fest in die Dokumentvorlage integriert, was aber in
einigen Fällen dazu führte, dass zwar die Symbolleiste sichtbar, aber
leer war.
Nun erstelle ich bei jedem Nutzen der Dokumentvorlage die Symbolleiste
neu, davor wird die Routine Symbolleiste_loeschen aufgerufen. Die VAR
"Symbolleistenname" ist global als Konstante definiert.

Code:

Sub Symbolleiste_erstellen()

Dim CB As CommandBar
Dim CBC As CommandBarButton

Set CB = CommandBars.Add(Name:=Symbolleistenname,
temporary:=False, Position:=msoBarTop)

Set CBC = CB.Controls.Add(Type:=msoControlButton)
With CBC
.FaceId = 271
.Caption = "Zwischenspeichern"
.OnAction = "Zwischenspeichern"
End With

Set CBC = CB.Controls.Add(Type:=msoControlButton)
With CBC
.BeginGroup = True
.Caption = "Rechtsprechung"
.Style = msoButtonCaption
.OnAction = "Rechtsprechung"
End With

Set CBC = CB.Controls.Add(Type:=msoControlButton)
With CBC
.Caption = "Literatur"
.Style = msoButtonCaption
.OnAction = "Literatur"
End With

Set CBC = CB.Controls.Add(Type:=msoControlButton)
With CBC
.Caption = "Pfadangabe"
.Style = msoButtonCaption
.OnAction = "dok_pfad"
End With

CB.Visible = True

Set CB = Nothing

Set CBC = Nothing

End Sub

Sub Symbolleiste_loeschen()

On Error Resume Next
CommandBars(Symbolleistenname).Delete

On Error GoTo 0

End Sub

Ende Code:

Beim Schließen des Dokumentes, das auf dieser Vorlage beruht, läuft
ein AutoClose-Makro, in dem die Symbolleiste entfernt wird.
Das Dokument ist geschlossen, Dokumentvorlage ist auch nicht mehr
vorhanden, das habe ich über den Editor kontrolliert.
Wenn ich jetzt Word beende, kommt der Laufzeitfehler '4248' , logisch
- ist ja auch kein Dokument mehr offen, hatte ich ja gerade
geschlossen.

Der Laufzeitfehler tritt nicht auf, wenn ich die Symbolleiste nicht
aufbaue.

Hat jemand eine Erklärung für dieses seltsame Verhalten?

Vielen Dank schon mal
Udo
Udo Rodewald
2012-12-04 10:20:37 UTC
Permalink
Post by u***@drv-bund.de
Guten Tag,
eine gleichlautende Anfrage ist hier:http://www.office-loesung.de/ftopic554556_0_0_asc.php
veröffentlicht; leider sind dort bislang noch keine Ideen aufgetaucht.
Deshalb meine Veröffentlichung hier, um so möglicherweise einen
größeren Expertenkreis zu erreichen.
Ich benutze eine Dokumentvorlage mit umfangreichen Makros. Bislang war
eine Symbolleiste fest in die Dokumentvorlage integriert, was aber in
einigen Fällen dazu führte, dass zwar die Symbolleiste sichtbar, aber
leer war.
Nun erstelle ich bei jedem Nutzen der Dokumentvorlage die Symbolleiste
neu, davor wird die Routine Symbolleiste_loeschen aufgerufen. Die VAR
"Symbolleistenname" ist global als Konstante definiert.
Codezeilen entfernt ...
Beim Schließen des Dokumentes, das auf dieser Vorlage beruht, läuft
ein AutoClose-Makro, in dem die Symbolleiste entfernt wird.
Das Dokument ist geschlossen, Dokumentvorlage ist auch nicht mehr
vorhanden, das habe ich über den Editor kontrolliert.
Wenn ich jetzt Word beende, kommt der Laufzeitfehler '4248'  , logisch
- ist ja auch kein Dokument mehr offen, hatte ich ja gerade
geschlossen.
Der Laufzeitfehler tritt nicht auf, wenn ich die Symbolleiste nicht
aufbaue.
Hat jemand eine Erklärung für dieses seltsame Verhalten?
Vielen Dank schon mal
Udo
Hallo,
dank des Hinweises einer Kollegin, konnte ich die Ursache für den
Laufzeitfehler ausmachen; Auslöser war eine weitere Vorlage, in der
auch eine Symbolleiste enthalten war. Wenn ich vor dem Schließen von
Word diese Vorlage entlud, trat der Laufzeitfehler nicht auf.
In diesem Zusammenhang fiel mir dann ein Beitrag ein, den ich vor
Wochen in dieser Group gefunden hatte:
https://groups.google.com/group/microsoft.public.de.word.vba/browse_thread/thread/1feb49e4b41f1733/dc712aa81b30bb47?lnk=gst&q=Symbolleiste+eindeutig#dc712aa81b30bb47
Mit einem CustomizeContext auf die aktuelle Vorlage, bevor die
Symbolleiste kreiert wird, trat der Laufzeitfehler nicht mehr auf,
auch wenn die weitere Vorlage noch geladen war. (Danke Cindy für den
Hinweis auf diese Eigenschaft :-)))
Noch ein Hinweis von mir, das Nutzen dieser Eigenschaft führt dazu,
dass die Vorlage gespeichert werden möchte;-)
Allen eine ruhige Adventszeit
Udo

Loading...