traffic light
Din andre makro
Med denne makroen kan du få Excel til å fungere som et trafikklys. Et meget enkelt trafikklys.
Hva gjør et trafikklys? Det svitsjer fra grønnt til gult til rødt til gult til grønnt, om og om igjen.
Vi skal først lage en makro som forandrer fargen til cellen A1 fra grønn til gul til rød til gul til grønn igjen. Etterpå skal vi gjøre det hele litt mer raffinert.
Start et nytt ark og få fram Visual Basic verktøylinjen, ved hjelp av Vis -> Verktøylinjer -> Visual Basic. Bruk opptaksknappen og gi et navn til makroen som du vil registrere.
makro
Merk celle A1, og sett bakgrunnen til cellen på grønn. (I motsettning til den allerførste makroen har vi her cellemerkingen eksplisitt med i makroen.)
makro

Fortsett med å sette bakgrunnen til gul. Fortsett med å sette bakgrunnen til rød, så gul igjen, så grønn.

OK det er nok for trafikklyset vårt! Gå på Stop.
makro
Nå kan du kjøre makroen din: bruk avspill-knappen og velg makroen som du har registrert.
makro
Ser du at det skjer noe når du velger Kjør?

Nei? Vel det er fordi Excel bruker ikke mye tid på å kjøre denne makroen. Det hele skjer så fort at du ikke ser det, rett og slett. Cellen A1 er grønn til å begynne med, og til slutt er den grønn igjen, og fargeforandringen er ikke synlig.

Vi skal fikse dette ved å bremse ned Excel. For dette trenger vi å redigere makroen litt. Bruk igjen avspill-knappen, velg makroen som du har registrert, og velg Rediger. Du kan også bruke edit-knappen
makro
Som du ser, er du nå konfrontert med koden din. Da du brukte Excel i opptaksmodus, har den registrert dine aksjoner ved å oversette alt sammen til Visual Basic. Det hele kan virke litt merkelig, men i grunnen er det ganske lett å forså.
makro
Makroen begynner med
		Sub trafikklys1()
	
og slutter med
		End Sub
	
Nøkkelordet "Sub" står for subroutine og betyr starten eller slutten av en makro.

Innenfor selve makroet ser du at i første linjen blir cellen A1 utvalgt, eller selektiert. Så blir det gjort noe med dette utvalg: fargeindeksen til bakgrunnen blir satt til 4, så til 6, så til 3, etc. Som du skjønner, er dette koden for "sette bakgrunnen til grønn, så til gul, så til rød, etc".

Du kan prøve en liten forandring i koden: velg et større omrøde i starten. I første linjen erstatter du
		Range ("A1").Select
	
med
		Range ("A1:F9").Select
	
Test effekten ved å kjøre makroen igjen. Du kan lett gå tilbake til Excel ved å bruke Excel-knappen i raden av hurtigknapper.
makro
Nå kan du bremse ned Excel. Du gjør det ved å legge inn linjer av denne typen inn i koden:
	Application.Wait(Now + TimeValue("0:00:02")) 
	
Dette her for eksempel vil gi 2 sekunder ventetid.
Det mest naturlige vil være å legge det inn mellom
		End With
	
og
		With Selection.Interior
	
linjene. Hvorfor? For hver With blokk er en nettopp en blokk, en enhet i koden.
makro
Kjør makroen igjen -- er ikke dette ganske fint allerede?
Vil du ha et enda bedre trafikklys?

Tilbake til index