Zu Excel 2010 Ribbon-Leiste
1)
a) angenommen man möchte mehrere Knöpfe (msoControlButton) in der Symbolleiste platzieren, die zur selben Subroutine verweisen. Wie kann man sauber herausfinden, welcher Knopf die Subroutine gestartet hat?
b) Ist es bei .OnAction = "Test" möglich Parameter an die Subroutine zu übergeben, bzw. wie ist der Syntax dafür. Wenn ja erledigt sich a)
2) Ich aktiviere beim Start automatisch das Add-Ins Menü, damit meine Menüleiste immer verfügbar ist. Wenn ich mit Alt-Tab eine andere Excel-Mappe aufrufe, soll sich die Symbolleiste abschalten (denn die gehört ja nicht zu der anderen Mappe). Nun das Problem - ich entferne die Symbolleiste über das Ereignis Workbook_Deactivate. Nun klappt aber auf dem zweiten Workbook das Add-Ins Menü ungewollt zu, weil es leer ist. Wechsele ich mit Alt-Tab wieder zur ursprünglichen Leiste, wird die Symbolleiste reaktiviert, aber das Add-Ins Menü öffnet nicht von selbst. Um das auszutricksen ersetze ich die Hauptsymbolleiste durch eine Dummy-Sybolleiste, mit nur einem Schloss .FaceId = 225. Die Funktion ist gegeben - aber geht es eleganter?
Im ThisWorkbook habe ich:
Option Explicit
Public Shutdown As Boolean
Private Sub Workbook_Open()
Autostart_by_ThisWorkbook_Workbook_Open 0
AddCustomMenu ActiveSheet.Name
DelCustomMenu "DummySymbolleiste"
End Sub
Private Sub Workbook_Activate()
AddCustomMenu ActiveSheet.Name
DelCustomMenu "DummySymbolleiste"
End Sub
Private Sub Workbook_Deactivate()
If Shutdown = False Then AddDummyMenu 0
DelCustomMenu "Symbolleiste"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
DelCustomMenu "Symbolleiste"
DelCustomMenu "DummySymbolleiste"
Shutdown = True
End Sub
3) Bei mir Ordnen sich die Buttons und Editfelder, innerhalb der Symbolleiste immer oben und dann von links nach rechts an. Kann man das Verhalten beeinflussen, so dass z.B. Ein Button nach rechts unten kommt? Entsprechende Befehle, wie ...right, ...Bottom habe ich vergeblich getestetGruß Eddie