Excel VBA har många inbyggda funktioner. Vissa av dessa Excel VBA- funktioner tar argument, och andra inte.
Excel VBA-funktionsexempel
Här hittar du några exempel på hur du använder VBA-funktioner i kod. I många av dessa exempel visar MsgBox-funktionen ett värde i en meddelanderuta. Ja, MsgBox är en VBA-funktion - en ganska ovanlig, men en funktion ändå. Denna användbara funktion visar ett meddelande i en dialogruta och returnerar även ett värde.
Visar systemets datum eller tid
Det första exemplet använder VBA:s datumfunktion för att visa aktuellt systemdatum i en meddelanderuta:
Sub ShowDate()
MsgBox "Idag är: " & Datum
Avsluta Sub
Observera att funktionen Datum inte använder ett argument. Till skillnad från kalkylbladsfunktioner kräver en VBA-funktion utan argument inte en tom uppsättning parenteser. Faktum är att om du skriver en tom uppsättning parenteser tar VBE bort dem omedelbart.
För att få systemtiden, använd funktionen Tid. Och om du vill ha allt, använd Nu-funktionen för att returnera både datum och tid.
Hitta en stränglängd
Följande procedur använder funktionen VBA Len, som returnerar längden på en textsträng. Len-funktionen tar ett argument: strängen. När du utför den här proceduren visar meddelanderutan ditt namn och antalet tecken i ditt namn.
Sub GetLength()
Dim mitt namn som sträng
Dim StringLength As Long
MyName = Application.UserName
StringLength = Len(MyName)
MsgBox MyName & " har " & StringLength & " tecken."
Avsluta Sub

Beräknar längden på ditt namn.
Excel har också en LEN-funktion, som du kan använda i dina kalkylbladsformler. Excel-versionen och VBA-funktionen fungerar på samma sätt.
Visar namnet på en månad
Följande procedur använder funktionen MonthName, som returnerar namnet på en månad. MonthName använder ett argument: ett heltal mellan 1 och 12.
Sub ShowMonthName()
Dimma denna månad så länge
Denna månad = månad (datum)
MsgBox MonthName(ThisMonth)
Avsluta Sub
Denna procedur använder månadsfunktionen för att få den aktuella månaden (som ett värde), och detta värde tilldelas variabeln ThisMonth. Funktionen MonthName konverterar sedan värdet till text. Så om du kör den här proceduren i april, visar meddelanderutan texten april.
Egentligen krävs inte variabeln ThisMonth. Du kan få samma effekt med detta uttryck, som använder tre VBA-funktioner:
MonthName(Month(Datum))
Här skickas det aktuella datumet som ett argument till funktionen Month, vilket returnerar ett värde som skickas som ett argument till funktionen MonthName.
Bestämma en filstorlek
Följande underprocedur visar storleken, i byte, på den körbara Excel-filen. Den hittar detta värde genom att använda FileLen-funktionen:
Sub GetFileSize()
Dimma filen som sträng
TheFile = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen(TheFile)
Avsluta Sub
Lägg märke till att denna rutin hårdkodar filnamnet (det vill säga anger sökvägen). Det här är ingen bra idé. Filen kanske inte finns på C-enheten, eller så kan Excel-mappen ha ett annat namn. Följande uttalande visar ett bättre tillvägagångssätt:
TheFile = Application.Path & "\EXCEL.EXE"
Sökväg är en egenskap hos Application-objektet. Det returnerar helt enkelt namnet på mappen där programmet (det vill säga Excel) är installerat (utan ett bakåtstreck).
Identifiera typen av ett valt objekt
Följande procedur använder funktionen Typnamn, som returnerar typen av urval på kalkylbladet (som en sträng):
Sub ShowSelectionType()
Dim SelType As String
SelType = Typnamn(Utval)
MsgBox SelType
Avsluta Sub
Valet kan vara ett område, en bild, en rektangel, ett diagramområde eller någon annan typ av objekt som kan väljas.
Typnamn-funktionen är mycket mångsidig. Du kan också använda den här funktionen för att bestämma datatypen för en variabel.
Excel VBA-funktioner som gör mer än att returnera ett värde
Några få VBA-funktioner går utöver call of duty. Istället för att bara returnera ett värde har dessa funktioner några användbara biverkningar.
VBA-funktioner med användbara sidofördelar
| Fungera |
Vad den gör |
| MsgBox |
Visar en praktisk dialogruta som innehåller ett meddelande och knappar. Funktionen returnerar en kod som identifierar vilken knapp användaren klickar på. |
| Inmatningslåda |
Visar en enkel dialogruta som ber användaren om lite input. Funktionen returnerar allt som användaren anger i dialogrutan. |
| Skal |
Kör ett annat program. Funktionen returnerar uppgifts-ID (en unik identifierare) för det andra programmet (eller ett fel om funktionen inte kan starta det andra programmet). |
Upptäck Excel VBA-funktioner
Hur tar man reda på vilka funktioner VBA tillhandahåller? Bra fråga. Den bästa källan är Excel VBA-systemet . Ett annat sätt är att skriva VBA följt av en punkt. Du får en lista med föremål. De med en grön ikon är funktioner. Om den här funktionen inte fungerar, välj VBE:s Verktyg → Alternativ, klicka på fliken Editor och placera en bock bredvid Auto List Members.

