Excel VBA ofereix nombroses funcions integrades. Algunes d'aquestes funcions d' Excel VBA prenen arguments, i altres no.
Exemples de funcions d'Excel VBA
Aquí trobareu alguns exemples d'ús de funcions VBA al codi. En molts d'aquests exemples, la funció MsgBox mostra un valor en un quadre de missatge. Sí, MsgBox és una funció VBA, una funció força inusual, però una funció tanmateix. Aquesta funció útil mostra un missatge en un quadre de diàleg i també retorna un valor.
Mostra la data o l'hora del sistema
El primer exemple utilitza la funció Data de VBA per mostrar la data actual del sistema en un quadre de missatge:
Sub ShowDate()
MsgBox "Avui és: " & Data
End Sub
Tingueu en compte que la funció Data no utilitza cap argument. A diferència de les funcions del full de treball, una funció VBA sense argument no requereix un conjunt buit de parèntesis. De fet, si escriviu un conjunt buit de parèntesis, el VBE els elimina ràpidament.
Per obtenir l'hora del sistema, utilitzeu la funció Hora. I si ho voleu tot, feu servir la funció Ara per retornar tant la data com l'hora.
Trobar una longitud de corda
El procediment següent utilitza la funció VBA Len, que retorna la longitud d'una cadena de text. La funció Len pren un argument: la cadena. Quan executeu aquest procediment, el quadre de missatge mostra el vostre nom i el nombre de caràcters del vostre nom.
Sub GetLength()
Atenua MyName com a cadena
Dim StringLength tan llarg
El meu nom = Application.UserName
StringLength = Len(MyName)
MsgBox MyName & " té caràcters " & StringLength & "".
End Sub

