0% encontró este documento útil (0 votos)
8 vistas7 páginas

MACROS

El documento detalla cómo crear y utilizar macros en Visual Basic para Excel, incluyendo la creación manual a través del editor de VB y la grabación automática de acciones. Se explica la sintaxis de las macros, el uso de variables, y cómo seleccionar y manipular celdas y rangos. Además, se abordan comandos específicos como ActiveCell y Clear, así como la importancia de la estructura y los nombres únicos para las macros dentro de los módulos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas7 páginas

MACROS

El documento detalla cómo crear y utilizar macros en Visual Basic para Excel, incluyendo la creación manual a través del editor de VB y la grabación automática de acciones. Se explica la sintaxis de las macros, el uso de variables, y cómo seleccionar y manipular celdas y rangos. Además, se abordan comandos específicos como ActiveCell y Clear, así como la importancia de la estructura y los nombres únicos para las macros dentro de los módulos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

MACROS

Visual Basic

espacio donde se generan las macro manualmente


o Para generar una macro, en la ventana de VB se debe clickear en menú “insertar” ->
módulo. Al crearla, va quedando alojada en el cuadro ubicado a la derecha de la
ventana VB

o Dentro del editor de texto dentro del módulo de la macro, el signo (‘) permite escribir
comentarios sin que incidan en la operación computacional contenida en dicho
módulo.
o El punto de inicio de la macro será la siguiente expresión

Sub nombre_macro ()

Al dar enter, automáticamente, bajo este comando, aparecerá un segundo que indica el fin
de la operación que esté contenida entremedio

End Sub

o Un módulo puede contener varias macro. Estas deben tener nombres distintos -
también, si una hoja tiene más de un módulo, tampoco se pueden llamar igual las
macro entre esos módulos.

Grabar Macro
La segunda manera principal de crear una macro es dar click en grabar macro. Se trata de una
programación automática que guarda todas las acciones desde que se da inicio a la grabación.
o Al comenzar la grabación, pide algunos datos para caracterizar a la macro nueva

o Una vez realizada la acción post-comienzo de la grabación, al clickear “detener


grabación” se dará fin la macro y luego, cuando se le ordene realizarla (por ejemplo,
usando la tecla de método abreviado) se ejecutará lo guardado. También se puede
ejecutar la macro seleccionando la macro creada en el cuadro que aparece al clickear
“macros”

o La macro creada quedará guardada en Visual Basic (en un nuevo módulo), en donde se
puede editar manualmente

 Por defecto, las macros se guardan en el libro en la cual son creadas (se pueden usar solo en
las hojas de ese libro).
 En general, el lenguaje de programación de Excel estipula la selección del elemento a
intervenir por la operación computacional (celdas, columnas, filas, rangos) y luego aplica las
distintas suboperaciones
xxx

Sintaxis

 La sintaxis de la macro puede leerse, en su estructura, de la siguiente manera

Elemento_a_ser_alterado . modificación

Es decir, el punto es la separación entre el objeto a cambiar (“columns”, “range”, etc.) y la


instrucción de cambio (ColumnWidth=)

 Los objetos en la sintaxis siempre aparecen entre comillas. Si hay más de un elemento dentro
del objeto a tratar, las comillas van al inicio y al final del conjunto de ellas (no de cada una)
 Los rangos (ya sean de columna completa, fila completa o celdas) aparecen con : que podría
traducirse como “a” (to).
 En la sintaxis, cuando el objeto de cambio es solo una celda, de todas maneras recibe la
denominación “range”

xxx

 Al escribir códigos en el módulo de VB las diversas operaciones aparecen con autocompletar


luego del punto (.) que es el signo indicador de comienzo de aplicación de operación sobre el
objeto anterior al punto
 Si se quiere agregar un acceso abreviado a la macro, esto debe hacerse fuera de VB. Cuando se
genera la macro en VB ya queda guardado en el conjunto de macros que contiene el archivo,
por tanto, el acceso abreviado debe asignarse en el cuadro emergido de presionar “macros”,
cuadro “opciones”.
 Para generar una macro que seleccione más de una celda pero que termine con el foco en una
en específico se deben combinar los comandos “select” y “actívate”. Ojo que si la celda
referida con “actívate” no está dentro de aquellas asociadas a “select”, el comando select no
se verá.

Ej:

Sub ej_1
Range (“A2, B5, C13”). Select
Range (“C13”). Activate
End Sub

xxx

