Función Format

Devuelve un valor Variant (String) que contiene una expresión con formato de acuerdo a las instrucciones que se encuentran en una expresión de formato.

Nota:

¿Le interesa el desarrollo de soluciones que amplían la experiencia de Office en varias plataformas? Vea el nuevo modelo de complementos de Office. Los complementos de Office tienen una huella pequeña en comparación con los complementos y soluciones de VSTO, y se pueden construir utilizando casi cualquier tecnología de programación web, como HTML5, JavaScript, CSS3 y XML.

Sintaxis

Format(Expression, [ Format ], [ FirstDayOfWeek ], [ FirstWeekOfYear ])

La sintaxis de la función Format tiene las siguientes partes:

Parte Descripción
Expression Obligatorio. Cualquier expresión válida.
Format Opcional. Expresión de formato con nombre o definida por el usuario válida.
FirstDayOfWeek Opcional. Constante que especifica el primer día de la semana.
FirstWeekOfYear Opcional. Constante que especifica la primera semana del año.

Configuración

El argumentofirstdayofweek tiene esta configuración.

Constante Valor Descripción
vbUseSystem 0 Se usa la configuración NLS API (compatibilidad con el idioma nacional).
vbSunday 1 Domingo (valor predeterminado)
vbMonday 2 lunes
vbTuesday 3 martes
vbWednesday 4 miércoles
vbThursday 5 jueves
vbFriday 6 viernes
vbSaturday 7 Sábado

El argumentofirstweekofyear tiene esta configuración.

Constante Valor Descripción
vbUseSystem 0 Se usa la configuración NLS API (compatibilidad con el idioma nacional).
vbFirstJan1 1 Se comienza con la semana en la que transcurre el 1 enero (predeterminado).
vbFirstFourDays 2 Se comienza con la primera semana que tenga como mínimo cuatro días en el año.
vbFirstFullWeek 3 Se comienza con la primera semana completa del año.

Observaciones

Para dar formato a Haga esto
Números Use formatos numéricos predefinidos con nombre o cree formatos numéricos definidos por el usuario.
Fechas y horas Use formatos predefinidos de fecha y hora con nombre o cree formatos de fecha y hora definidos por el usuario.
Números de serie de fecha y hora Use formatos de fecha y hora o formatos numéricos.
Cadenas Cree sus propios formatos de cadena definidos por el usuario.

El formato truncas formato a 257 caracteres.

Si intenta dar formato a un número sin especificar formato, Format proporciona funciones similares a las de la función Str, aunque dependerá de la configuración regional. Sin embargo, los números positivos con formato de cadenas que usan Format no incluyen un espacio inicial reservado para el signo del valor; aquellos convertidos mediante Str conservan el espacio inicial.

Si está dando formato a una cadena numérica no localizada, debería usar un formato numérico definido por el usuario para garantizar que obtiene el aspecto que desea.

Nota:

Si el valor de la propiedad Calendar propiedad es Gregorian y el formato especifica un formato de fecha, la expresión proporcionada debe ser Gregorian. Si el valor de la propiedad Calendario de Visual Basic es Hijri, la expresión proporcionada debe ser Hijri.

Si el calendario gregoriano, el significado de los símbolos de la expresión formato no cambia. Si el calendario es Hijri, todos los símbolos de formato de fecha (por ejemplo, dddd, mmmm, yyyy ) tienen el mismo significado pero se aplican al calendario Hijri. Los símbolos de formato se quedan en inglés. Los símbolos que presentan texto (por ejemplo, A. M. y P. M.) muestran la cadena (inglés o árabe) asociada con dicho símbolo. El intervalo de determinados símbolos cambia cuando el calendario es Hijri.

Símbolos de fecha

Símbolo Rango
d 1-31 (día del mes, sin cero inicial)
dd 01-31 (día del mes, con cero inicial)
w 1-7 (día de la semana, comenzando por el domingo = 1)
ww 1-53 (semana del año, sin cero inicial; la semana 1 empieza el 1 de enero)
m 1-12 (mes del año, sin cero inicial, comenzando por enero = 1)
mm 01-12 (mes del año, con cero inicial, comenzando por enero = 01)
mmm Muestra los nombres de meses abreviados (los nombres de los meses Hijri no tienen abreviaturas).
mmmm Muestra los nombres de meses completos
y 1-366 (día del año)
yy 00-99 (dos últimos dígitos del año)
yyyy 100-9999 (año de tres o cuatro dígitos)

