Está en la página 1de 20

GUIA PARA LA CREACIÓN DE MACROS

AUTORES:

STEPHANIE CALDERÓN CASTILLO-2903219


SONIA KATHERINE BONILLA CHOQUE-2903317
FABIO ALEJANDRO GARCÍA DEL BUSTO-290339

INGENIERO NÉSTOR PORCELL MANCILLA

UNIVERSIDAD MILITAR NUEVA GRANADA


INGENIERÍA INDUSTRIAL

BOGOTÁ 2020
ÍNDICE

CREAR UNA MACRO EN EXCEL ...................................................................................................... 3


Botón ............................................................................................................................................ 3
Macro Grabada ............................................................................................................................. 3
Botón de Comandos ..................................................................................................................... 5
El Procedimiento Sub ................................................................................................................... 7

CÓDIGOS MÁS COMUNES VBA........................................................................................................ 8

NOMBRAR LAS VARIABLES............................................................................................................. 9

VARIABLES DE DURACIÓN: ........................................................................................................... 10

FUNCIONES EN VBA ....................................................................................................................... 11

FUNCIONES INTEGRADAS VISUAL BASIC ................................................................................... 11

FUNCIONES ANIDADAS .................................................................................................................. 14


For .............................................................................................................................................. 14
If ................................................................................................................................................. 15
Select case ................................................................................................................................. 16

ACTIVATE AND SELECT ................................................................................................................. 17

PARTICULARIDADES ...................................................................................................................... 18

EVENTOS A TENER EN CUENTA PARA LIBROS EN EXCEL: ...................................................... 19

EVENTOS A TENER EN CUENTA PARA HOJAS: .......................................................................... 19

BIBLIOGRAFÍA ................................................................................................................................. 19
CREAR UNA MACRO EN EXCEL
Para la elaboración de una macro existen varios métodos, de los cuales se explicará uno de los
más fáciles y rápidos a continuación:
Botón
Por medio de esta opción es posible insertar una imagen e incluso una figura, con el fin de
asignarle una macro como se puede ver en el ejemplo a continuación

Macro Grabada
Antes de grabar una macro es importante asegurarse de que la ficha “Programador” se encuentre
habilitada, en caso contrario, los pasos a seguir para activarla son:
1. Dar click en archivos.
2. Entrar a opciones
3. Seleccionar “Personalizar cinta de opciones”
4. En el lado derecho (Pestañas principales) seleccionar “Programador”
5. Cuando aparezca un chulo, dar click en aceptar
De esta manera se observará en la barra de tareas la opción de “Programador”, donde se
encuentran opciones como:
 Visual Basic
 Macros
 Grabar macros
 Insertar (desde aquí se pueden generar los botones).

3
Este método es uno de los más sencillo de utilizar, debido a que las operaciones que deseas
realizar se harán por medio de una grabación previa que haya realizado el usuario (se
recomienda más que todo para operaciones, darle color a las celdas que necesita, entre otras
operaciones sencillas). Grabar una macro hace que las acciones que se registren se traduzcan
posteriormente a instrucciones en VBA que se podrán modificar por medio de lenguaje de
programación.

Luego de dar click en aceptar en el cuadro de dialogo anterior “grabar macro”, se va a hacer
la grabación de todos los movimientos que se realicen, para ello una recomendación es no
salir del Excel en el que se está grabando la macro, ni tampoco abrir archivos externos en el
momento, debido a que afectaría el resultado final (No olvidar que todo lo que se realice
mientras se está ejecutando la grabación, todo queda como un proceso a ejecutar).

4
Al finalizar el proceso de grabación deberá detener la grabación de la macro, en la barra de
herramientas de programador.
Nota: Para que la macro pueda ejecutarse correctamente después de cerrar el archivo, es
importante guardar el documento como “MS Excel habilitado para macros” cuya extensión es
.xlsm.

Botón de Comandos

Este tipo de botón funciona de forma diferente, ya que el código no aparecerá en la opción de
barra de herramienta (Macros).