(en VB, para llegar a esquema de módulos y macro hay que ir a “ver”, “explorador de proyectos”)

 Como alternativa al comando “range” se puede utilizar “cells” para identificar celdas. “cells”
opera con valores absolutos, no con alfanumérico para identificar las celdas. Por ej, para llega
al cuadro B2, la forma de indicarlo con este comando sería cells(2,2)

Variables

 El signo de asignación en el lenguaje macros es =


 El comando select es clave pues, a lo largo de la sintaxis, lo que venga después de este
comando y si se quiere trabajar con aquello seleccionado, se deberá incluir en la sintaxis con la
palabra Selection

Ej: Range (“A1”). Select


Fila_actual = Selection

 Si al seleccionar una celda (con Range o con Cells) dicha celda tiene un número en su
interior, la asignación para la variable no será de la coordenada sino del valor que contenga
y, por lo tanto, si, por ej., se usa esa celda con contenido para fijar una nueva coordenada, si
está ubicada como primer parámetro de cells [sitial para la fila], la fila a la que la variable
referirá es el valor del contenido de la celda.

Por tanto, la asignación en el lenguaje macros es al contenido de la celda, si es que esta está
con datos.

Ej: [dato en A1 -> “5”; dato en A2 -> 4]

Range (“A1”). Select


Fila_actual = Selection
Range (“A2”) = Selection
Columna_actual= Selection
Fila_actual= Fila_actual + 10
Cells (Fila_actual, columna_actual). Select
 en este caso, la macro indica que el foco quede en la celda de fila 15 (valor de A1 + 10) y de
columna 4 (D) (valor de A2)

xxx

ActiveCell

 Este comando sirve para generar una variable cuando se ha estipulado a una celda como
seleccionada (Select) durante la sintaxis

Ej:

Cells (10, 4). Select


Valor= ActiveCell
Cells (11,4). Select
Cells (11,4) = valor

(esta macro copia el valor que estaba en la casilla D10 a D11)

(las combinaciones de [Link] son homólogos a ActiveCell)

Resulta útil definir los números de la coordenada de la celda inicial como variables para que luego,
en lugar de señalar específicamente los números de la nueva coordenada donde se copiarán los
datos o su definición alfanumérica, se puedan sumar (o restar) las cifras a las variables y así, sin
declarar el lugar exacto, el valor se copie en la celda que necesitamos

Ej: ‘ (para copiar de celda A2 a C4)


Sub xyz ()
fila=1
columna=2
Cells (fila, columna). Select
valor= ActiveCell
fila=fila+2
columna=columna+2
Cells(fila, columna). Select
Cells(fila, columna) = valor
End Sub

xxx

 En la sintaxis el comando “rows” refiere a una fila completa, es decir, la intervención posterior
al punto en la sintaxis afectará a toda la fila seleccionada
 Se debe usar comillas en el parámetro contenido posterior al comando rows (es obligatorio si
es que son dos las filas seleccionadas)
 Si se quieren escoger dos filas no consecutivas (o dos rangos no consecutivos) se debe
utilizar Range. Rows solo sirve para filas únicas o rangos de filas consecutivas.
Las filas a escoger deben escribirse de la siguiente manera:
Range(“fila1:fila1, fila10:fila10”). Select

Esto seleccionará la fila 1 y la fila 10 únicamente.

Si se quisiera seleccionar un rango de filas consecutivas, servirá Rows.


Ej: Rows(“fila1:fila5”) select

 Este mismo principio funciona para el comando columns. Sirve para columnas únicas o un
rango de columnas consecutivas, pero si hay una separación entre los rangos que se quiere
seleccionar, ya no sirve columns y se debe usar Range

Clear

 La batería de comandos Clear sirve para borrar


o Si se quiere borrar contenidos de todas las filas, el comando sería [Link]

xxx

 El comando Sheets sirve para referirse a celdas. Del mismo modo, si se selecciona una casilla
que tenga el nombre de una hoja, se selecciona esa celda y se le asigna ese valor a una
variable (mediante ActiveCell), y luego se llama (Select) a esa variable, la macro expondrá la
hoja que tiene el nombre contenido en la variable (que a su vez contiene la celda activa)
Ej:

Sub cccc()
Sheets("Hoja14").Select
Range("a1").Select ‘El contenido de la A1 dice “Hoja13”
aa = ActiveCell
Sheets(aa).Select ‘Expondrá la “Hoja13”
End Sub

También podría gustarte