Símbolos de hora

Símbolo Rango
h 0-23 (1-12 con "A. M." o "P. M." anexados) (hora del día, sin cero inicial)
hh 00-23 (01-12 con "A. M." o "P. M." anexados) (hora del día, con un cero inicial)
n 0-59 (minuto de hora, sin cero inicial)
nn 00-59 (minuto de hora, con cero inicial)
m 0-59 (minuto de hora, sin cero inicial). Solo si está precedido por h o hh
mm 00-59 (minuto de hora, con cero inicial). Solo si está precedido por h o hh
s 0-59 (segundo de minuto, sin cero inicial).
ss 00-59 (segundo de minuto, con cero inicial).

Ejemplo

En este ejemplo se muestran distintos usos de la función Format para dar formato a valores usando tanto formatos con nombre como formatos definidos por el usuario. En el caso del separador de fechas (/), el separador de hora (:) y el literal de A. M./P. M., el resultado con formato real mostrado por el sistema depende de la configuración regional en la que se esté ejecutando el código. Cuando se muestran fechas y horas en el entorno de desarrollo, se usan los formatos cortos de fecha y hora de la configuración regional del código. Cuando se muestran en el código en ejecución, se usan los formatos cortos de fecha y hora de la configuración regional del sistema, que puede ser diferente de la configuración regional del código. Para este ejemplo, se asume inglés / EE.UU.. MyTime y MyDate se muestran en el entorno de desarrollo con las configuraciones cortas de fecha y hora del sistema actual.

Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#

' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")

' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")

MyStr = Format(MyTime, "h:m:s")    ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss am/pm")    ' Returns "05:04:23 pm".
MyStr = Format(MyTime, "hh:mm:ss AM/PM")    ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy")    ' Returns "Wednesday, Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23)    ' Returns "23".

' User-defined formats.
MyStr = Format(5459.4, "##,##0.00")    ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00")    ' Returns "334.90".
MyStr = Format(5, "0.00%")    ' Returns "500.00%".
MyStr = Format("HELLO", "<")    ' Returns "hello".
MyStr = Format("This is it", ">")    ' Returns "THIS IS IT".

Diferentes formatos para valores numéricos distintos

Una expresión formato definida por el usuario para números puede tener entre uno y cuatro secciones separadas por punto y coma. Si el argumento de formato contiene uno de los formatos numéricos con nombre, se permite una única sección.

Si usa El resultado es
Solo una sección La expresión de formato se aplica a todos los valores.
Dos secciones La primera sección se aplica a valores positivos y ceros, la segunda a valores negativos.
Tres secciones La primera sección se aplica a valores positivos, la segunda a valores negativos y la tercer a ceros.
Cuatro secciones La primera sección se aplica a valores positivos, la segunda a valores negativos, la tercera a ceros y la cuarta a valores Null.
"$#,##0;($#,##0)"

Si incluye puntos y coma sin nada entre ellos, la sección faltante se imprime con el formato del valor positivo. Por ejemplo, el siguiente formato muestra los valores positivos y negativos con el formato de la primera sección y muestra "Cero" si el valor es cero.

"$#,##0;;\Z\e\r\o"

Diferentes formatos para valores de cadena distintos

Una expresión de formato para cadenas puede tener una sección o dos secciones separadas por un punto y coma (;).

Si usa El resultado es
Solo una sección El formato se aplica a todos los datos de cadena.
Dos secciones La primera sección se aplica a los datos de cadena, la segunda a valores Null y cadenas de longitud cero ("").

Formatos de fecha y hora con nombre

La siguiente tabla identifica los nombres de formato de fecha y hora predefinidos.

