¿Cómo se crea una subrutina en Visual Basic para Excel?
El manejo de subrutinas en Visual Basic para Excel es una habilidad que diferencia a un usuario casual de uno avanzado. Las subrutinas permiten automatizar tareas repetitivas y mejorar la eficiencia en la gestión de datos. En esta guía, aprenderás a crear tu primera subrutina y a entender las bases que te permitirán expandir tus habilidades en programación dentro del ecosistema de Excel.
¿Qué es una subrutina y cómo se diferencia de una función?
Una subrutina es un bloque de código que ejecuta una serie de instrucciones en Excel sin devolver un resultado directo, a diferencia de las funciones que sí lo hacen. En su lugar, el impacto de una subrutina se ve reflejado en las acciones que realiza, tales como manipular celdas, hojas o rangos dentro del libro de Excel.
Ventajas de las Subrutinas:
No consumen recursos devolviendo un resultado innecesario.
Son ideales para tareas automáticas y procedimientos de manejo de datos dentro del documento.
¿Cómo iniciar un archivo para trabajar con subrutinas?
Para empezar a trabajar con subrutinas, necesitas abrir un archivo de Excel habilitado para macros. Esto es crucial para asegurarse de que todo el trabajo quede guardado y pueda ser ejecutado sin problemas futuros. En el entorno de Visual Basic, las subrutinas se encuentran dentro de módulos, donde puedes organizarlas según tus necesidades.
Consejos para la organización de módulos:
Uso de Comentarios: Incluir comentarios en tu código es una buena práctica que te ayudará a documentar lo que hace cada segmento de tu programación, facilitando la comprensión futura del código.
Modularización: Crear varios módulos si la carga de subrutinas y funciones lo justifica, así mejorarás el orden y legibilidad del código.
¿Cómo redactar una subrutina básica?
Para comenzar a escribir una subrutina, lo primero es definir si será pública o privada. Las subrutinas públicas pueden ser llamadas desde diferentes lugares del proyecto, mientras que las privadas están limitadas al módulo donde se encuentran.
PublicSub prueba2()' Subrutina básica sin argumentos.EndSub
¿Cómo trabajar con celdas y rangos en subrutinas?
Una de las tareas fundamentales de las subrutinas es la manipulación de celdas y rangos. Esto implica hacer referencia a celdas específicas, manipular rangos de datos o realizar cálculos dentro del libro.
Referenciar una Celda:
Cells(1,1).Value ="Hola, mundo"
Manipular un Rango:
Range("B2:C3").Value ="Platzi es lo mejor"
Es importante recordar que los nombres de celdas en Visual Basic usan un formato numérico, donde las filas y columnas tienen números asociados.
¿Cómo especificar la hoja en la que se ejecutará la subrutina?
En muchas ocasiones, necesitarás que las acciones de la subrutina se ejecuten en hojas específicas, especialmente cuando trabajas con documentos de Excel que contienen múltiples hojas.
Seleccionar una hoja específica:
Sheets("Hoja2").Select
Este ejemplo asegura que la subrutina se ejecute en la hoja "Hoja2", incluso si estás visualizando otra hoja al momento de ejecutar el código.
¿Cómo ejecutar y probar una subrutina?
Finalmente, una parte esencial del desarrollo de subrutinas es la validación y ejecución del código. Puedes correr tu subrutina desde el entorno de Visual Basic utilizando el botón de "Correr" o mediante la tecla F5.
Al finalizar estos pasos, deberías tener una comprensión básica y la habilidad para crear subrutinas efectivas en Visual Basic para Excel. Te invito a que pruebes lo aprendido, experimentando y perfeccionando estas técnicas. Expande tus conocimientos y comparte tus resultados para seguir aprendiendo. ¡El mundo de la programación en Excel te espera!
Sheets("Hoja2").SelectCells(1,1)="Al pie de la letra"Range(Cells(2,1),Cells(5,1))="Un"Range("B2:B5")="Mensaje"Range("C2:C5")="Interesante"
Aqui dejo mi resultado y el codigo
PublicSubprueba2()Sheets("Sheet3").SelectCells(1,1)="Hello Friend"Cells(2,2)="This is a sample"Cells(3,3)="about the proper usage"Cells(4,4)="of VBA"Range("A5:J5").Value="See you in space, cowboy"Range("A1:J5").Interior.Color=RGB(0,0,0)Range("A1:J5").Font.Color=RGB(255,255,255)Range("A1:J5").HorizontalAlignment= xlCenter
Range("A1:J5").Replace"","*"EndSub
donde puedo buscar los números de los colores, por favor.
Comparto mi Reto:
.
Hola Judith, arrastra el archivo de la imágen que quieras subir encima de la sección de comentarios o aportes y le das publicar y ya te aparece la imágen.
Eh realizado lo siguiente una operación junto a un mensaje.
me lo copie porque me pareció super genial esto que hiciste...uffff
Espero un corazoncito de los Colombianos
Sheets("hoja1").SelectCells(1,1)="oh gloria inmarcesible"Cells(2,1)="oh jubilo inmortal"Cells(3,1)="en surcos de dolores"Cells(4,1)="el bien germina alla"Range("E1:G2").Interior.Color=RGB(255,255,0)Range("E3:G3").Interior.Color=RGB(0,0,255)Range("E4:G4").Interior.Color=RGB(255,0,0)Sheets("hoja2").SelectCells(2,2)=3*2Cells(2,3)=5*5Cells(2,4).Formula="=b2 + c2"MsgBox"Viva Colombia, se ha terminado de ejecutar la macro"
Public Sub prueba3()
Sheets("Hoja1").Select
Range(Cells(4, 4), Cells(7, 7)) = "Aquí te voy San Pedro!"
Cells(1, 1) = 23 * 35
End Sub
Buena esa, te lo voy a copiar 👍👍
En Excel, una subrutina es un procedimiento sin resultado inmediato, a diferencia de una función. Esta subrutina se aplica directamente en la hoja de Excel. Los comentarios en el entorno de Visual Basic ofrecen orientación en el código sin alterar su funcionamiento. Puede crearse una subrutina pública o privada en un módulo, utilizando "Public Sub" para definir su inicio y asignarle un nombre. Las celdas se referencian mediante "Cells(fila, columna)", numerando filas y columnas, donde "A" es 1, "B" es 2, etc. Mediante "Range(celdaInicial, celdaFinal)", se pueden llenar rangos con información, incluso especificando letras y números para columnas y filas. La subrutina se ejecuta desde Visual Basic o el libro directamente, a través del botón "play" o F5. También es viable trabajar en hojas diferentes utilizando "Sheets("nombre").Select" para indicar dónde se aplicará la subrutina.
En VBA, Cells es una propiedad de los objetos de la hoja de cálculo que te permite acceder y manipular celdas específicas en Excel. La sintaxis básica de Cells es la siguiente:
Cells(Fila, Columna)
Donde:
Fila es el número de fila de la celda que deseas acceder.
Columna es el número de columna de la celda que deseas acceder.
Puedes utilizar valores numéricos para especificar la fila y la columna, o puedes usar referencias de celda en forma de letras para las columnas (por ejemplo, "A" para la columna A, "B" para la columna B, etc.).
Por ejemplo, para acceder a la celda en la primera fila y la segunda columna, puedes utilizar la siguiente línea de código:
Cells(1,2)
Además, también puedes utilizar la propiedad Cells junto con otras propiedades y métodos para referenciar rangos de celdas más extensos. Por ejemplo, puedes especificar un rango de celdas utilizando Cells de la siguiente manera:
FilaInicial y ColumnaInicial representan la primera celda del rango.
FilaFinal y ColumnaFinal representan la última celda del rango.
Por ejemplo, para seleccionar un rango de celdas desde la celda A1 hasta la celda B3, puedes utilizar el siguiente código:
Range(Cells(1,1), Cells(3,2))
Esta es una forma útil de trabajar con múltiples celdas a la vez y realizar operaciones en un rango específico de la hoja de cálculo.
Mi primera subrutina creada por mí
'vamos hacer otra subrutina
PublicSubprueba3()Cells(5,5)="Hoy.."Cells(6,5)="La vida me acaba de cambiar porque aprendí hacer funciones y subrutinas"Range("E7:F8")=":D"EndSub
tengo un Mac pero el 1.5 no funciona
Un atajo para llegar directamente a Visual Basic : Alt + F11
Cuadro Comparativo: Subrutina vs Función
Característica
Subrutina
Función
Definición
Realiza una acción sin devolver valor
Realiza una acción y devuelve un valor
Uso
Ejecutar procedimientos
Calcular y retornar resultados
Sintaxis
Public Sub NombreSubrutina()
Public Function NombreFuncion() As TipoDato
Valores de Entrada
No necesariamente requiere parámetros
Puede requerir parámetros
Resultado
No devuelve resultados directos
Devuelve un valor
Ejemplo
Modificar celdas en Excel
Calcular suma de dos números
Las subrutinas son útiles para ejecutar tareas específicas en Excel, mientras que las funciones son ideales para cálculos que requieren un resultado que se puede usar en otras partes del código o en la hoja.
'Vamos a hacer una Subrutina
Public Sub prueba2()
Sheets("Hoja1").Select
Cells(1, 1) = "Hola Mundo noob"
Range("A1:A3").Font.Color = RGB(255, 255, 255)
Cells(1, 2) = "Platzi es lo mejor y yo el programador"