Ett sätt att visa en lista över VBA-funktioner.
Det finns över 140 olika funktioner tillgängliga i VBA. Vissa är så specialiserade och oklara att du aldrig kommer att behöva dem. Andra är dock ganska användbara för många applikationer.
Excel VBA:s mest användbara inbyggda funktioner
| Fungera |
Vad den gör |
| Magmuskler |
Returnerar ett tals absoluta värde |
| Array |
Returnerar en variant som innehåller en array |
| Välja |
Returnerar ett värde från en lista med objekt |
| Chr |
Konverterar ett ANSI-värde till en sträng |
| CurDir |
Returnerar den aktuella sökvägen |
| Datum |
Returnerar aktuellt systemdatum |
| Lägg till datum |
Returnerar ett datum till vilket ett angivet tidsintervall har lagts till - till exempel en månad från ett visst datum |
| DateDiff |
Returnerar ett heltal som visar antalet angivna tidsintervall mellan två datum – till exempel antalet månader mellan nu och din födelsedag |
| DatePart |
Returnerar ett heltal som innehåller den angivna delen av ett givet datum - till exempel ett datums dag på året |
| DateSerial |
Konverterar ett datum till ett serienummer |
| DatumValue |
Konverterar en sträng till ett datum |
| Dag |
Returnerar dagen i månaden från ett datumvärde |
| Dir |
Returnerar namnet på en fil eller katalog som matchar ett mönster |
| Fela |
Returnerar felnumret för ett feltillstånd |
| Fel |
Returnerar felmeddelandet som motsvarar ett felnummer |
| Exp |
Returnerar basen för den naturliga logaritmen (e) upphöjd till en potens |
| FileLen |
Returnerar antalet byte i en fil |
| Fixera |
Returnerar ett tals heltalsdel |
| Formatera |
Visar ett uttryck i ett visst format |
| GetSetting |
Returnerar ett värde från Windows-registret |
| Timme |
Returnerar timdelen av en tid |
| Inmatningslåda |
Visar en ruta för att uppmana en användare att skriva in |
| InStr |
Returnerar positionen för en sträng inom en annan sträng (räknat från början) |
| InStrRev |
Returnerar positionen för en sträng inom en annan sträng (räknat från slutet) |
| Int |
Returnerar heltalsdelen av ett tal |
| IsArray |
Returnerar True om en variabel är en matris |
| IsDate |
Returnerar True om ett uttryck är ett datum |
| Är tom |
Returnerar True om en variabel inte har initierats |
| IsError |
Returnerar True om ett uttryck är ett felvärde |
| Saknas |
Returnerar True om ett valfritt argument inte skickades till en procedur |
| Är inget |
Returnerar True om ett uttryck inte innehåller några giltiga data |
| IsNumeric |
Returnerar True om ett uttryck kan utvärderas som ett tal |
| LBound |
Returnerar den minsta nedsänkta för en dimension av en matris |
| LCase |
Returnerar en sträng konverterad till gemener |
| Vänster |
Returnerar ett specificerat antal tecken från vänster om en sträng |
| Len |
Returnerar antalet tecken i en sträng |
| Mitten |
Returnerar ett angivet antal tecken från en sträng |
| Minut |
Returnerar minutdelen av ett tidsvärde |
| Månad |
Returnerar månaden från ett datumvärde |
| MsgBox |
Visar en meddelanderuta och (valfritt) returnerar ett värde |
| Nu |
Returnerar det aktuella systemets datum och tid |
| Byta ut |
Ersätter en delsträng i en sträng med en annan delsträng |
| RGB |
Returnerar ett numeriskt RGB-värde som representerar en färg |
| Höger |
Returnerar ett angivet antal tecken från höger om en sträng |
| Rnd |
Returnerar ett slumptal mellan 0 och 1 |
| Andra |
Returnerar sekunderdelen av ett tidsvärde |
| Skal |
Kör ett körbart program |
| Plats |
Returnerar en sträng med ett angivet antal blanksteg |
| Dela |
Delar upp en sträng i delar med ett avgränsande tecken |
| Sqr |
Returnerar kvadratroten av ett tal |
| Sträng |
Returnerar ett upprepande tecken eller sträng |
| Tid |
Returnerar aktuell systemtid |
| Timer |
Returnerar antalet sekunder sedan midnatt |
| TimeSerial |
Returnerar tiden för en angiven timme, minut och sekund |
| Tidsvärde |
Konverterar en sträng till ett tidsserienummer |
| Trim |
Returnerar en sträng utan inledande eller efterföljande mellanslag |
| Typnamn |
Returnerar en sträng som beskriver en variabels datatyp |
| UBound |
Returnerar den största tillgängliga nedsänkningen för en arrays dimension |
| UCase |
Konverterar en sträng till versaler |
| Val |
Returnerar talen som finns i en sträng |
| Veckodag |
Returnerar ett tal som representerar en veckodag |
| År |
Returnerar året från ett datumvärde |
För fullständig information om en viss Excel VBA-funktion , skriv in funktionsnamnet i en VBA-modul, flytta markören var som helst i texten och tryck på F1.