ich möchte gerne mit VBA automatisiert alle benutzerdefinierten Symbolleisten an die aktuelle DAtei anbinden.
Leider scheint es keine Methode in Excel 2000 zu geben, mit der dies problemlos möglich wäre. Also muß ich auf die Sendkeys-Methode ausweichen.
Hierzu habe ich eine Vorlage von der ehem. Site "SOSCQ" von Phillip von Wartburg gefunden, die bei mir jedoch leider nicht funktioniert.
Der Originalcode lautet:
Function GetCustomCommandBarsCount() As Integer
Dim intCustomBars As Integer
Dim intCounter As Integer
intCustomBars = 0
For intCounter = 1 To Application.CommandBars.Count
If Application.CommandBars(intCounter).BuiltIn = False Then
intCustomBars = intCustomBars + 1
End If
Next intCounter
GetCustomCommandBarsCount = intCustomBars
End Function
Sub AttachCommandbarsToWorkbook()
Dim intCounter As Integer
Dim intCustomBars As Integer
intCustomBars = GetCustomCommandBarsCount()
AppActivate "Microsoft Excel"
SendKeys "{tab} "
For intCounter = 1 To intCustomBars
SendKeys "{down} "
Next intCounter
SendKeys "&k{tab}{enter}"
Application.Dialogs(xlDialogAttachToolbars).Show
End Sub
Das Problem:
Der Code scheint fehlerhaft zu sein, da
Application.Dialogs(xlDialogAttachToolbars).Show
nicht zu Beginn der Prozedur aufgerufen wird und somit die Sendkeys-Befehle nicht im Dialog ausgeführt werden.
Also habe ich den Code geändert:
Sub AttachCommandbarsToWorkbook()
Dim intCounter As Integer
Dim intCustomBars As Integer
intCustomBars = GetCustomCommandBarsCount()
AppActivate "Microsoft Excel"
Application.Dialogs(xlDialogAttachToolbars).Show
'###### ab hier bleibt der Dialog stehen und nimmt keine
'###### weiteren SendKey-Befehl an.
SendKeys "{tab} "
For intCounter = 1 To intCustomBars
SendKeys "{down} "
Next intCounter
SendKeys "&k{tab}{enter}"
Application.Dialogs(xlDialogAttachToolbars).Show
End Sub
Hat jemand eine Idee, wie der Code geändert werden kann, damit er läuft?
Vielen Dank!!!
Schönen Gruß,
Rüdiger