Академический Документы
Профессиональный Документы
Культура Документы
o Aparecerá el siguiente cartel, en el cual se podrá elegir un nombre para la macro (por defecto, “Macro”
y un numero de macro, ejemplo “Macro1”), un shortcut, que dará la posibilidad de ejecutar la macro
apretando “CTRL” y otra tecla designada por el usuario; donde se va a guardar la macro, en “this
workbook”, o en algún otro abierto; y un comentario si quisiéramos ponérselo para recordar que hace la
macro.
Podrán saber si la macro está grabando cuando este icono aparece abajo a la izquierda de la
pantalla
o Todas las acciones que realicen serán traducidas a código en la macro. Si no se realiza ninguna acción,
ningún código será grabado. Para ver el código que ha sido gravado, pueden apretar alt f11, o bien ir a
“View>Macros>View Macros” y en el cuadro que aparece, seleccionar “Edit”
o Tips:
Cuando se graba una macro, hay que tener en cuenta que el Excel va a repetir exactamente las
mismas acciones que se están grabando, no va realizar ninguna prueba lógica, ni va tomar
ninguna consideración si las columnas, filas o celdas están de la forma en la que se supone que
deben estar. Va a realizar la acción, y sobrescribir información en el caso que haya en las celdas
en las que va realizar la acción. En el caso que no pudiese realizar la acción, va a tirar un error
como el de abajo, y en ese caso, deberán o modificar el código, o grabar una nueva macro.
Programar una macro:
o Para comenzar a grabar una macro, empezaremos por abrir el ambiente de VBA, como se mostró en
“como grabar una macro”, o apretando “alt f11”
o El primer paso para comenzar a grabar una macro es crear un nuevo módulo en el proyecto, en el caso
que no exista ya uno.
Para eso, vamos a ir a “insert>module” o también, hacer botón derecho sobre “vbaproject” y
seleccionar “insert>module”. Esto abrirá una pantalla en blanco, que es donde se va a ingresar
el módulo.
o Conceptos generales:
Hay 3 tipos de ambientes básicos en los que trabajar dentro de VBA
Userforms: son herramientas gráficas para la interface con el usuario, es decir, se
pueden crear pantallas de dialogo para que el usuario interaccione, o simplemente
utilizarlos para mostrar información mientras el programa está corriendo, como, por
ejemplo, una barra de progreso. Pueden contener códigos completos e independientes
de los módulos.
Módulos: son la base de los códigos, son el back end de todo lo que hace la macro,
puede interactuar con los userform y los módulos de clase.
o Los códigos también pueden ser guardados en “Thisworkbook” o cualquiera de
las sheets, pero normalmente esos ambientes se utilizan para códigos
específicos para que se realice cierta acción cuando abra o cierra el Excel.
Class Module: son módulos para declarar y crear nuevos objetos, con sus propiedades y
funciones definidas. Normalmente se usan cuando se programa de forma destinada a
objetos, es decir, uno referencia a objetos y sus funciones, en vez de indicar
absolutamente todo lo que tiene que hacer el programa
o Sub y Function:
Existen dos tipos de procedimientos básicos en VBA
Sub: son “subrutinas” que básicamente van a contener un código especifico, para
realizar una tarea. Ejemplo: un SUB que abra un Excel y coloque títulos en las primeras
líneas. Su único trabajo va ser hacer eso. Puede ser llamado por otros SUB o por
Function
Function: idéntico al SUB, la única diferencia es que no puede ser corrido de forma
independiente, sino que precisa de ser llamado por un SUB. También, acepta correr
argumentos. Normalmente, devuelve un valor. Ejemplo: una función que coloca en la
celda A1, cuanto es el resultado de una multiplicación, de dos números que brinda el
usuario.
Mas información: http://www.excel-easy.com/vba/function-sub.html
o Programando:
Variables: son declaraciones que pueden contener diferentes tipos de información, pero que
siempre van a tener el mismo nombre que les dimos en un principio. Ejemplo: declaro la
variable “Nombre”, y esa variable puede tener contenida cualquier valor que yo desee, puede
ser Alejandro, o Martin, o Esteban, o cualquier otro valor que no sea un nombre, podría tener
un valor como “banco astillado”. Cada vez que yo me refiera a la variable “Nombre”, me voy a
estar refiriendo a su valor, y no por el nombre en que fue declarada.
Loop: en español, se lo llama iteración, es una acción que se va a repetir una y otra vez,
indefinidamente, o hasta que se cumpla una condición
o Do.. Loop while: esta acción va a repetirse hasta que se cumpla la condición que
contiene el “Loop while”
o Do While … Loop: ídem al anterior, solo que la condición está contenida en “Do
While”
o For each ... next: este tipo de loop, va a trabajar sobre objetos seleccionados, y
va a realizar una acción determinada por cada uno de los objetos (for each)
seleccionados
o For … to ...next: este loop es similar al for each, pero en vez de trabajar con
objetos seleccionados, va a trabajar con cantidades de veces que debe
repetirse, es decir, se le indicara desde que valor debe comenzar, y en cual debe
terminar
Select Case: cumple la misma función que un IF concatenado, pero es más efectivo, ya
que solo va a realizar una acción si se cumplen ciertos valores de una variable
o Estructura: va a estar conformado por el select case “variable”, el cual va indicar
la variable a la cual se quiere conocer el valor que puede tener. Cada “Case” va a
ser el valor que se espera que tenga la variable, y accione cierto tipo de acción.
Termina con “End select”
o Mas información https://docs.microsoft.com/en-us/dotnet/visual-
basic/language-reference/statements/select-case-statement