Excel VBA poskytuje množstvo vstavaných funkcií. Niektoré z týchto funkcií Excel VBA berú argumenty a niektoré nie.
Príklady funkcií Excel VBA
Tu nájdete niekoľko príkladov použitia funkcií VBA v kóde. V mnohých z týchto príkladov funkcia MsgBox zobrazuje hodnotu v okne správy. Áno, MsgBox je funkcia VBA – pomerne nezvyčajná, ale napriek tomu funkcia. Táto užitočná funkcia zobrazí správu v dialógovom okne a tiež vráti hodnotu.
Zobrazenie systémového dátumu alebo času
Prvý príklad používa funkciu Dátum VBA na zobrazenie aktuálneho systémového dátumu v okne so správou:
Sub ShowDate()
MsgBox "Dnes je: " & Dátum
End Sub
Všimnite si, že funkcia Dátum nepoužíva argument. Na rozdiel od funkcií pracovného hárka funkcia VBA bez argumentu nevyžaduje prázdnu množinu zátvoriek. V skutočnosti, ak zadáte prázdnu sadu zátvoriek, VBE ich okamžite odstráni.
Ak chcete získať systémový čas, použite funkciu Čas. A ak chcete všetko, použite funkciu Now na vrátenie dátumu aj času.
Nájdenie dĺžky reťazca
Nasledujúci postup používa funkciu VBA Len, ktorá vracia dĺžku textového reťazca. Funkcia Len má jeden argument: reťazec. Keď vykonáte tento postup, v okne správy sa zobrazí vaše meno a počet znakov vo vašom mene.
Sub GetLength()
Dim MyName As String
Dim StringLength As Long
MyName = Application.UserName
Dĺžka reťazca = Len(Moje meno)
MsgBox MyName & " má znaky " & StringLength & "."
End Sub
Výpočet dĺžky vášho mena.
Excel má aj funkciu LEN, ktorú môžete použiť vo vzorcoch pracovného hárka. Verzia programu Excel a funkcia VBA fungujú rovnako.
Zobrazenie názvu mesiaca
Nasledujúci postup používa funkciu MonthName, ktorá vracia názov mesiaca. MonthName používa jeden argument: celé číslo medzi 1 a 12.
Sub ShowMonthName()
Dim ThisMonth As Long
Tento mesiac = mesiac (dátum)
Názov mesiaca MsgBox (tento mesiac)
End Sub
Tento postup používa funkciu Mesiac na získanie aktuálneho mesiaca (ako hodnoty) a táto hodnota je priradená premennej ThisMonth. Funkcia MonthName potom skonvertuje hodnotu na text. Ak teda spustíte tento postup v apríli, v okne správy sa zobrazí text apríl.
V skutočnosti premenná ThisMonth nie je potrebná. Rovnaký efekt môžete dosiahnuť s týmto výrazom, ktorý používa tri funkcie VBA:
Názov mesiaca (Mesiac (dátum))
Tu sa aktuálny dátum odovzdá ako argument funkcii Month, ktorá vráti hodnotu, ktorá sa odovzdá ako argument funkcii MonthName.
Určenie veľkosti súboru
Nasledujúci postup Sub zobrazuje veľkosť spustiteľného súboru programu Excel v bajtoch. Túto hodnotu nájde pomocou funkcie FileLen:
Sub GetFileSize()
Dim TheFile As String
Súbor = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen(TheFile)
End Sub
Všimnite si, že táto rutina pevne zakóduje názov súboru (to znamená, že explicitne uvádza cestu). To nie je dobrý nápad. Súbor možno nie je na jednotke C alebo priečinok Excel môže mať iný názov. Nasledujúce vyhlásenie ukazuje lepší prístup:
TheFile = Application.Path & "\EXCEL.EXE"
Cesta je vlastnosť objektu Application. Jednoducho vráti názov priečinka, v ktorom je aplikácia (čiže Excel) nainštalovaná (bez spätnej lomky na konci).
Identifikácia typu vybraného objektu
Nasledujúci postup používa funkciu TypeName, ktorá vracia typ výberu na pracovnom hárku (ako reťazec):
Sub ShowSelectionType()
Stlmiť SelType ako reťazec
SelType = TypeName (výber)
MsgBox SelType
End Sub
Výberom môže byť rozsah, obrázok, obdĺžnik, oblasť grafu alebo akýkoľvek iný typ objektu, ktorý je možné vybrať.
Funkcia TypeName je veľmi všestranná. Túto funkciu môžete použiť aj na určenie typu údajov premennej.
Funkcie Excel VBA, ktoré dokážu viac ako vrátiť hodnotu
Niekoľko funkcií VBA ide nad rámec povinnosti. Namiesto jednoduchého vrátenia hodnoty majú tieto funkcie niekoľko užitočných vedľajších účinkov.
Funkcie VBA s užitočnými vedľajšími výhodami
Funkcia |
Čo to robí |
MsgBox |
Zobrazí praktické dialógové okno so správou a tlačidlami. Funkcia vráti kód, ktorý identifikuje, na ktoré tlačidlo používateľ klikol. |
InputBox |
Zobrazí jednoduché dialógové okno, ktoré používateľa požiada o zadanie. Funkcia vráti všetko, čo používateľ zadá do dialógového okna. |
Shell |
Spustí iný program. Funkcia vráti ID úlohy (jedinečný identifikátor) iného programu (alebo chybu, ak funkcia nemôže spustiť iný program). |
Objavovanie funkcií Excel VBA
Ako zistíte, ktoré funkcie VBA poskytuje? Dobrá otázka. Najlepším zdrojom je systém Excel VBA . Ďalším spôsobom je napísať VBA , za ktorým nasleduje bodka. Dostanete zoznam položiek. Tie so zelenou ikonou sú funkcie. Ak táto funkcia nefunguje, vyberte Nástroje VBE → Možnosti, kliknite na kartu Editor a začiarknite možnosť Členovia automatického zoznamu.
Spôsob zobrazenia zoznamu funkcií VBA.
Vo VBA je k dispozícii viac ako 140 rôznych funkcií. Niektoré sú také špecializované a nejasné, že ich nikdy nebudete potrebovať. Iné sú však celkom užitočné pre mnohé aplikácie.
Najužitočnejšie vstavané funkcie Excel VBA
Funkcia |
Čo to robí |
Abs |
Vráti absolútnu hodnotu čísla |
Pole |
Vráti variant obsahujúci pole |
Vyberte si |
Vráti hodnotu zo zoznamu položiek |
Chr |
Skonvertuje hodnotu ANSI na reťazec |
CurDir |
Vráti aktuálnu cestu |
Dátum |
Vráti aktuálny systémový dátum |
DateAdd |
Vráti dátum, ku ktorému bol pridaný zadaný časový interval – napríklad jeden mesiac od konkrétneho dátumu |
DateDiff |
Vráti celé číslo zobrazujúce počet zadaných časových intervalov medzi dvoma dátumami – napríklad počet mesiacov od dnešného dňa do vašich narodenín |
DatePart |
Vráti celé číslo obsahujúce zadanú časť daného dátumu – napríklad dátum dňa v roku |
DateSerial |
Skonvertuje dátum na sériové číslo |
DateValue |
Skonvertuje reťazec na dátum |
deň |
Vráti deň v mesiaci z hodnoty dátumu |
Dir |
Vráti názov súboru alebo adresára, ktorý sa zhoduje so vzorom |
Err |
Vráti číslo chyby chybového stavu |
Chyba |
Vráti chybové hlásenie, ktoré zodpovedá číslu chyby |
Exp |
Vráti základňu prirodzeného logaritmu (e) umocnenú |
FileLen |
Vráti počet bajtov v súbore |
Opraviť |
Vráti časť celého čísla |
Formátovať |
Zobrazí výraz v určitom formáte |
GetSetting |
Vráti hodnotu z registra Windows |
hodina |
Vráti hodinovú časť času |
InputBox |
Zobrazí pole na výzvu používateľa na zadanie |
InStr |
Vráti polohu reťazca v rámci iného reťazca (počítajúc od začiatku) |
InStrRev |
Vráti polohu reťazca v inom reťazci (počítajúc od konca) |
Int |
Vráti celú časť čísla |
IsArray |
Ak premenná je pole, vráti hodnotu True |
IsDate |
Vráti hodnotu True, ak je výrazom dátum |
Je prázdny |
Ak premenná nebola inicializovaná, vráti hodnotu True |
IsError |
Vráti hodnotu True, ak je výraz chybovou hodnotou |
Chýba |
Vráti hodnotu True, ak nebol do procedúry odovzdaný voliteľný argument |
IsNull |
Vráti hodnotu True, ak výraz neobsahuje žiadne platné údaje |
IsNumeric |
Vráti hodnotu True, ak výraz možno vyhodnotiť ako číslo |
LBound |
Vráti najmenší dolný index pre dimenziu poľa |
LCase |
Vráti reťazec skonvertovaný na malé písmená |
Vľavo |
Vráti zadaný počet znakov zľava od reťazca |
Len |
Vráti počet znakov v reťazci |
Stred |
Vráti zadaný počet znakov z reťazca |
Minúta |
Vráti minútovú časť časovej hodnoty |
mesiac |
Vráti mesiac z hodnoty dátumu |
MsgBox |
Zobrazí okno so správou a (voliteľne) vráti hodnotu |
Teraz |
Vráti aktuálny systémový dátum a čas |
Nahradiť |
Nahradí podreťazec v reťazci iným podreťazcom |
RGB |
Vráti číselnú hodnotu RGB predstavujúcu farbu |
Správny |
Vráti zadaný počet znakov sprava od reťazca |
Rnd |
Vráti náhodné číslo medzi 0 a 1 |
Po druhé |
Vráti sekundovú časť časovej hodnoty |
Shell |
Spustí spustiteľný program |
priestor |
Vráti reťazec so zadaným počtom medzier |
Rozdeliť |
Rozdelí reťazec na časti pomocou oddeľovacieho znaku |
Sqr |
Vráti druhú odmocninu čísla |
Reťazec |
Vráti opakujúci sa znak alebo reťazec |
čas |
Vráti aktuálny systémový čas |
Časovač |
Vráti počet sekúnd od polnoci |
TimeSerial |
Vráti čas pre zadanú hodinu, minútu a sekundu |
TimeValue |
Skonvertuje reťazec na časové sériové číslo |
Orezať |
Vráti reťazec bez medzier na začiatku alebo na konci |
TypeName |
Vráti reťazec, ktorý popisuje typ údajov premennej |
UBound |
Vráti najväčší dostupný dolný index pre dimenziu poľa |
UCase |
Skonvertuje reťazec na veľké písmená |
Val |
Vráti čísla obsiahnuté v reťazci |
všedný deň |
Vráti číslo predstavujúce deň v týždni |
rok |
Vráti rok z hodnoty dátumu |
Ak chcete získať úplné podrobnosti o konkrétnej funkcii Excel VBA , zadajte názov funkcie do modulu VBA, presuňte kurzor kdekoľvek v texte a stlačte F1.