En este ejercicio, escribiremos código VBA que modifica el contenido y la apariencia de las celdas y las hojas de trabajo.
En primer lugar, abra el editor, añada un módulo, copie en él la macro que aparece a continuación y vincúlela a un botón de fórmula (vuelva a consultar la publicación anterior si es necesario):
Queremos modificar la celda B3 al principio de esta macro.
Para visualizar la lista de posibles cosas que se pueden asociar al objeto Range, añada un punto después de Range("B3"):
Ahora el editor mostrará ahora las distintas alternativa ...
Para ello, haga clic en "Value" y luego en la tecla Tab para validar su elección.
En este caso, la propiedad "Value" representa el contenido de la celda.
A continuación, asignaremos el valor 48 a la celda B3:
A continuación, asignamos el valor Texto de muestra a la celda B3 (importante: el texto debe estar dentro de ""):
En este caso, vamos a modificar la celda B3 de la hoja de trabajo, la celda desde la que realmente comienza el procedimiento (a través de un botón de fórmula). Si crea un segundo botón como este en la hoja de trabajo 2, modificará la celda B3 de esta (Hoja 2).
Para que modifique la celda B3 de la hoja 2 cuando presiona el botón de la hoja 1, debe agregar lo siguiente antes de Rango: Sheets("Nombre_de_hojaX") u Sheets(Número de Hoja).
Asimismo, si quisiéramos modificar la celda B3 de la hoja 2 de otro libro de trabajo abierto, tenemos que agregar lo siguiente antes de Hojas y rango: Workbooks("Nombre_de_archivo").
Aunque con estos ejemplos usamos Value, realmente no es necesario usarlo, ya que si no se especifica nada más será el valor de la celda el que se modifique.
Por ejemplo, estas dos líneas tendrán el mismo efecto:
Range("B3").Value = 48Range("B3") = 48
BORRAR EL CONTENIDO DE UNA CELDA
Sub propiedades()'Borra el contenido de la columna BRange("B:B").ClearContentsEnd Sub
FORMATO DEL TEXTO VBA EXCEL
Al abrir "Font." aparecerá la lista de propiedades que se pueden aplicar al formato del texto:
FORMATO: CAMBIAR EL TAMAÑO DEL TEXTO
Sub properties()'Cambia el tamaño del texto en la celda B1 hasta B10Range("B1:B10").Font.Size = 20End Sub
FORMATO: HACER EL TEXTO EN NEGRITA (BOLD)
Sub propiedades()'Cambia la celda B1 hasta B10 a negrita(bold)Range("B1:B10").Font.Bold = TrueEnd Sub
"Bold = True" significa que los caracteres aparecerán en negrita, tambien se usa (Yes) en lugar de True.
Para eliminar el formato "negrita" del texto, basta con sustituir "True" por "False", si no le diste formato antes no será necesario:
Sub propiedades()'Borrar el formato "negrita" de las celdas B1 hasta B10Range("B1:B10").Font.Bold = FalseEnd Sub
FORMATO: ITALIZAR TEXTO
Sub propiedades()'Cambiar a cursiva (itálica) el formato de celdas B1 hasta B10Range("A1:A8").Font.Italic = TrueEnd Sub
FORMATO: SUBRAYAR TEXTO
Sub propiedades()'Subraya las celdas B1 hasta B10Range("B1:B10").Font.Underline = TrueEnd Sub
FORMATO: COLOCAR FUENTE
Sub propiedades()'Cambiar la fuente en las celdas B1 hasta B10Range("B1:B10").Font.Name = "Arial"End Sub
AGREGAR BORDES CON VBA
Sub propiedades()'Añadir un borde a las celdas B1 hasta B10Range("B1:B10").Borders.Value = 1'value = 0 --> no hay bordeEnd Sub
CAMBIAR EL FORMATO DE LAS CELDAS SELECCIONADAS ACTUALMENTE
Sub propiedades()'Añade un borde a las celdas seleccionadasSelection.Borders.Value = 1End Sub
CAMBIAR LAS PROPIEDADES DE UNA HOJA DE TRABAJO
Sub propiedades()'Ocultar una hojaSheets("Hoja3").Visible = 0'Visible = -1 --> cancela el efectoEnd Sub
Recuerde ya que sólo hemos presentado una mínima parte de las posibles personalizaciones que se pueden hacer con VBA.
En el caso de que la propiedad que busca no está descrita en detalle aquí, búscala en la página oficial de Microsoft o en la ayuda de Exel.
Además, el grabador de macros también puede ser de ayuda, si grabas acciones que necesitas, para ver el nombre de la propiedad y poder utilizarla después en tu propia macro.
CAMBIAR EL VALOR DE UNA CELDA EN FUNCIÓN DE OTRA CELDA
En este caso, queremos que B5 tome su valor de B1, primero escribe la palabra en celda B1, luego ejecutar:
![]() |
| Así que le asignaremos el valor de "B1" a la celda "B5", quedará así: |
Sub propiedades()'B5 = B1Range("B5") = Range("B1")'otra opción:'Range("B5").Value = Range("B1").ValueEnd Sub
Si sólo quisiéramos copiar el tamaño del texto de la otra celda, el código sería así:
Sub propiedades()Range("B5").Font.Size = Range("B1").Font.SizeEnd Sub
Todo lo que está a la izquierda del signo "=" toma el valor de lo que está en el lado derecho del "=".
CAMBIAR EL VALOR DE UNA CELDA EN FUNCIÓN DE SU PROPIO VALOR
Ahora vamos a crear un contador de clics en un botón.
Cada vez que hagamos clic, el valor de A1 se incrementará en 1:
Sub propiedades()'Contador de clics A1Range("A1") = Range("A1") + 1End Sub
Excel ejecuta el código línea por línea, por lo que estos comentarios deberían ayudarte a entender el código:
Sub propiedades()'A10 en Hoja 2 de Libro 2 = Texto de pruebaWorkbooks("Libro2.xlsx").Sheets("Hoja2").Range("A10").Value = "Texto de prueba"End Sub'Por ejemplo: antes de ejecutar el código, A1 tiene el valor 0Sub propiedades()'El botón ha sido pulsado, por lo que el procedimiento está comenzando'Por el momento, A1 sigue teniendo el valor 0'DURANTE la ejecución de la línea inmediatamente inferior, A1 sigue teniendo el valor 0Range("A1") = Range("A1") + 1 'Y ahora el cálculo es: Nuevo_valor_de_A1 = 0 + 1'A1 tiene el valor 1 sólo "después" de la ejecución de la línea de códigoEnd Sub
WITH
Con código permite establecer diferentes propiedades en una celda activa:
Sub propiedades()ActiveCell.Borders.Weight = 4ActiveCell.Font.Bold = TrueActiveCell.Font.Size = 18ActiveCell.Font.Italic = TrueActiveCell.Font.Name = "Arial"ActiveCell.Font.Color = vbCyanEnd Sub
En este caso, podemos utilizar "with" para evitar tener que repetir "ActiveCell".
Ahora veremos cómo funciona "with":
Sub propiedades()'Comienzo de las instrucciones con el comando WITHWith ActiveCell.Borders.Weight = 3.Font.Bold = True.Font.Size = 18.Font.Italic = True.Font.Name = "Arial".Font.Color = vbCyan'Fin de las instrucciones con el comando: END WITHEnd WithEnd Sub
Hemos evitado repetir ActiveCell, genera el cambio a la celda que dejamos activa (seleccionada).
Aunque no es realmente necesario en este caso, podríamos evitar repetir también .Font, que quedaría así:
Sub propiedades()With ActiveCell.Borders.Weight = 3With .Font.Bold = True.Size = 18.Italic = True.Name = "Arial"End WithEnd WithEnd Sub
Para las propiedades de colores veremos a continuación.






1 Comentarios
wow me sirvió de mucho, bien detallado, ordenado y con colores como para entenderlo. muchas gracias....
ResponderBorrar