mit folgendem Code:
Private Sub Workbook_Activate()
Dim cb As CommandBar
For Each cb In Application.CommandBars
If cb.Name "Standard" And cb.Name "Formatting" And cb.Name "PivotTable" And cb. _
Name "Worksheet Menu Bar" And cb.Name "Cell" Then cb.Enabled = False
Next cb
End Sub
Private Sub Workbook_Deactivate()
Dim cb As CommandBar
For Each cb In Application.CommandBars
cb.Enabled = True
Next cb
End Sub
Kann ich alle Schaltflächenleisten die nicht den von mir definierten entsprechen deaktivieren. D.h. ich schränke die Möglichkeiten der Excel Applikation in der mein Workbook geöffnet ist, drastisch ein. Das möchte ich jedoch nicht unbedingt. Vielmehr geht es mir darum, Schaltflächenleisten, die von den meisten Usern (m.E. unnötigerweise) aus Gewohnheit aktiviert sind (z.B. Zeichnen) auszublenden, sobald meine Datei geöffnet wird.
Mein Ansatz war:
If cb.Name = "Chart" Or cb.Name = "Reviewing" Or cb.Name = "Drawing" or cb.Name = Borders Then cb.visible = False
Also nur die ausblenden, die ich auf meiner schwarzen Liste habe. Das hat nicht funktioniert. Der Debugger hat cb.visible = False beanstandet.
Ich präferiere den Weg über visible gegenüber enable auch aus dem Grund, daß viel Symbole grau werden, wenn man mit enable = false die Symbolleisten beeinflußt und das ein Gefühl der Einschränkung vermittelt. De facto geht es mir nur darum den Monitorplatz für die relevanten Daten zu maximieren.
Auch hatte ich versucht, die Begriffe meiner Liste durch zu loopen. D.h. nicht jeden Begriff durch Or abdecken, sondern eine Liste im VBA Editor (nicht auf einem Blatt) zu definieren (Array?) durch das der Code mit For Each durchgeht. Bei einem Treffer soll der Status dann auf visible = false gehen. Sobald das Workbook deaktiviert ist, sollen alle Symbolleisten wieder erscheinen, die der User vorher auch schon hatte.
Liste der auszublendenden Symbolleisten:
Chart
Reviewing
PDFMaker 7.0
Drawing
Formula Auditing
Visual Basic
Borders
Picture
Ist das Euer Meinung nach möglich. Bei allen Recherchen hier im Forum habe ich meist nur Codes mit enable gefunden und auch leider kein Array, welches ich anwenden konnte.
Vielen Dank und Gruß,
Andreas