Lista alla vertygsfälts kontrollers
namn och ID-nummer
Om vi arbetar med olika språkliga versioner av Excel, såsom svensk och engelsk, så har verktygsfälten olika namn i respektive version. Det har också de underliggande kontrollerna/menyalternativen.
Istället för att referera till kontrollers namn så är det att föredra att referera till deras ID-nummer istället.
Här demonstreras ett förfaringssätt för att få fram alla verktygfälts indexnummer och alla kontrollers ID-nummer. Därmed får vi en förteckning på ett arbetsblad, vilken vi kan nyttja vid flera tillfällen.
Se också följande tips Lista alla verktygsfält...För att se ett exempel som baseras på ID-nummer mm se Infoga egna menyalternativ...
Option Explicit
Sub Lista_Alla_Verktygsfält_Kontrollers_NamnIDnr()
'© 2002 Alla rättigheter XL-Dennis
Dim cbVFalt As CommandBar
Dim cbKontroll As CommandBarControl
Dim RnCell As Range
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
With ActiveWorkbook
.Worksheets("Menynamn och ID-nummer").Delete
.Worksheets.Add
End With
ActiveSheet.Name = "Menynamn och ID-nummer"
Set RnCell = Range("A1")
For Each cbVFalt In Application.CommandBars
'Här skrivs verktygsfältens namn och indexnummer ut.
With RnCell
.Font.Bold = True
.Value = cbVFalt.NameLocal & " " & "ID-nr:" & cbVFalt.Index
End With
For Each cbKontroll In cbVFalt.Controls
Lista_Kontroller RnCell, cbKontroll
Next cbKontroll
Next cbVFalt
Columns("A:B").EntireColumn.AutoFit
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Sub Lista_Kontroller(rnMal As Range, cbKontroll As CommandBarControl)
'© 2002 Alla rättigheter XL-Dennis
Dim cbKontroller As CommandBarControl
On Error GoTo Felhantering:
Set rnMal = rnMal(2, 1)
'Här skrivs kontrollernas namn och ID-nr ut för respektive vertygsfält.
rnMal.Value = cbKontroll.Caption
rnMal(1, 2).Value = cbKontroll.ID
For Each cbKontroller In cbKontroll.Controls
Lista_Kontroller rnMal, cbKontroller
Next cbKontroller
Felhantering:
'För att komma ur For Each-satsen...
End Sub