VBA: Hvordan skrive en egendefinert funksjon

Submitted by lroedal on Mon, 12/11/2017 - 00:00

Dersom du har en oppgave du skal gjøre flere plasser i programmet ditt eller eventuelt vil dele opp koden din for å gjøre den mer oversiktlig, kan det i mange tilfeller være meget fornuftig å skrive dine egne funksjoner. En egenbygd funksjon er et stykke kode som tar i mot "argumenter", og kan brukes flere ganger i koden med forskjellige argumenter om dette er ønskelig. I kodevinduet nedenfor har jeg skrevet en liten funksjon som tar i mot fødselsdatoen din som et argument, og returnerer alderen din som en "Long Integer".

  1. FinnAlder(fødselsdato as Date) as Long
  2. Dim alder as Long
  3. Dim dagensDato as Date
  4.  
  5. dagensDato = Date()
  6. alder = DateDiff("yyyy", fødselsdato, dagensDato)
  7. FinnAlder = alder
  8.  
  9. End Function

Funksjoner må ligge utenfor andre subs og eventer, og det er god programmeringsetikette om du samler de øverst i koden din, evt. i en egen modul, for å holde koden ryddig til eventuelle personer som skal sepå koden etter deg. DateDiff kan du lese om her.

Dersom du ønsker å kalle denne funksjonen i koden din, og vise resultatet til brukeren, kan du foreksempel kalle den slik:

Msgbox("Du er " & Cstr(FinnAlder(#01/02/1988#)) & " år gammel.") 'du kan også gi datoen til funksjonen via en vanlig variabel

Da vil den returnere alderen til brukeren i en vanlig Msgbox.