Càlcul de la longitud del teu nom.
Excel també té una funció LEN, que podeu utilitzar a les fórmules del vostre full de treball. La versió d'Excel i la funció VBA funcionen igual.
Mostra el nom d'un mes
El procediment següent utilitza la funció MonthName, que retorna el nom d'un mes. MonthName utilitza un argument: un nombre enter entre 1 i 12.
Sub ShowMonthName()
Dim ThisMonth As Long
ThisMonth = Mes (Data)
MsgBox MonthName (Aquest mes)
End Sub
Aquest procediment utilitza la funció Mes per obtenir el mes actual (com a valor) i aquest valor s'assigna a la variable ThisMonth. A continuació, la funció MonthName converteix el valor en text. Per tant, si executeu aquest procediment a l'abril, el quadre de missatge mostrarà el text abril.
De fet, la variable ThisMonth no és necessària. Podeu obtenir el mateix efecte amb aquesta expressió, que utilitza tres funcions VBA:
MonthName(Mes(Data))
Aquí, la data actual es passa com a argument a la funció Month, que retorna un valor que es passa com a argument a la funció MonthName.
Determinació de la mida d'un fitxer
El següent procediment Sub mostra la mida, en bytes, del fitxer executable d'Excel. Troba aquest valor mitjançant la funció FileLen:
Sub GetFileSize()
Atenua el fitxer com a cadena
TheFile = "C:\Fitxers de programa (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen (El fitxer)
End Sub
Observeu que aquesta rutina codifica el nom del fitxer (és a dir, indica explícitament el camí). Això no és una bona idea. És possible que el fitxer no estigui a la unitat C o que la carpeta Excel tingui un nom diferent. La següent afirmació mostra un millor enfocament:
TheFile = Application.Path & "\EXCEL.EXE"
Path és una propietat de l'objecte Aplicació. Simplement retorna el nom de la carpeta on està instal·lada l'aplicació (és a dir, Excel) (sense barra invertida).
Identificació del tipus d'objecte seleccionat
El procediment següent utilitza la funció TypeName, que retorna el tipus de selecció al full de treball (com a cadena):
Sub ShowSelectionType()
Dim SelType com a cadena
SelType = TypeName (Selecció)
MsgBox SelType
End Sub
La selecció pot ser un rang, una imatge, un rectangle, una àrea de gràfic o qualsevol altre tipus d'objecte que es pugui seleccionar.
La funció TypeName és molt versàtil. També podeu utilitzar aquesta funció per determinar el tipus de dades d'una variable.
Funcions d'Excel VBA que fan més que retornar un valor
Algunes funcions de VBA van més enllà del deure. En lloc de simplement retornar un valor, aquestes funcions tenen alguns efectes secundaris útils.
Funcions VBA amb avantatges secundaris útils
| Funció |
Què fa |
| MsgBox |
Mostra un quadre de diàleg pràctic que conté un missatge i botons. La funció retorna un codi que identifica quin botó fa clic l'usuari. |
| InputBox |
Mostra un quadre de diàleg senzill que demana a l'usuari alguna entrada. La funció retorna el que l'usuari introdueix al quadre de diàleg. |
| Shell |
Executa un altre programa. La funció retorna l' ID de la tasca (un identificador únic) de l'altre programa (o un error si la funció no pot iniciar l'altre programa). |
Descobrint les funcions d'Excel VBA
Com esbrineu quines funcions ofereix VBA? Bona pregunta. La millor font és el sistema Excel VBA . Una altra manera és escriure VBA , seguit d'un punt. Obtindreu una llista d'elements. Els que tenen una icona verda són funcions. Si aquesta funció no funciona, seleccioneu Eines → Opcions de VBE, feu clic a la pestanya Editor i marqueu l'opció Membres de la llista automàtica.
![Com utilitzar les funcions VBA integrades d'Excel]()
Una manera de mostrar una llista de funcions de VBA.
Hi ha més de 140 funcions diferents disponibles a VBA. Alguns són tan especialitzats i obscurs que mai els necessitareu. Altres, però, són força útils per a moltes aplicacions.
Les funcions integrades més útils d'Excel VBA
| Funció |
Què fa |
| Abs |
Retorna el valor absolut d'un nombre |
| Matriu |
Retorna una variant que conté una matriu |
| Tria |
Retorna un valor d'una llista d'elements |
| Chr |
Converteix un valor ANSI en una cadena |
| CurDir |
Retorna el camí actual |
| Data |
Retorna la data actual del sistema |
| DataAfegir |
Retorna una data a la qual s'ha afegit un interval de temps especificat, per exemple, un mes a partir d'una data concreta |
| DataDiff |
Retorna un nombre enter que mostra el nombre d'intervals de temps especificats entre dues dates, per exemple, el nombre de mesos entre ara i el vostre aniversari. |
| DataPart |
Retorna un nombre enter que conté la part especificada d'una data determinada, per exemple, el dia d'una data de l'any |
| DataSerial |
Converteix una data en un número de sèrie |
| DataValue |
Converteix una cadena en una data |
| Dia |
Retorna el dia del mes a partir d'un valor de data |
| Dir |
Retorna el nom d'un fitxer o directori que coincideix amb un patró |
| Err |
Retorna el número d'error d'una condició d'error |
| Error |
Retorna el missatge d'error que correspon a un número d'error |
| Exp |
Retorna la base del logaritme natural (e) elevada a una potència |
| FileLen |
Retorna el nombre de bytes d'un fitxer |
| Arreglar |
Retorna la part entera d'un nombre |
| Format |
Mostra una expressió en un format determinat |
| GetSetting |
Retorna un valor del registre de Windows |
| Hores |
Retorna la part horaria d'un temps |
| InputBox |
Mostra un quadre per demanar a l'usuari que introdueixi |
| InStr |
Retorna la posició d'una cadena dins d'una altra cadena (comptant des del principi) |
| InStrRev |
Retorna la posició d'una cadena dins d'una altra cadena (comptant des del final) |
| Int |
Retorna la part entera d'un nombre |
| IsArray |
Retorna True si una variable és una matriu |
| IsDate |
Retorna True si una expressió és una data |
| Està buit |
Retorna True si no s'ha inicialitzat una variable |
| IsError |
Retorna True si una expressió és un valor d'error |
| Està perdut |
Retorna True si no s'ha passat un argument opcional a un procediment |
| És Null |
Retorna True si una expressió no conté dades vàlides |
| IsNumeric |
Retorna True si una expressió es pot avaluar com a nombre |
| LBound |
Retorna el subíndex més petit per a una dimensió d'una matriu |
| LCase |
Retorna una cadena convertida en minúscules |
| Esquerra |
Retorna un nombre especificat de caràcters des de l'esquerra d'una cadena |
| Len |
Retorna el nombre de caràcters d'una cadena |
| Mitjana |
Retorna un nombre especificat de caràcters d'una cadena |
| Minut |
Retorna la part dels minuts d'un valor de temps |
| Mes |
Retorna el mes a partir d'un valor de data |
| MsgBox |
Mostra un quadre de missatge i (opcionalment) retorna un valor |
| Ara |
Retorna la data i l'hora actuals del sistema |
| Substitueix |
Substitueix una subcadena d'una cadena per una altra subcadena |
| RGB |
Retorna un valor numèric RGB que representa un color |
| Dret |
Retorna un nombre especificat de caràcters a la dreta d'una cadena |
| Rnd |
Retorna un nombre aleatori entre 0 i 1 |
| Segon |
Retorna la part de segons d'un valor de temps |
| Shell |
Executa un programa executable |
| Espai |
Retorna una cadena amb un nombre d'espais especificat |
| Dividir |
Divideix una cadena en parts, utilitzant un caràcter delimitador |
| Sqr |
Retorna l'arrel quadrada d'un nombre |
| Corda |
Retorna un caràcter o cadena que es repeteix |
| Temps |
Retorna l'hora actual del sistema |
| Temporitzador |
Retorna el nombre de segons des de la mitjanit |
| Serial temporal |
Retorna l'hora d'una hora, un minut i un segon especificats |
| TimeValue |
Converteix una cadena en un número de sèrie temporal |
| Tallar |
Retorna una cadena sense espais inicials ni finals |
| TypeName |
Retorna una cadena que descriu el tipus de dades d'una variable |
| UBound |
Retorna el subíndex més gran disponible per a la dimensió d'una matriu |
| UCase |
Converteix una cadena en majúscules |
| Val |
Retorna els números continguts en una cadena |
| Dia laborable |
Retorna un número que representa un dia de la setmana |
| Curs |
Retorna l'any a partir d'un valor de data |
Per obtenir detalls complets sobre una funció concreta de VBA d'Excel , escriviu el nom de la funció en un mòdul VBA, moveu el cursor a qualsevol lloc del text i premeu F1.