Rund um die Menüleisten (I) |
|
Die Menüleiste in Word ist eine besondere Darstellung der Symbolleisten, wird aber genauso über das CommandBars-Objekt angesprochen. Der Zugriff auf die Menüleiste erfolgt über den Namen "Menu Bar". Sub MNU_AusEinblenden() Dim cbmnu As CommandBar Set cbmnu = CommandBars("Menu Bar") cbmnu.Enabled = False cbmnu.Enabled = True End Sub Anmerkung Dim oWord As Word.Application Set oWord = New Word.Application oWord.Visible = True oWord.WindowState = wdWindowStateMaximize Set oWord = Nothing Innerhalb der Menüleiste können die Menüeinträge über das CommandBar-Control angesprochen werden. Sub Menuleisteneinträge() Dim cbmnu As CommandBar Dim ctlmnu As CommandBarControl Dim msg, antw As String Set cbmnu = CommandBars("Menu Bar") For Each ctlmnu In cbmnu.Controls msg = msg & ctlmnu.Caption & vbCrLf Next ctlmnu antw = MsgBox(msg, vbInformation, "Menüeinträge") End Sub Die einzelnen Menüpunkte eines Menüeintrages werden wiederum als CommandBar-Controls des jeweiligen Menüeintrages angesprochen. Sub Menupunkte() Dim cbmnu As CommandBar Dim ctlmnu As CommandBarControl Dim msg, antw As String Set cbmnu = CommandBars("Menu Bar") For Each ctlmnu In cbmnu.Controls("&Ansicht").Controls If ctlmnu.Enabled = True And ctlmnu.Visible = True Then msg = msg & ctlmnu.Caption & vbCrLf End If Next ctlmnu antw = MsgBox(msg, vbInformation, "Menüpunkte: Ansicht") End Sub Ein bestimmter einzelner Menüpunkt wird entweder über den Menü-Index oder den korrekten Namen angesprochen. Besitzt ein Menüpunkt weitere Unterpunkte, können diese ebenfalls als CommandBar-Controls angesprochen werden, auch wenn in diesen Fällen die Intellisense-Hilfe der IDE diese Methode nicht anbietet. Sub MenuPunktAnsprechen() Dim cbmnu As CommandBar Dim ctlmnu As CommandBarControl Dim ctlumnu As CommandBarControl Dim msg, antw As String Set cbmnu = CommandBars("Menu Bar") Set ctlmnu = cbmnu.Controls("Extras").Controls("Makro") Set ctlumnu = ctlmnu.Controls("Makros...") msg = ctlumnu.Caption antw = MsgBox(msg, vbInformation, "Menüpunkt: " & ctlmnu.Caption) End Sub Mit obiger Methode lässt sich relativ einfach ein bestimmter bekannter Menüpunkt ermitteln. Will man wissen, ob dieser Eintrag existiert, setzt man einen Verweis auf dieses Objekt und prüft das Ergebnis. Wird ein Nothing" zurückgeliefert, ist der Eintrag nicht vorhanden. Anderenfalls lässt sich mit diesem Verweis weiterarbeiten (siehe nächstes Beispiel). Sucht man einen bestimmten Menüeintrag/-punkt, gibt es mehrere Möglichkeiten. Sub MnuSuchen() Dim ctlmnu As CommandBarControl Dim iID As Integer Dim msg, antw As String iID = 3 Set ctlmnu = CommandBars("Menu Bar").FindControl(ID:=iID, Recursive:=True) If ctlmnu Is Nothing Then msg = "Es wurde kein Eintrag mit der ID=" & iID & " gefunden." Else msg = "Menüpunkt '" & ctlmnu.Caption & "'" & vbCrLf & "im Menüeintrag '" & _ ctlmnu.Parent.NameLocal & "'" & vbCrLf & "besitzt die ID=" & iID & "." End If antw = MsgBox(msg, vbInformation, "Info") End Sub Anmerkung: |
Besucher: 0 online | 0 heute | 0 diesen Monat | 2237663 insgesamt | Seitenaufrufe: 110 | Letzte Änderung: 24.06.2006 | © 2001-18 Christian Freßdorf | ||||
Wer über gewisse Dinge den Verstand verliert, hat keinen zu verlieren. Nestroy |
powered by phpCMS and PAX |