|
Materialet publicerat med tillstånd från Dennis Wallentin.
I XL finns det ett flertal s k kontroller, vilka vi kan
använda både direkt i kalkyl- blad och i formulär samt vid
programmering i Visual Basic for Application (VBA).
Dessa kontroller utgörs av grafiska objekt med vilka vi
kan manipulera data och utfall.
Ett flertal av dessa kontroller medföljer XL vid
installation medan andra kontroller ingår i andra
programvaror (t ex Visual Basic och Delphi) samt i renodlade
tilläggsprodukter, såsom SamLogic VB
Super Library
Kontrollerna nås bäst genom att ställa musmarkören på
ett verktygsfält och högerklicka. I menyn finns det två
verktygsfält att välja från.
Kontrollerna återfinns under verktygsfälten
"Formulär" och "Kontroller". De
kontroller som återfinns i den sistnämnda brukar vanligtvis
benämnas som Active-X kontroller. Det är separata objekt som
"bäddas in" i XL.
Att det finns två verktygsfält för kontroller beror på
att objekten i "Formulär" är bakåtkompatibla med
version 5.0 av XL. Utöver det så fungerar dessa kontroller
bäst i diagram.
Verktygsfältet Formulär

Verktygsfältet Kontroller

Att skapa kontroller direkt i kalkylblad är enkelt. Klicka
på önskat objekt i verktygsfältet och rita ut det på
kalkylbladet. Vill du anpassa storleken på kontrollerna till
rutnätet så håll ned ALT-tangenten samtidigt som du ritar
objekten.
Ett alternativ till ett flertal av dessa kontroller är datavalidering.
Formulärkontroller
Här demonstreras formulärkontrollen
kombinationsrutan (ComboBox eller Drop-Down).
Så här ser det färdiga resultatet ut:

För att formatera en formulärkontroll högerklickar man
på objektet och väljer kommandot "Formatera
kontroll...".
Följande dialogrutan visar:

Dialogrutan är beskuren för att minimera
bildutrymmet.
En förutsättning är att det finns en lista i
kalkylbladet, från vilken alternativen i kombinationsrutan
kan hämtas ifrån, för exemplet utgör intervallet A3:A6
listan. När man väljer ett alternativ genereras ett
indexnummer, vilket ska länkas till en cell i kalkylbladet,
för exemplet är det cell B3 som är cellänk.
Problemet med formulärkontroller är att dessa genererar
indexnummer men inte listvärden, t ex 2 istället för
värdet "BB". Det gör att den länkade cellens
värde måste omvandlas till ett riktigt listvärde.
Här kan vi använda oss av INDEX-funktionen på följande
sätt:
(Cellänkens indextal kan döljas, dels bakom kontrollen
och dels genom att formatera värdet med samma färg som
bakgrunden, t ex vit.)
En rotationsknapp kan man använda till att stegvis
öka/minska en procentsats. Det kan vara intressant när man t
ex arbetar med ränta.
Så här ser det färdiga resultatet ut:

Så här ser inställningarna ut i dialogrutan Formatera
kontroll:

Dialogrutan är beskuren för att minimera
bildutrymmet.
I exemplet ökar/minskar räntesatsen med 0,05
procentenheter. Kontroller kan bara hantera heltal mellan 1
och 32000. För att använda sig av decimaler krävs en
underliggande formel.
I exemplet används följande formel:
Active-X kontroller
Dessa kontroller skiljer i det att man har många
fler egenskaper i objekten som kan manipuleras. Det som visas
på kalkylbladet är på ytan fullt identiskt med
formulärkontrollerna - se bild nedan (Den till höger är en
Active-X kontroll medan den vänstra är en s k
formulärkontroll.)

Bilden nedan visar egenskapsfönstret för
kombinationsrutan:

De egenskaper som är mest intressanta här och som kan
ställas in efter egna önskemål är:
|
Font: |
Bestämma typsnitt och storlek. |
|
LinkedCell: |
Den cell som ska ta emot det valda värdet. OBS!
Dessa kontroller genererar värdet direkt. |
|
ListFillRange: |
Det cellintervall som innehåller listan som ska
visas. |
|
ListRows: |
Antal rader som ska visas. |
|
MatchRequired: |
Bara värden från listan kan väljas. |
|
MatchEntry: |
Snabbkommando för att ange värden. |
Alternativknappen är också en attraktiv
kontroll. Lägger man ut flera knappar intill varandra så kan
man bara markera ett alternativ (se bild nedan).

Den vänstra kontrollen är en
formulärkontroll och till höger en Active-X kontroll.
Med dessa Active-X kontroller kan man visa flera listkolumner
och visa ett värde från en kolumn.
Bilden nedan demonstrerar en listruta med flera
listkolumner:

I bilden nedan visas de egenskaper som behövs ställas in
för att få detta resultat:

Egenskapsrutan är beskuren för att
minimera bildutrymmet.
Följande egenskaper påverkar antal listkolumner och från
vilken kolumn värdet ska hämtas ifrån:
|
ColumnCount: |
Antal kolumner som ska visas. |
|
BoundColumn: |
Från vilken listkolumn det valda värdet ska hämtas
ifrån. |
|
ColumnHeads: |
Om den första raden i listan innehåller kolumnnamn
eller ej. |
Hämta flera kolumnvärden från en listruta
Här visas hur vi relativt enkelt kan hämta flera
kolumnvärden från en listruta.
Följande bild visas exemplet i sin helhet:

Följande inställningar gäller för exemplet:

För att erhålla namnet på den valda personen används
följande uppslagsfunktion i cell F10, där vi således
hämtar värdet från den ursprungliga listan i arbets- bladet
och inte från listrutan:
|