Nombre de formato Descripción
General Date Muestra una fecha y/o hora, por ejemplo, 4/3/93 05:34 P. M.. Si no hay ninguna parte fraccionaria, muestra solo una fecha, por ejemplo, 4/3/93. Si no hay parte entera, muestra solo la hora, por ejemplo, 05:34 P. M.. La presentación de la fecha depende de la configuración del sistema.
Long Date Muestra una fecha de acuerdo con el formato de fecha larga del sistema.
Medium Date Muestra una fecha con el formato de fecha mediana apropiado para la versión del lenguaje de la aplicación host.
Short Date Muestra una fecha con el formato de fecha corta del sistema.
Long Time Muestra una hora con el formato de hora larga del sistema; incluye horas, minutos, segundos.
Medium Time Muestra la hora con formato de 12 horas con horas y minutos, y el designador AM/PM.
Short Time Muestra una hora con el formato de 24 horas, por ejemplo, 17:45.

Formatos numéricos con nombre

La siguiente tabla identifica los nombres de formato numérico predefinidos.

Nombre de formato Descripción
General Number Muestra el número sin separador de miles.
Currency Muestra el número con el separador de miles, si corresponde; muestra dos dígitos a la derecha del separador decimal. El resultado depende de la configuración regional del sistema.
Fixed Muestra el menos un digito a la izquierda y dos dígitos a la derecha del separador decimal.
Standard Muestra el número con el separador de miles, al menos un dígito a la izquierda y dos dígitos a la derecha del separador decimal.
Percent Muestra un número multiplicado por 100 con un signo de porcentaje (%) anexado a la derecha; siempre muestra dos dígitos a la derecha del separador decimal.
Scientific Usa la notación científica estándar.
Yes/No Muestra No si el número es 0; de lo contrario, muestra Yes.
True/False Muestra False si el número es 0; de lo contrario, muestra True.
On/Off Muestra Off si el número es 0; de lo contrario, muestra On.

Formatos de cadena definidos por el usuario

Use los siguientes caracteres para crear una expresión de formato para cadenas.

Carácter Descripción
@ Marcador de posición de carácter. Muestra un carácter o un espacio. Si la cadena tiene un carácter en la posición en la que aparece la almohadilla (@) en la cadena de formato, lo muestra; de lo contrario, muestra un espacio en esa posición. Los marcadores de posición se rellenan de derecha a izquierda, a menos que haya un carácter de signo de exclamación (!) en la cadena de formato.
& Marcador de posición de carácter. Muestra un carácter o nada. Si la cadena tiene un carácter en la posición en la que aparece la Y comercial (&), lo muestra; de lo contrario, no muestra nada. Los marcadores de posición se rellenan de derecha a izquierda, a menos que haya un carácter de signo de exclamación (!) en la cadena de formato.
< Fuerza minúsculas. Muestra todos los caracteres en minúsculas.
> Fuerza mayúsculas. Muestra todos los caracteres en mayúsculas.
! Fuerza el relleno de marcadores de posición de izquierda a derecha. El comportamiento predeterminado es rellenar los marcadores de posición de derecha a izquierda.

Formatos de fecha y hora definidos por el usuario

En la siguiente tabla se identifican los caracteres que puede usar para crear formatos de fecha/hora definidos por el usuario.