5
Para modificar el nombre de un botón se debe realizar un doble click en el botón, mientras que
este activado la opción de modo Diseño y seleccionar la opción de objetivo Botón de comando,
como se muestra a continuación:

Para la programación desde Vba se inicia con el proceso de dirigirse a el espacio de


programador, en la indicación “visual Basic”

6
Se abre una ventana emergente como la siguiente donde se debe estructurar el código:

La ventana del editor muestra todo lo necesario para comenzar a crear una macro.

 La barra de menús: Desde aquí se accede a la mayoría de funciones de VBE para


desarrollar, comprobar y guardar las macros.
 La barra de herramientas estándar: Contiene los botones con los comandos más
utilizados.
 La barra de herramientas de Edición: Aquí se encuentran los comandos más útiles
cuando se está escribiendo el código.
 El explorador de proyectos: Se muestra un árbol con todos los archivos que se
encuentran abiertos, que contienen los componentes de los proyectos.
 Ventana de código: Es la que se emplea para escribir todo el código VBA. Cada
elemento de un proyecto tiene asignada su propia ventana de código.
 La ventana propiedades: permite cambiar las propiedades del objeto seleccionado,
mientras estás en Modo Diseño.
 La ventana Inmediato: Permite probar una instrucción estando en Modo Diseño. No
se muestra por defecto.
 La ventana Locales: Permite comprobar el valor de una variable en cualquier
momento de la ejecución de la macro. Para mostrar esta ventana, debes pulsar el
botón Ventana Locales del menú Ver.
 La ventana Inspección: Permite agregar objetos para ver el valor actual de una
variable cuando estás en Modo Interrupción. Para mostrarla, pulsa el botón
correspondiente del menú Ver.
 El Examinador de objetos: Es de gran ayuda para encontrar los objetos, sus
propiedades y métodos asociados.

El Procedimiento Sub
Se puede decir que un procedimiento Sub es un conjunto de instrucciones que realizan una serie
de acciones específicas.

7
Hay dos tipos de procedimientos Sub:

1. Procedimientos generales: Son los que se declaran dentro de un módulo.

2. Procedimientos de evento: Se ejecuta automáticamente cuando se produce una


determinada situación o contexto.

CÓDIGOS MÁS COMUNES VBA

Algunos de los códigos más utilizados en VBA son:

INDICACION ESTRUCTURA VBA EXCEL


Trasladarse a una celda Range("A1").Select
Escribir en una celda Activecell.FormulaR1C1="Texto deseado"
Letra negrita Selection.Font.Bold = True
Letra cursiva Selection.Font.Italic = True
Letra Subrayada Selection.Font.Underline = xlUnderlineStyleSingle
Centrar texto With Selection.HorizontalAlignment = xlCenter End With
Alinear a la izquierda With Selection .HorizontalAlignment = xlLeft End With
Alinear a la Derecha With Selection .HorizontalAlignment = xlRight End With
Tipo de letra (Fuente) With Selection.Font .Name = "Arial" End With
Tamaño de letra With Selection.Font .Size = 15 End With
Copiar Selection.Copy
Pegar ActiveSheet.Paste
Cortar Selection.cut
Ordenar ascendente Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
Ordenar descendente Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom

