Forstå funksjoner i makroer

July 29  by Eliza

Du vet allerede at du kan bruke subrutiner i dine makroer. VBA kan du også definere funksjoner som kan brukes i dine makroer. Forskjellen mellom funksjoner og subrutiner er at funksjonene kan returnere verdier, mens subrutiner ikke kan. Vurdere følgende makro:

Sub Makro1 ()
TooMany = TestFunc
Hvis TooMany Deretter MsgBox "For mange kolonner valgt"
End Sub

Fungere TestFunc ()
TestFunc = False
Hvis Selection.Columns.Count> 10 Da
TestFunc = True
End If
End Function

Makroen (Makro1) kaller TestFunc funksjon. Denne funksjonen returnerer enten verdien usann eller sann, avhengig av en test den utfører. Makro1 opptrer deretter på verdien som returneres. Legg merke til at navnet på funksjonen kan dukke opp på høyre side av et likhetstegn. Dette gjør fungerer veldig kraftig og en viktig del av ethvert program. I funksjonen resultatet er tilordnet TestFunc, som er navnet på selve funksjonen; Dette er verdien som returneres av funksjonen.

Som med subrutiner, kan du også sende parametre til dine funksjoner. Dette er illustrert i følgende makro:

Sub Makro1 ()
A = 12,3456
MsgBox A & vbCrLf & RoundIt (A)
End Sub

Funksjon RoundIt (X) As Integer
RoundIt = Int (X + 0,5)
End Function

Denne enkle makro (Makro1) definerer et tall, og bruker en meldingsboks for å vise det, og resultatet av bestått nummeret til RoundIt funksjon da. Utgangen er 12,3456 og 12. Legg merke til at parameteren bør sendes til funksjonen i parentes. Legg også merke til at funksjonen ikke bruker samme variabel navn som det ble vedtatt. Dette er fordi VBA reassigns verdien av X (hva funksjonen trenger) så det samsvarer med verdien A (hva programmet passerer til funksjonen). Det som er viktig å huske på i forbifarten parametere til funksjoner er at programmet må passere like mange parametre som funksjon forventer, og parametrene må være samsvartyper og i riktig rekkefølge.

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (11765) gjelder for Microsoft Excel 2007 og 2010. Du kan finne en versjon av dette tipset for den eldre menygrensesnittet av Excel her: Forstå funksjoner i makroer.