Carácter Descripción
(:) Separador de fecha. En algunas configuraciones regionales, pueden usarse otros caracteres para representar el separador de hora. El separador de hora separa horas, minutos y segundos cuando se da formato a valores de hora. El carácter real utilizado como separador de hora en el resultado con formato depende de la configuración del sistema.
(/) Separador de fecha. En algunas configuraciones regionales, pueden usarse otros caracteres para representar el separador de fecha. El separador de fecha separa el día, mes y año cuando se da formato a valores de fecha. El carácter real utilizado como separador de fecha en el resultado con formato depende de la configuración del sistema.
c Muestra la fecha como ddddd y muestra la hora como ttttt, en ese orden. Muestra solo la información de fecha si no hay una parte fraccionaria en el número de serie de la fecha; se muestra solo la información de hora si no hay una parte entera.
d Muestra el día como un número sin un cero inicial (1–31).
dd Muestra el día como un número con un cero inicial (01–31).
ddd Mostrar el día como una abreviatura (Sun–Sat). Localizada.
dddd Mostrar el día como nombre completo (domingo a sábado). Localizada.
ddddd Muestra la fecha como fecha completa (incluido el día, el mes y el año) con el formato de acuerdo a la configuración del formato de fecha corta del sistema. El formato de fecha corta predeterminado es m/d/yy.
dddddd Muestra un número de serie de fecha como fecha completa (incluido el día, el mes y el año) con formato de acuerdo a la configuración de fecha larga que reconoce el sistema. El formato de fecha larga predeterminado es mmmm dd, yyyy.
w Muestra el día de la semana como un número (1 para domingo hasta 7 para sábado).
ww Muestra la semana del año como un número (1–54).
m Muestra el mes como un número sin un cero inicial (1-12). Si m va inmediatamente después de h o hh, se muestra el minuto en lugar del mes.
mm Muestra el mes como un número con un cero inicial (01–12). Si m va inmediatamente después de h o hh, se muestra el minuto en lugar del mes.
mmm Mostrar el mes como abreviatura (enero-dic). Localizada.
mmmm Mostrar el mes como un nombre de mes completo (enero-diciembre). Localizada.
q Muestra el trimestre del año como un número (1–4).
y Muestra el día del año como un número (1–366).
yy Muestra el año como un número de 2 dígitos (00-99).
yyyy Muestra el año como un número de 4 dígitos (100-9999).
h Muestra la hora como un número sin un cero inicial (0–23).
hh Muestra la hora como un número con un cero inicial (00–23).
n Muestra el minuto como un número sin un cero inicial (0–59).
nn Muestra el minuto como un número con un cero inicial (00-59).
s Muestra el segundo como un número sin un cero inicial (0–59).
ss Muestre el segundo como un número con un cero inicial (00-59).
ttttt Muestra la hora como una hora completa (hora, minuto y segundo), usando el separador de hora definido por el formato de hora reconocido por el sistema. Se muestra un cero a la izquierda si se selecciona la opción cero inicial y la hora es anterior a las 10:00 A.M. o P.M. El formato de hora predeterminado es h:mm:ss.
AM/PM Usa el reloj de 12 horas y muestra AM en mayúsculas con cualquier hora antes del mediodía; muestra PM en mayúsculas con cualquier hora entre el mediodía y las 11:59 P.M.
am/pm Usa el reloj de 12 horas y muestra AM en minúsculas con cualquier hora antes del mediodía; muestra PM en minúsculas con cualquier hora entre el mediodía y 11:59 P.M.
A/P Usa el reloj de 12 horas y muestra una A en mayúsculas con cualquier hora antes del mediodía; muestra una P mayúscula con cualquier hora entre el mediodía y las 11:59 P.M.
a/p Usa un reloj de 12 horas y muestra una A en minúsculas con cualquier hora antes del mediodía; muestra una P en minúsculas con cualquier hora entre el mediodía y las 11:59 P.M.
AMPM Usa el reloj de 12 horas y muestra la cadena AM como la defina el sistema con cualquier hora antes del mediodía; muestra la cadena PM como la defina el sistema con cualquier hora entre el mediodía y las 11:59 P.M. AMPM puede estar en minúsculas o en mayúsculas, pero el uso de mayúsculas o minúsculas de la cadena mostrada coincide con la cadena que se definió en la configuración del sistema. El formato predeterminado es AM/PM. Si el sistema está establecido en el reloj de 24 horas, la cadena suele establecerse en una cadena de longitud cero.

Formatos numéricos definidos por el usuario

En la siguiente tabla se identifican los caracteres que puede usar para crear formatos de números definidos por el usuario.