Buscar Cells.Find(What:="Nombre", After:=ActiveCell, LookIn:=xlFormulas, LookAt _


:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Insertar Fila Selection.EntireRow.Insert
Eliminar Fila Selection.EntireRow.Delete
Insertar Columna Selection.EntireColumn.Insert
Eliminar Columna Selection.EntireColumn.Delete
Abrir un libro Workbooks.Open Filename:="C:\Mis documentos\nombrearchivo.xls"
Grabar un Libro ctiveWorkbook.SaveAs Filename:="C:\Mis documentos\archivo1.xls", FileFormat
_ :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=
_ False, CreateBackup:=False

8
NOMBRAR LAS VARIABLES

Al determinar la variable se debe tener en cuenta el tipo de variable, es decir si es un número


entero (Integer), continuo (Double), entre otras variables que se pueden ver en el siguiente
cuadro.

9
VARIABLES DE DURACIÓN:

Las variables pueden ser: Locales, Públicas y constantes.

I. Variables Locales: son las que se declaran dentro de un procedimiento y sus valores sólo
pueden ser utilizados en éste. Para declararlas se utiliza la sentencia Dim.

EJEMPLO:

II. Variables Públicas: Son las que estarán disponibles para todos los procesos, sus valores
pueden ser utilizados en cualquier módulo. Sé declaran como Public, es aconsejable utilizar un
módulo especialmente destinado a la declaración de estas variables lo que facilitará su
ubicación. Si se declararán en un módulo utilizado para otro procedimiento deberán ser las
primeras instrucciones

Ejemplo:

III. Constantes: A diferencia de las variables que modifican sus valores durante la ejecución de un
proceso, las Constantes mantienen su valor. También pueden ser Locales o Públicas.

10
FUNCIONES EN VBA

El uso de funciones en VBA es muy sencillo, solo basta con abrir la hoja de Excel, seleccionar la
pestaña “Fórmulas” y posteriormente en “Insertar función”.
Tras encontrar la función que se desea usar, se selecciona para ver los parámetros que exige para
ejecutarse de manera correcta, posteriormente, se define una variable tal que esta ejecute la función
con sus respectivos comandos.

Tomado de: MS Excel 2007 con Programación de Macros en VBA

FUNCIONES INTEGRADAS VISUAL BASIC

1. La función Input Box: Es una función que permite interactuar con el usuario solicitándole
información mientras se ejecuta una macro. Esto se hace mediante un cuadro de diálogo.
Sintaxis de InputBox: InputBox(Mensaje, Título, Valor por defecto, Posición
horizontal, Posición Vertical, Archivo ayuda, Número de contexto para la
ayuda).

Especificación de los elementos:


 Mensaje: Hace referencia al mensaje que se va a mostrar en la ventana.
 Título: Hace referencia al título que va a llevar la ventana de InputBox. Es un
parámetro de carácter opcional.

11
 Valor por defecto: Es el valor que se mostrará por defecto el cuadro donde la
persona va a ingresar el valor. Parámetro de carácter opcional.

 Posición Horizontal: La posición X de la pantalla donde se va a mostrar el


recuadro, teniendo en cuenta que es la posición desde la parte izquierda. Si se
omite, el recuadro se va a presentar de manera horizontal y centrado a la
pantalla.
 Posición Vertical: La posición Y de la pantalla donde se va a mostrar el
recuadro, teniendo en cuenta que es la posición desde la parte superior. Si se
omite, el recuadro se va a presentar de manera vertical y centrado a la pantalla.
 Archivo Ayuda: Es el archivo que contiene la ayuda para el cuadro. Parámetro
de carácter opcional.
 Número de contexto para la ayuda: Es el número asignado que corresponde al
identificador del archivo de ayuda, se utiliza para localizar el texto que se debe
mostrar. Si se especifica este parámetro, es obligatorio especificar el parámetro
Archivo Ayuda.

2. La función MsgBox: Es la función más utilizada en VBA. Se emplea para obtener una respuesta
simple como Sí o No del usuario y para mostrar mensajes breves como errores y algún dato
relevante para la ejecución de la macro. La función MsgBox hace dos cosas: Muestra un cuadro
de diálogo para darle información al usuario y devuelve un valor del tipo Integer dependiendo del
botón pulsado. Si quiere conocer el botón que se ha pulsado debes guardar el valor generado en
una variable.
Sintáxis de MsgBox: MsgBox(Mensaje, Botones, Título, Archivo de ayuda, contexto).

Especificación de los elementos:


 Mensaje: Es el mensaje que se va a mostrar dentro del cuadro de dialogo, su
uso es de carácter obligatorio.
 Botones: Es de uso opcional, se define como un número o una suma de
números o constantes que sirve para mostrar determinados botones e iconos
dentro del cuadro de diálogo. Si se omite este argumento, se asume un valor
de 0 que va a corresponder a un único botón
 Título: Es de carácter opcional, se define como el texto que se mostrará en la
barra del título del cuadro de diálogo.
 Archivo de Ayuda: Se usa si se llega a asignar un texto de ayuda al cuadro de
diálogo, aquí se debe especificar el nombre del archivo de ayuda donde está el
texto.
 Contexto: Se define como el número que sirve para identificar el texto al tema
de ayuda correspondiente que estará contenido en el archivo especificado en
el parámetro Archivo de Ayuda.

12
3. La función de conversión de variables: Cuando utilizas una función de conversión de tipo, ésta
devuelve el valor del dato convertido, pero no cambia el valor almacenado

4. Las funciones de comprobación: Este tipo de funciones ayudan al usuario a comprobar el tipo
de dato que contiene una expresión o variable. Estas son las funciones de comprobación:

 IsDate: Comprueba si una expresión se puede convertir en una fecha.


 IsNumeric: Comprueba si una expresión contiene un valor que se pueda interpretar como un
número.
 IsNull: Comprueba si una expresión contiene un valor nulo.
 IsEmpty: Comprueba si una expresión contiene algún valor o todavía no se han iniciado.
 IsObject: Comprueba si una variable representa una variable de tipo Object.

5. Las funciones matemáticas: VBA también cuenta con funciones matemáticas propias para
realizar operaciones matemáticas y que se pueden emplear en los procedimientos. Casi todas
ellas coinciden con alguna de las funciones de hoja. Te muestro algunas de ellas:

 Abs: Devuelve el valor absoluto de un número.


 Int: Devuelve la parte entera de un número decimal.
 Rnd: Devuelve un número aleatorio entre 0 y 1.
 Sqr: Devuelve la raíz cuadrada de una expresión numérica.

6. Las funciones de cadena: VBA también te ofrece muchas funciones que te permitirán trabajar
con variables de cadena. Estas son algunas de las variables de cadena más utilizadas:

 Asc: Devuelve un número enero de 0 que representa el valor ASCII de un carácter.


 Chr: Es la función inversa de Asc. Devuelve el carácter correspondiente al código ASCII
introducido.

13
 Len: Devuelve el número de caracteres de una cadena.
 Left: Devuelve un número de caracteres determinado desde la parte izquierda de la cadena.
 Right: Devuelve un número de caracteres determinado desde la parte derecha de la cadena.
 Mid: Devuelve los n caracteres de una cadena especificada, situados a partir de una
determinada posición.

7. Las funciones de fecha y hora: Con VBA también puedes realizar operaciones relacionadas con
fechas y horas. Estas son las funciones más utilizadas:

 Date: Devuelve la fecha actual del equipo.


 Now: Devuelve la fecha y la hora actuales del equipo.
 Time: Devuelve la hora actual del equipo.
 DateDiff: Devuelve la diferencia entre dos fechas.

FUNCIONES ANIDADAS
Las funciones anidadas ayudan a realizar una acción cuantas veces necesita que el usuario lo
realice.
For

14
Por medio de esta función es posible realizar una operación cuantas veces lo desee el usuario,
por ejemplo, una operación matemática, el análisis de dato y entre otras.

If
Por otra parte se encuentra esta función, la cual sirve para emplear condiciones es decir se puede
comparar dato, realizar operaciones matemáticas aquellos datos que cumpla con la condición
establecida, entre otros.

15
Select case
Esta herramienta tiene similitudes con el IF, sin embargo, esta función facilita el proceso de
condición como se muestra en el siguiente ejemplo. (Recomendaciones esta herramienta es muy
útil, se debe tener en cuenta la lógica y la función que va cumplir esta herramienta en su
programación).

16
ACTIVATE AND SELECT

Son dos comandos que se diferencian por factores de cantidad; es decir "activate" solo se puede
seleccionar solamente una hoja o una celda, mientras que con "select" se pueden seleccionar varias
celdas u hojas a la vez.
Dentro de estas identificamos unos objetos determinados tales como range y cells en la mayoría de
casos pueden ser utilizados sin distinción alguna, sin embargo, hay casos puntuales donde se
recomienda el uso de uno de los dos, son los siguientes:

 Para seleccionar una celda:

Si se quiere seleccionar la celda "A2", se tiene dos opciones.


1. Range("A2").select
2. Cells(2,3).select

cells(i,j) , donde i=fila i ; j=columna j.

 Para dar valor a una celda

Si se desea darle valor a la celda "C2" =620, se tiene dos opciones


1. ("C2").value=620
2. Cells(2,3).value=620

17
PARTICULARIDADES

Objeto Range: Permite seleccionar más de una celda.


Ejemplo:
range("A1:B5"). Select
Importante entender que el objeto cells, no permite seleccionar más de una celda.
Propiedades de Range:
- ActiveCell: Devuelve la celda activa de la ventana activa.
- Range: Devuelve un objeto Range que representa un rango de celdas.
- Cells: Otra forma de hacer referencia a las celdas.
- Rows: Devuelve un objeto Range que representa una fila de la hoja.
- Columns: Devuelve un objeto Range que representa una columna de la hoja.
- Offset: Devuelve un objeto Range desplazado de una referencia un número de filas y de
columnas determinado.
- Value: Establece el valor que tiene una celda o rango de ellas.
- FormulaLocal: Permite introducir fórmulas y funciones en tu propio idioma, como si lo
hicieses directamente en la hoja.
- End: Desplaza la celda activa a la última celda de la fila o la columna.
- Font: Establece el tipo de fuente.
- Interior: Permite modificar el fondo de la celda.
- Border: Permite modificar los bordes de la celda.
Métodos de Range:
- Select: Permite seleccionar una celda o conjunto de ellas.
- DataSeries: Permite introducir una serie de datos en un rango de celdas.
- Copy: Copia un rango de celdas en otra parte de la cuadrícula.
- ClearContents: Borra el contenido de las celdas manteniendo su formato.

Objeto Cells: Es compatible con selección de celdas bajo un patrón de formula. La ventaja del uso
del objeto cells, es permitir vincular funciones numéricas al uso de las celdas y/o a su selección.
Ejemplo:
Se desea conocer la suma que, de la combinación de una fila y columna, entonces se establece el
siguiente programa:
Sub celdasuma ()
For i = 1 To 10 For j = 1 To 10
Cells (i, j). Value = i + j
Next i
Next j
End Sub

18
EVENTOS A TENER EN CUENTA PARA LIBROS EN EXCEL:

EVENTOS A TENER EN CUENTA PARA HOJAS:

BIBLIOGRAFÍA

19
 https://www.excel-avanzado.com/ejemplos-if-en-vba
 https://www.aprenderaprogramar.com/index.php?option=com_content&view=
article&id=140:tipos-de-variables-en-visual-basic-integer-single-double-string- object-
boolean-etc-ejemplos-cu00308a&catid=37&Itemid=61
 https://www.excel-avanzado.com/vba-excel
 https://ayudaexcel.com/megaguia-macros-vba/
 https://www.excel-avanzado.com/24252/constantes-en-vba.html
 https://excelforo.blogspot.com/2014/04/vba-variables-dim-public-private-y.html
 https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=140:ti
pos-de-variables-en-visual-basic-integer-single-double-string-object-boolean-etc-ejemplos-
cu00308a&catid=37&Itemid=61
 https://www.excel-avanzado.com/10865/diferencia-entre-range-y-cells.html
 https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=140:ti
pos-de-variables-en-visual-basic-integer-single-double-string-object-boolean-etc-ejemplos-
cu00308a&catid=37&Itemid=61

 Acosta, P. (2010). MS Excel 2007 con Programación de Macros en VBA. NA: Saccec.

20

También podría gustarte