u***@drv-bund.de
2012-11-23 11:50:41 UTC
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
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