Carácter Descripción
Ninguno Muestra el número sin formato.
(0) Marcador de posición de dígitos. Muestra un dígito o un cero. Si la expresión tiene un dígito en la posición donde aparece el 0 en la cadena de formato, lo muestra; en caso contrario, muestra un cero en esa posición. Si el número tiene menos dígitos que ceros (a ambos lados de la coma decimal) en la expresión de formato, muestra ceros iniciales o finales. Si el número tiene más dígitos a la derecha del separador decimal que ceros a la derecha del separador decimal en la expresión de formato, redondea el número a tantos decimales como el número de ceros. Si el número tiene más dígitos a la izquierda del separador decimal que ceros a la izquierda del separador decimal en la expresión de formato, muestra los dígitos adicionales sin cambios.
(#) Marcador de posición de dígitos. Muestra un dígito o nada. Si la expresión tiene un dígito en la posición en la que aparece # en la cadena de formato, lo muestra; de lo contrario, no muestra nada en esa posición. Este símbolo funciona como un marcador de posición de dígito 0, excepto en que los ceros iniciales y finales no se muestran si el número tiene los mismos dígitos o menos dígitos que caracteres # hay en el lado del separador decimal en la expresión de formato.
(.) Marcador de posición decimal. En algunas configuraciones regionales, se usa una coma como separador decimal. El marcador de posición decimal determina el número de dígitos que aparecen a la izquierda y derecha del separador decimal. Si la expresión de formato contiene solamente signos de número a la izquierda de este símbolo, los números menores que 1 comienzan con un separador decimal. Para mostrar un cero inicial con números fraccionarios, utilice 0 como primer marcador de posición de dígitos a la izquierda del separador decimal. El carácter real utilizado como marcador de posición de decimal en el resultado con formato depende del formato de número reconocido por su sistema.
(%) Marcador de posición de porcentaje. Multiplica la expresión por 100. El carácter de porcentaje (%) se inserta en la posición en la que aparece en la cadena de formato.
(,) Separador de miles. En algunas configuraciones regionales, se utiliza un punto como separador de miles. El separador de miles separa los millares de las centenas en un número que tiene cuatro o más dígitos a la izquierda del separador decimal. El uso estándar del separador de miles se especifica si el formato contiene un separador de miles rodeado de marcadores de posición de dígitos (0 o #). Dos separadores de miles adyacentes o un separador de miles inmediatamente a la izquierda del separador decimal (independientemente de si se especifica un decimal) significa "escalar el número dividiéndolo entre 1000, redondeando según sea necesario". Por ejemplo, puede usar la cadena de formato "##0", para representar 100 millones como 100. Los números menores que 1 millón se muestran como 0. Dos separadores de miles adyacentes en cualquier posición que no sea inmediatamente a la izquierda del separador decimal se consideran simplemente como una especificación del uso de un separador de miles. El carácter real utilizado como separador de miles en el resultado con formato depende del formato de número reconocido por su sistema.
(:) Separador de fecha. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de hora. El separador de hora separa horas, minutos y segundos cuando se da formato a valores de hora. El carácter real utilizado como separador de hora en el resultado con formato depende de la configuración del sistema.
(/) Separador de fecha. En algunas configuraciones regionales, pueden usarse otros caracteres para representar el separador de fecha. El separador de fecha separa el día, mes y año cuando se da formato a valores de fecha. El carácter real utilizado como separador de fecha en el resultado con formato depende de la configuración del sistema.
(E- E+ e- e+) Formato científico. Si la expresión de formato contiene al menos un marcador de posición de dígitos (0 o #) a la derecha de E-, E+, e- o e+, se muestra el número en formato científico y E o e se inserta entre el número y su exponente. El número de marcadores de posición de dígitos a la derecha determina el número de dígitos en el exponente. Use E- o e- para colocar un signo menos junto a los exponentes negativos. Use E+ o e+ para colocar un signo menos junto a los exponentes negativos y un signo más junto a los positivos.
- + $ ( ) Mostrar un carácter literal. Para mostrar un carácter distinto a los que aparecen en la lista, ponga antes de él una barra inversa (\) o póngalo entre comillas (" ").
(\) Muestra el siguiente carácter en la cadena de formato. Para mostrar un carácter que tiene un significado especial como carácter literal, coloque antes una barra diagonal inversa (\). La barra en sí no se muestra. Usar una barra diagonal inversa es lo mismo que incluir el siguiente carácter entre comillas dobles. Para mostrar una barra diagonal inversa, use dos barras diagonales inversas (\\). Algunos ejemplos de caracteres que no se pueden mostrar como caracteres literales son los caracteres de formato de fecha y hora (a, c, d, h, m, n, p, q, s, t, w, y, /, y :), los caracteres de formato numérico (#, 0, %, E, e, coma y punto) y los caracteres de formato de cadena (@, &, <, >y !).
("ABC") Muestra la cadena dentro de las comillas dobles (" "). Para incluir una cadena en formato desde dentro del código, debe usar Chr(34) para encerrar el texto (34 es el código de carácter para un signo de comillas (")).

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.