Kontrollera placering av Formulärkontroller och ActiveX-kontroller

Ordning och reda på knappar

När vi skapar makron brukar vi koppla dem till knappar för att med hjälp av knapptryckning kunna köra våra makron. I Excel finns det två olika typer av knappar; ActiveX och Formulär. Detta tips handlar inte om knapparna som sådana, utan om hur vi ser till att de ligger snyggt på sidan, det vill säga på rätt höjd och med bra avstånd från varandra. Knapparna börjar nämligen vandra omkring om vi ändrar på radhöjder eller kolumnbredder i arket.

Olika typer av knappar – Formulär eller ActiveX

Vilken typ av knapp använder du? Det beror på hur du lägger in dem. Den ena knappen hör till gruppen Formulärkontroller [Forms Controls] och den andra till ActiveX-kontroller [ActiveX-Controls]. Vi finner dem i menyn Utvecklare [Developer] i gruppen Kontroller [Controls] under knappen Infoga [Insert]. När vi klickar på den knappen får vi upp gränssnittet nedan, där knapparna är överst till vänster i respektive grupp.

Det är vanligast att knappen av typen formulärkontroll används av dem som spelar in makron, medan de som skriver egna makron oftast använder typen ActiveX-kontroller. Knapparna passar helt enkelt olika bra för olika typer av lösningar.

Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-kurser i Excel & Office-paketet

Vi skall börja med att se på hur formulärkontrollerna läggs rätt. Det är lite krångligare än ActiveX-knapparna. Formulärkontrollernas knappar är besvärligare att nå i kod och det är svårt att ta reda på deras namn. Om vi högerklickar på en knapp ser vi dess namn i namnrutan uppe till vänster:

Min knapp heter ”Knapp 1” och den fick det namnet eftersom det är den första knappen jag lade in. Det kluriga här är att knappens namn kodmässigt faktiskt inte är ”Knapp 1” utan ”Button 1”. För att förenkla det hela markerar jag därför mina knappar och redigerar om deras namn i namnrutan så att namnen blir Sverige, Danmark respektive Norge. När jag redigerat ett namn trycker jag på Enter och namnet sparas.

VBA-kod för placering av knapparna

Ladda ner exempelfilen här.

Nu kan jag skapa en metod som lägger knapparna på samma höjd och på ett bra avstånd:

Public Sub FlyttaKnappTyp_1()
    ActiveSheet.Shapes.Range(Array("Sverige")).Top = 10
    ActiveSheet.Shapes.Range(Array("Sverige")).Left = 10

    With ActiveSheet.Shapes.Range(Array("Danmark"))
        .Top = ActiveSheet.Shapes.Range(Array("Sverige")).Top
        .Left = ActiveSheet.Shapes.Range(Array("Sverige")).Left + 100
    End With
    
    With ActiveSheet.Shapes.Range(Array("Norge"))
        .Top = ActiveSheet.Shapes.Range(Array("Sverige")).Top
        .Left = ActiveSheet.Shapes.Range(Array("Sverige")).Left + 200
    End With
End Sub

Notera hur jag i koden ställer i den första knappens position från översta vänstra kanten i arket. Övriga knappar anpassas till den första knappen. Metoden ovan kan jag anropa varje gång jag använder någon av knapparna. På det viset flyttas knapparna tillbaka till rätt position, om vi skulle ha råkat få dem att flytta på sig. I exempelfilen finns även en knapp som flyttar de tre knapparna i oordning så att funktionaliteten kan demonstreras.

Knapparna av typen ActiveX-kontroller är enklare att referera till. Koden för dem skall ligga i koden för arket och alltså inte i en modul. Koden blir lite enklare att läsa och redigera:

Public Sub FlyttaKnappTyp_2()
    CommandButton1.Top = 10
    CommandButton1.Left = 10

    With CommandButton2
        .Top = CommandButton1.Top
        .Left = CommandButton1.Left + 100
    End With
    
    With CommandButton3
        .Top = CommandButton1.Top
        .Left = CommandButton1.Left + 200
    End With
End Sub

Vi ställer i exemplen ovan in positionerna för knapparna med hjälp av egenskaperna .top och .left. Det finns även en egenskap .width som vi kan använda för att ge alla knappar samma bredd, om det är önskvärt.

I den bifogade filen finns exempel på både Formulärkontroller och ActiveX-kontroller med kopplad VBA-kod.

Ladda ner exempelfilen här.

Associerad Excelkurs: Excel VBA och makron

Du gillar kanske också...

Börja prenumerera idag!

Ta del av tips & tricks i Excel och Office en gång i månaden helt kostnadsfritt.

Grattis! Du kommer nu att få Excelbrevet varje månad helt gratis.