Excel VBA har en rekke innebygde funksjoner. Noen av disse Excel VBA- funksjonene tar argumenter, og noen gjør det ikke.
Eksempler på Excel VBA-funksjoner
Her finner du noen få eksempler på bruk av VBA-funksjoner i kode. I mange av disse eksemplene viser MsgBox-funksjonen en verdi i en meldingsboks. Ja, MsgBox er en VBA-funksjon - en ganske uvanlig en, men en funksjon likevel. Denne nyttige funksjonen viser en melding i en dialogboks og returnerer også en verdi.
Viser systemdato eller klokkeslett
Det første eksemplet bruker VBAs datofunksjon for å vise gjeldende systemdato i en meldingsboks:
Sub ShowDate()
MsgBox "I dag er: " & Dato
End Sub
Legg merke til at datofunksjonen ikke bruker et argument. I motsetning til regnearkfunksjoner, krever ikke en VBA-funksjon uten argument et tomt sett med parenteser. Faktisk, hvis du skriver inn et tomt sett med parenteser, fjerner VBE dem umiddelbart.
For å få systemtiden, bruk Time-funksjonen. Og hvis du vil ha alt, bruk nå-funksjonen for å returnere både dato og klokkeslett.
Finne en strenglengde
Følgende prosedyre bruker VBA Len-funksjonen, som returnerer lengden på en tekststreng. Len-funksjonen tar ett argument: strengen. Når du utfører denne prosedyren, viser meldingsboksen navnet ditt og antall tegn i navnet ditt.
Sub GetLength()
Dim mitt navn som streng
Dim strenglengde så lenge
Mitt navn = Application.UserName
StringLength = Len(Mitt navn)
MsgBox MyName & " har " & StringLength & " tegn."
End Sub
Beregner lengden på navnet ditt.
Excel har også en LEN-funksjon, som du kan bruke i regnearkformlene. Excel-versjonen og VBA-funksjonen fungerer på samme måte.
Viser navnet på en måned
Følgende prosedyre bruker funksjonen MonthName, som returnerer navnet på en måned. MonthName bruker ett argument: et heltall mellom 1 og 12.
Sub ShowMonthName()
Dim denne måneden så lenge
Denne måneden = måned(dato)
MsgBox MonthName (This Month)
End Sub
Denne prosedyren bruker månedsfunksjonen for å få gjeldende måned (som en verdi), og denne verdien er tilordnet ThisMonth-variabelen. MonthName-funksjonen konverterer deretter verdien til tekst. Så hvis du kjører denne prosedyren i april, viser meldingsboksen teksten april.
Egentlig er ThisMonth-variabelen ikke nødvendig. Du kan få samme effekt med dette uttrykket, som bruker tre VBA-funksjoner:
Månedsnavn(Måned(dato))
Her sendes gjeldende dato som et argument til månedsfunksjonen, som returnerer en verdi som sendes som et argument til funksjonen månedsnavn.
Bestemme en filstørrelse
Følgende underprosedyre viser størrelsen, i byte, til den kjørbare Excel-filen. Den finner denne verdien ved å bruke FileLen-funksjonen:
Sub GetFileSize()
Demp filen som streng
TheFile = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen(TheFile)
End Sub
Legg merke til at denne rutinen hardkoder filnavnet (det vil si eksplisitt angir banen). Dette er ingen god idé. Filen er kanskje ikke på C-stasjonen, eller Excel-mappen kan ha et annet navn. Følgende uttalelse viser en bedre tilnærming:
TheFile = Application.Path & "\EXCEL.EXE"
Banen er en egenskap for applikasjonsobjektet. Den returnerer ganske enkelt navnet på mappen der applikasjonen (det vil si Excel) er installert (uten etterfølgende skråstrek).
Identifisere typen til et valgt objekt
Følgende prosedyre bruker TypeName-funksjonen, som returnerer typen til utvalget på regnearket (som en streng):
Sub ShowSelectionType()
Dim SelType As String
SelType = Typenavn(Utvalg)
MsgBox SelType
End Sub
Utvalget kan være et område, et bilde, et rektangel, et kartområde eller en hvilken som helst annen type objekt som kan velges.
TypeName-funksjonen er veldig allsidig. Du kan også bruke denne funksjonen til å bestemme datatypen til en variabel.
Excel VBA-funksjoner som gjør mer enn å returnere en verdi
Noen få VBA-funksjoner går utover call of duty. I stedet for bare å returnere en verdi, har disse funksjonene noen nyttige bivirkninger.
VBA-funksjoner med nyttige sidefordeler
Funksjon |
Hva det gjør |
MsgBox |
Viser en praktisk dialogboks som inneholder en melding og knapper. Funksjonen returnerer en kode som identifiserer hvilken knapp brukeren klikker. |
Inndataboks |
Viser en enkel dialogboks som ber brukeren om innspill. Funksjonen returnerer det brukeren skriver inn i dialogboksen. |
Shell |
Utfører et annet program. Funksjonen returnerer oppgave-IDen (en unik identifikator) til det andre programmet (eller en feil hvis funksjonen ikke kan starte det andre programmet). |
Oppdage Excel VBA-funksjoner
Hvordan finner du ut hvilke funksjoner VBA gir? Godt spørsmål. Den beste kilden er Excel VBA-systemet . En annen måte er å skrive VBA , etterfulgt av et punktum. Du får en liste over elementer. De med et grønt ikon er funksjoner. Hvis denne funksjonen ikke fungerer, velg VBEs Verktøy → Alternativer, klikk på Editor-fanen og sett av ved siden av Auto List Members.
En måte å vise en liste over VBA-funksjoner på.
Det er over 140 forskjellige funksjoner tilgjengelig i VBA. Noen er så spesialiserte og obskure at du aldri trenger dem. Andre er imidlertid ganske nyttige for mange applikasjoner.
Excel VBAs mest nyttige innebygde funksjoner
Funksjon |
Hva det gjør |
Abs |
Returnerer et talls absolutte verdi |
Array |
Returnerer en variant som inneholder en matrise |
Velge |
Returnerer en verdi fra en liste over elementer |
Chr |
Konverterer en ANSI-verdi til en streng |
CurDir |
Returnerer gjeldende bane |
Dato |
Returnerer gjeldende systemdato |
DateAdd |
Returnerer en dato som et spesifisert tidsintervall er lagt til - for eksempel en måned fra en bestemt dato |
DatoDiff |
Returnerer et heltall som viser antall spesifiserte tidsintervaller mellom to datoer – for eksempel antall måneder mellom nå og bursdagen din |
DatoPart |
Returnerer et heltall som inneholder den angitte delen av en gitt dato - for eksempel en dato i året |
DateSerial |
Konverterer en dato til et serienummer |
Datoverdi |
Konverterer en streng til en dato |
Dag |
Returnerer dagen i måneden fra en datoverdi |
Dir |
Returnerer navnet på en fil eller katalog som samsvarer med et mønster |
Err |
Returnerer feilnummeret til en feiltilstand |
Feil |
Returnerer feilmeldingen som tilsvarer et feilnummer |
Exp |
Returnerer basen til den naturlige logaritmen (e) hevet til en potens |
FileLen |
Returnerer antall byte i en fil |
Fastsette |
Returnerer et talls heltallsdel |
Format |
Viser et uttrykk i et bestemt format |
GetSetting |
Returnerer en verdi fra Windows-registret |
Time |
Returnerer timedelen av en tid |
Inndataboks |
Viser en boks for å be en bruker om inndata |
InStr |
Returnerer posisjonen til en streng i en annen streng (teller fra starten) |
InStrRev |
Returnerer posisjonen til en streng i en annen streng (teller fra slutten) |
Int |
Returnerer heltallsdelen av et tall |
IsArray |
Returnerer True hvis en variabel er en matrise |
IsDate |
Returnerer True hvis et uttrykk er en dato |
Er tom |
Returnerer True hvis en variabel ikke er initialisert |
Error |
Returnerer True hvis et uttrykk er en feilverdi |
Mangler |
Returnerer True hvis et valgfritt argument ikke ble sendt til en prosedyre |
IsNull |
Returnerer True hvis et uttrykk ikke inneholder gyldige data |
IsNumeric |
Returnerer True hvis et uttrykk kan evalueres som et tall |
LBound |
Returnerer det minste subskriptet for en dimensjon til en matrise |
LCase |
Returnerer en streng konvertert til små bokstaver |
Venstre |
Returnerer et spesifisert antall tegn fra venstre i en streng |
Len |
Returnerer antall tegn i en streng |
Midt |
Returnerer et spesifisert antall tegn fra en streng |
Minutt |
Returnerer minuttdelen av en tidsverdi |
Måned |
Returnerer måneden fra en datoverdi |
MsgBox |
Viser en meldingsboks og returnerer (valgfritt) en verdi |
Nå |
Returnerer gjeldende systemdato og -klokkeslett |
Erstatte |
Erstatter en delstreng i en streng med en annen delstreng |
RGB |
Returnerer en numerisk RGB-verdi som representerer en farge |
Ikke sant |
Returnerer et spesifisert antall tegn fra høyre for en streng |
Rnd |
Returnerer et tilfeldig tall mellom 0 og 1 |
Sekund |
Returnerer sekunddelen av en tidsverdi |
Shell |
Kjører et kjørbart program |
Rom |
Returnerer en streng med et spesifisert antall mellomrom |
Dele |
Deler en streng i deler ved å bruke et skilletegn |
Sqr |
Returnerer kvadratroten til et tall |
String |
Returnerer et repeterende tegn eller en streng |
Tid |
Returnerer gjeldende systemtid |
Timer |
Returnerer antall sekunder siden midnatt |
TimeSerial |
Returnerer tiden for en spesifisert time, minutt og sekund |
Tidsverdi |
Konverterer en streng til et tidsserienummer |
Listverk |
Returnerer en streng uten innledende eller etterfølgende mellomrom |
Typenavn |
Returnerer en streng som beskriver en variabels datatype |
UBound |
Returnerer det største tilgjengelige subskriptet for en matrises dimensjon |
UCase |
Konverterer en streng til store bokstaver |
Val |
Returnerer tallene i en streng |
Ukedag |
Returnerer et tall som representerer en ukedag |
År |
Returnerer året fra en datoverdi |
For fullstendige detaljer om en bestemt Excel VBA-funksjon , skriv inn funksjonsnavnet i en VBA-modul, flytt markøren hvor som helst i teksten og trykk F1.