SlideShare ist ein Scribd-Unternehmen logo
1 von 75
Las Macros ¿qué son?
1

DESDE EL PUNTO DE VISTA GENERAL, PODEMOS DECIR
QUE LAS MACROS NOS AYUDAN A AUTOMATIZAR
TAREAS. SON PARTE DE CÓDIGO DE PROGRAMACIÓN
QUE ES INTERPRETADO POR EXCEL Y LLEVA A CABO
DISTINTAS ACCIONES

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
El Lenguaje VBA
2

El lenguaje de programación de las macros Visual
Basic para Aplicaciones (VBA), es un lenguaje de
programación común, pero su entorno de desarrollo
está plenamente integrado con las aplicaciones
Microsoft Office, es decir no puede ejecutarse en
forma autónoma.
La forma en la que debemos guardar los archivos de
Excel que contengan macros es “libros de Excel
habilitados para macros”, su extensión será .XLSM

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
La ficha del Programador (tome nota)
3

Esta ficha de opciones es específica para interactuar
con VBA, pero no se encuentra disponible con la
instalación básica.
Para activarla seleccionamos el BOTON OFFICE –
OPCIONES DE EXCEL – MAS FRECUENTES –
OPCIONES PRINCIPALES PARA TRABAJAR CON
EXCEL – MOSTRAR FICHA PROGRAMADOR EN
LA CINTA DE OPCIONES.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
La Seguridad : centro de confianza
4

 Ficha Programador: grupo código: seguridad de macros.
 Distintos grupos de opciones, dentro del Centro de Confianza:


Editores y Ubicaciones de confianza: son macros firmados digitalmente
para verificar la autenticidad. De esta forma, si se ejecuta un código que
no cumpla con estos criterios, el centro de confianza deshabilitará el
código en forma automática y aparecerá un mensaje, para dejar la macro
deshabilitada o habilitarla.



Configuración de ActiveX: permite habilitar o deshabilitar la utilización
de estos controles (Los controles Active X son pequeños bloques empleados para la
creación de programas, que se pueden usar para crear aplicaciones distribuidas que
funcionen a través de Internet empleando navegadores web. Algunos ejemplos
incluyen aplicaciones para la recopilación datos, para la visualización de determinados
tipos de datos o para reproducir animaciones.
El Malware, como los virus informáticos o el spyware, podría infectar accidentalmente
al usuario al visitar éste cualquier sitio web contaminado o malicioso que gestione las
descargas haciendo uso de controles ActiveX.)

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
La Grabadora de Macros
5

Se guardan todas las acciones a partir del momento

en que la activamos (Grabar macro).
Los nombres que le asignemos deben comenzar con
una letra o un carácter de subrayado. No es posible
incluir nombres que entren en conflicto, por ejemplo
A2

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejercicio 1
6

Creemos una macro que nos permita darle color a

algunas celdas.
Observa el código. Recordemos que nuestras macros
comienzan por defecto con “referencias fijas”, estos
podremos modificarlo activando el botón “usar
referencias relativas” o borrando la línea de código
que hace referencia a la selección de las celdas

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Asignar Macros a Botones
7

Sabemos que podemos ejecutar macros, mediante el

cuadro de diálogo que se abre al presionar el comando
MACROS, pero también podremos asignarles una macro
a diferentes formas y objetos.
LOS BOTONES DE FORMULARIO, son los preferidos,
solo hay que dibujarlos y presionar la opción GRABAR.
También podremos asignar una macro a una imagen,
presionando el botón dcho. sobre ella, encontraremos la
opción ASIGNAR MACRO
Además podemos incluir nuestras macros en la barra de
acceso rápido, para eso dentro de las OPCIONES DE
EXCEL incluidas en el BOTÓN DE OFFICE, elegimos
PERSONALIZAR
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejercicio 2
8

Cree una macro para eliminar la hoja actual, asígnela

a un botón de la barra de herramientas y pruebe su
funcionamiento.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
El Editor de VBA
9

Es la herramienta de VBA que nos permite analizar,

instrucción por instrucción el código de
programación de las macros y realizar las
modificaciones necesarias.
Hay varias formas de acceder:
BOTÓN VISUAL BASIC dentro de la ficha del
PROGRAMADOR
Botón MODIFICAR dentro del cuadro de diálogo
MACRO
ALT + F11
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
LAS VENTANAS
10

 Las activamos con las opciones incluidas en el menú VER
 VENTANA DE CÓDIGO

En esta se trabaja directamente con el código de programación
 VENTANA INMEDIATO
Podemos ejecutar código VBA, si escribimos directamente la
instrucción y presionamos Enter. Nos permite probar el
funcionamiento de instrucciones, sin tener que ejecutar una
macro en su totalidad.
 VENTANA INSPECCIÓN
Podemos seguir el funcionamiento de ciertas instrucciones de
nuestros procedimientos si les agregamos una “inspección”. Estas
expresiones de inspección se actualizan en forma automática
cuando se entra en modo de “interrupción” (suspensión temporal
de la ejecución de la macro).
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
11

VENTANA LOCALES

Permiten ver los valores que poseen las “variables”
definidas dentro de una macro durante su
ejecución, ejecutando en modo paso a paso (F8).
VENTANA EXPLORADOR DE PROYECTOS
Desde aquí podremos navegar por las estructura
VBA de los archivos excel que estén abiertos.
VENTANA PROPIEDADES
Visualiza las diferentes propiedades de cada uno de
los objetos de VBA que seleccionemos.
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
PASO POR PASO
12
Sub desplazamiento()
NOMBRE DE LA MACRO (COMIENZA CON SUB)
'
' desplazamiento Macro
COMENTARIOS (COMIENZAN CON ´)
' Selecciono la celdas de la hoja A1 y las pinto en azul, luego me voy a la hoja 2 y hago lo mismo
'
' Acceso directo: Ctrl+Mayús+D
'
Range("A1:A101").Select
SELECCIONA EL RANGO DE LA HOJA ACTIVA
With Selection.Interior
LO TRATAMOS EN LA PROXIMA DIAPOSITIVA
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
Sheets("Hoja2").Select
SELECCIONAMOS LA HOJA 2
Range("B2:M22").Select
La línea que genera el cambio
With Selection.Interior
de color es ThemeColor…
.Pattern = xlSolid
Probemos Depurando.
.PatternColorIndex = xlAutomatic
Veamos que sucede al quitar
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.399975585192419
Range(…).Select
.PatternTintAndShade = 0
End With
End Sub
FIN DE LA MACRO
WITH…END WITH

(tome nota)

13

 Ejecuta una serie de instrucciones sobre un ÚNICO OBJETO.

Consta de 2 partes: un objeto definido sobre el cual actuarán las
instrucciones y una serie de comandos que actuaran sobre ese
objeto (generalmente cambios en el formato).
Selection.Font.Bold = True
Selection.Font.Name = “Arial”
Selection.Font.Size = 16
Selection.Font.Underline = xlUnderlineStyleNone
 También se podría usar así:
With Selection.Font
Bold = True
Name = “Arial”
Size = 16
Underline = xlUnderlineStyleNone
End With
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
A Practicar !
14

 Agregue la ficha de opciones Programador.
 Recorra los distintos comandos incluídos en el grupo

Código
 Con la grabadora, realice una macro que permita
desplazarse dentro de una planilla, moviéndose una
pantalla hacia la derecha. Luego haga otras que realicen lo
mismo pero hacia la izquierda, hacia arriba y hacia abajo.
(AvPag y RePag, ALT + AvPag o ALT + RePag) Tenga en
cuenta que será necesario utilizar referencias absolutas.
 Asigne las macros anteriores a botones, imágenes y barra
de acceso rápido con su correspondiente ícono.
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
A Practicar!
15

Tome las macros anteriores y haga un análisis del

código, elimine líneas innecesarias.
Cree una macro que modifique las opciones de
relleno, fuente, tamaño y color de fuente con la
grabadora. Reemplace la construcción With que
aparece en el código generado por las instrucciones
por separado.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
MÉTODOS, PROPIEDADES, OBJETOS Y
COLECCIONES
16

Hemos trabajado con diferentes objetos, como una
celda, una hoja, un libro, etc. Sobre estos objetos
podemos aplicar MÉTODOS(acciones que pueden
realizar los objetos). En VBA, antes de aplicar un
método debemos identificar al objeto. Ej:
Sub Fuente()
Selection.Font.Bold = True
End Sub

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Podemos definir a los EVENTOS como toda ACCIÓN que
puede ser reconocida por un objeto, por ejemplo, el clic
del mouse sobre un botón o la pulsación de alguna
tecla
Una COLLECIÓN es un OBJETO QUE CONTIENE
VARIOS OBJETOS.Por ej: la colección de
WORKBOOKS (que también es un objeto) contiene
todos los objetos WORKBOOK abiertos.
Sub Cerrar_libro()
ActiveWorkbook. Close
End Sub
Sub Cerrar_todos()
Workbooks.Close
End Sub
Asoc. club de Programadores -Macros-VBA - Lic.
Carina V. Grosso

17
Proteger la Hoja Activa
Sub protejohoja()
ActiveSheet.Protect “contraseña”
End Sub
Desproteger la Hoja Activa
Sub desprotejohoja()
ActiveSheet.Unprotect “contraseña”
End Sub
Proteger Macros
En el Editor de Visual Basic, menú Herramientas, submenú Propiedades
de (aquí saldrá el nombre de tu archivo), se abrirá un cuadro de diálogo
con dos fichas General y Protección, en Protección marcá la casilla de
verificación “Bloquear proyecto para su visualización” y establece la
contraseña.
Asoc. club de Programadores -Macros-VBA - Lic. Carina V.
Grosso

18
MACROS POR EVENTOS
19

 EJECUTAR MACROS AL ABRIR ARCHIVOS

cuando abrimos archivos es posible ejecutar macros que
realicen ciertas acciones en forma automática. Este tipo
de macros son privadas del libro o de la hoja en cuestión
y por lo tanto comienzan con la construcción Private
Sub y terminan con End Sub
 Ejemplo:
Realicemos una macro autoejecutable, para que al abrir
el libro nos ubique en la celda C5.
-Seleccionamos el objeto ThisWorkbook, accedemos a la
ventana código y en la lista desplegable elejimos el objeto
Workbook.
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejecutar una macro al abrir Archivo
20

Dentro del procedimiento escribimos:
Sheets(1).Select (hace refernecia a la primera hoja ubicada en nuestro libro, independientemente de cual sea su nombre)
Range(“C5”).Select
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Último Registro - Offset
21

Supongamos que tenemos una hoja con varios datos y queremos posicionarnos
en el último para seguir cargando.
Sheets(“Datos”).Select
Range(“A10000”)
Selection.End(xlUp).Select
(Es ideal comenzar desde muy abajo, si lo hacemos con la grabadora nos
ubicamos en la celda A10000 y luego presionamos las teclas CTRL + Flecha
arriba, con esto nos ubicamos en el último registro pero la idea es situarnos una
fila abajo): incluímos
ActiveCell.Offset(1,0).Select
OFFset: nos permite desplazarnos a partir de una celda fija
Offset(Row, column) valores positivos abajo y a la derecha, negativos hacia
arriba y a la izquierda: Offset(2,-1)dos filas hacia abajo, 1 colummna a la
izquierda.
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejecutar Macros al cerrar Archivos
22

Esto lo lograremos en la ventana de código del objeto Thisworkbook,
lista desplegable BeforeClose
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub
Otros Eventos del Workbook
Activate y Deactivate (ejecuta la macro cuando tenemos varios libros abiertos a
la vez y activamos o desactivamos alguno).
BeforePrint (antes de imprimir)
PrintPreview (nos mostrara la presentación preliminar de una determinada
selección).
BeforeSave disparará la macro antes de grabar nuestro archivo.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Eventos Worksheet
23

Estos procedimientos de eventos se encuentran

relacionados con la hoja en la que se encuentra
insertado el código VBA
Activate, Deactivate
BeforeRightClick (presionamos el botón derecho del
mouse.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Para tener en cuenta
24

 Conviene incluir en los métodos abreviados de ejecución de

macro la tecla MAYÚSCULA, para no reemplazar una atajo de
excel, quedaría CTRL + MAYÚSCULA + Carácter
 Para salir del editor de VBA podemos utilizar ALT + Q
 Para ejecutar una macro en forma automática cuando se abre
el archivo, debemos incluir el código VBA dentro del objeto
THISWORKBOOK
 Si deseamos que la macro siempre esté disponible, para que se
pueda cargar en forma automática al abrir Excel debemos
guardarla en c:Documents ad SettingsDatos de
ProgramaMicrososftExcelXLSTART
 Para modificar las característcas del Editor vamos al menú
Herramientas/Opciones…
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
A Practicar!
25

Cree una macro de inicio que ajuste la visualización

de la pantalla al 75%. Puede utilizar la grabadora
para generar las líneas de código y luego incorporarla
al Thisworkbook

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Las Variables
26

Una variable es un lugar de almacenamiento con nombre, es decir
un espacio de mem0ria que puede contener ciertos tipos de datos y
que , a su vez, se puede modificar durante la ejecución de la macro.
Declaración de Variables
El nombre de las variables debe ser único y no contener más de 255
caracteres. Es recomendable declarar las variables y distinguir tres
situaciones:
Procedimiento: la variable que declaremos dentro de un
procedimiento, Sub o Function
Módulo: serán declaradas fuera de cualquier procedimiento y son
válidas en todo el módulo.
Pública: las variables que declaremos mediante la instrucción Public
estarán disponibles para todos los procedimientos en todos los
módulos de todas las macros.
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Las Variables
27

Para declarar variables utilizamos la instrucción Dim. Si incluímos
esta instrucción a nivel procedimiento, solo tendrá efecto en la macro
en cuestión.
Ej:
Dim variable1 as string
Dim variable2 as boolean
Si queremos utilizar las variables para distintas macros podemos
definirlas en la sección Declaraciones de la ventana código y así lograr
que tengan validez en todo el módulo

Si queremos que sea pública:
Public variable1 as string
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Tipo de Datos de Variables
28
 String: puede contener letras, nros, espacios y signos de puntuación:

Dim mivariable$ es igual a
 Dim mivariable as string * 20 (20 caracteres de espacio)
Boolean: True o False ( si se convierte a numérico el 0 es false, 1 es true)
 Números enteros: dentro de los números enteros tenemos varios tipos de datos
dependiendo el rango que queramos utilizar:
 Byte: puede almacenar números enteros dentro del rango desde 0 a 255
 Integer: puede almacenar números enteros dentro del rango -32.768 a 32.767 (se
puede declarar con el signo %)
 Long: puede almacenar números enteros dentro del rango -2.147.483.648 hasta
2.147.483.648 . (se puede declarar con el signo &)
 Currency: útil para cálculos monetarios. (se puede declarar con el signo @)
 Números decimales: para almacenar números decimales contamos con los
siguientes tipos de datos:
 Single: almacena números decimales en el rango +/- 1e-45 hasta 3e38 (se puede
declarar con el signo !)
 Double: desde +/- 5e-324 hasta 1.8e308 (se puede declarar con el signo #)


Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Variables
29
 Fechas y horas: Para almacenar fechas y horas se utiliza la palabra Date
 Tipo variant : Las variables de este tipo pueden almacenar cualquier tipo de

valor, pero ocupan mas memoria.
Ejemplos:
Dim num1 As Integer
Dim num2 As Integer
num1 = 10
num2 = 20
'se mostrará un mensaje con la suma de las variables con el resultado 30
MsgBox num1 + num2

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Mas variables
30

 La ventana locales es fundamental cuando trabajamos con variables ya

que nos permite visualizar los valores que toman.

Públicas, privadas y estáticas
La instrucción Public nos permite declarar variables que se utilizan en
cualquier procedimiento de un proyecto
Public mivariable as integer
Private: (equivalente a utilizar Dim) sólo podrán ser utilizadas a nivel
del mismo módulo
Private mivariable as variant
Static: mantendrá su valor entre las distintas llamadas hasta que se
reinicie el módulo

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Constantes
31

Las constantes, como las variables, se utilizan para guardar datos y
valores para nuestro programa, pero a diferencia de estas últimas (las
variables), el contenido que almacenen no cambia, siempre es
constante.
A diferencia de las variables que se declaran con la palabra Dim, las
Constantes se declaran con la palabra Const.
Const numero = 53
En la línea anterior he creado una constante, que la llamé numero y va a
almacenar un número , y este valor, cuando se ejecute mi programa se
mantendrá invariable.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Constantes
32

Las constantes, como las variables, se utilizan para guardar datos y
valores para nuestro programa, pero a diferencia de estas últimas (las
variables), el contenido que almacenen no cambia, siempre es
constante.
A diferencia de las variables que se declaran con la palabra Dim, las
Constantes se declaran con la palabra Const.
Const numero = 53
En la línea anterior he creado una constante, que la llamé numero y va a
almacenar un número , y este valor, cuando se ejecute mi programa se
mantendrá invariable.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Option Explicit
33
 El Option Explicit se utiliza a nivel de módulo (sin ningún tipo de argumento

al inicio del módulo) para forzar la declaración explícita de todas las variables
en este módulo. Esta declaración debe aparecer en la parte superior del
módulo, antes de cualquier procedimiento.
 Cuando esta declaración se usa, un mensaje de error identifica cualquier
variable no definida o mal escrita.
Para que Option Explicit se inserte automáticamente en cada nuevo libro:
Ir a la barra del menú del editor de macros.
Menú Herramientas
Opciones
En la ficha Editor, marca "Requerir declaración de variables".

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Cajas con Mensajes
34

Los InputBox
Con esta herramienta se mostrará un cuadro de diálogo en pantalla,
en el cual se podrá introducir un texto que devolverá un string que se
podrá almacenar en una variable.
Sintaxis
InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
La sintaxis de la función InputBox consta de estos argumentos:
(Si deseamos omitir algunos argumentos de posición, debemos incluir
el delimitador de coma correspondiente).

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Argumentos del InputBox
35
Parte

Descripción

prompt

Requerido. Cadena que se muestra como mensaje en el cuadro de diálogo. La longitud máxima de
prompt es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados.

title

Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si omite
title, en la barra de título se coloca el nombre de la aplicación.

default

Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada
cuando no se suministra una cadena. Si omite default, se muestra el cuadro de texto vacío.

xpos

Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontal entre el
borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro
de diálogo se centra horizontalmente.

ypos

Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el borde
superior del cuadro de diálogo y el borde superior de la pantalla. Si se omite ypos, el cuadro de
diálogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el borde superior de
la misma.

helpfile

Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utilizará para proporcionar
ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá especificarse
context.

context

Opcional. Expresión numérica que es el número de contexto de Ayuda asignado por el autor al tema
de Ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejemplo con InputBox
36

La siguiente orden genera un cuadro al cual le indicamos texto, título y
asignamos el texto que escriba el usuario a la variable cadena:
Dim cadena As String
cadena = InputBox("Introduzca el nombre del usuario",
"Identificación")
Observar que como asignamos el resultado de la función InputBox a una
variable, debemos encerrar los argumentos entre paréntesis.
El resultado en ejecución es:

Es posible separar las líneas con chr(13) y chr(10), InputBox(“…”& chr(13)& “…”)
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Macro Para realizar sumas
37

Sub Sumatoria()
Dim valor1 As Double
Dim valor2 As Double
Dim total As Double
valor1 = InputBox("Ingrese el primer valor a sumar")
valor2 = InputBox("Ingrese el segundo valor a sumar")
total = valor1 + valor2
Range("A1") = total
End Sub

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Los MsgBox
38
MsgBox: Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic
en un botón y devuelve un tipo Integer correspondiente al botón elegido por el usuario.
Sintaxis
MsgBox(prompt[, buttons][, title][, helpfile, context])
La sintaxis de la función MsgBox consta de estos argumentos:
Parte

Descripción

prompt

Requerido. Cadena que representa el prompt en el cuadro de diálogo. La longitud máxima de prompt es
de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados.

buttons

Opcional. Expresión numérica que corresponde a la suma de los valores que especifican el número y el tipo
de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del botón
predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor
predeterminado para buttons es 0.

title

Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si se omite title,
en la barra de título se coloca el nombre de la aplicación.

helpfile

Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda
interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar context.

context

Opcional. Expresión numérica que es igual al número de contexto de Ayuda asignado por el autor al tema de
Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Argumento Buttons - iconos
39
Constante

Valor

Descripción

VbOKOnly

0

Muestra solamente el botón Aceptar.

VbOKCancel

1

Muestra los botones Aceptar y Cancelar.

VbAbortRetryIgnore

2

Muestra los botones Anular, Reintentar e Ignorar.

VbYesNoCancel

3

Muestra los botones Sí, No y Cancelar.

VbYesNo

4

Muestra los botones Sí y No.

VbRetryCancel

5

Muestra los botones Reintentar y Cancelar.

VbCritical

16

Muestra el icono de mensaje crítico.

VbQuestion

32

Muestra el icono de pregunta de advertencia.

VbExclamation

48

Muestra el icono de mensaje de advertencia.

VbInformation

64

Muestra el icono de mensaje de información.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Buttons
40
VbDefaultButton1

0

El primer botón es el predeterminado.

VbDefaultButton2

256

El segundo botón es el predeterminado.

VbDefaultButton3

512

El tercer botón es el predeterminado.

VbDefaultButton4

768

El cuarto botón es el predeterminado.

VbApplicationModal

0

Aplicación modal; el usuario debe responder al cuadro de
mensajes antes de poder seguir trabajando en la aplicación
actual.

VbSystemModal

4096

Sistema modal; se suspenden todas las aplicaciones hasta
que el usuario responda al cuadro de mensajes.

VbMsgBoxHelpButton

16384

Agrega el botón Ayuda al cuadro de mensaje.

VbMsgBoxSetForeground

65536

Especifica la ventana del cuadro de mensaje como la
ventana de primer plano.

VbMsgBoxRight

524288

El texto se alinea a la derecha.

VbMsgBoxRtlReading

1048576

Especifica que el texto debe aparecer para ser leído de
derecha a izquierda en sistemas hebreo y árabe.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejemplo
41

La siguiente orden genera un cuadro al cual le indicamos título, texto, le
ponemos tres botones: Sí, No y Cancelar. Además le incluimos el icono de
pregunta:
MsgBox "¿Esta seguro de que quiere continuar?", vbYesNoCancel +
vbQuestion, "Confirmación"
El resultado en ejecución es:

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejercicios
42
1

Establezca y declare tres variables de tipo de dato distintas (String, Long, Date)
a nivel del módulo.

2

Incluya un ImputBox cuyo origen sea una variable del tipo String que luego se
muestre en un MsgBox con botones Sí y No (4) y un icono de pregunta.(32)

3

Modifique la macro que permite realizar sumas para poder hacer
multiplicaciones y haga los ajustes necesarios en el MsgBox.

4

Ajuste el MsgBox del punto anterior para que se muestren en el mismo
mensaje los valores de cada una de las variables y su resultado.

5

Realice una nueva macro con ImputBox que le permita hacer la suma entre dos
valores y luego multiplicarlos por un tercer valor. El resultado debe mostrarlo
en un MsgBox y también volcarlo en alguna celda de la planilla.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Para tener en cuenta
43

 Un punto que debemos tener en cuenta es la actualización de pantalla,

por defecto al ejecutar una macro vemos todas las acciones que se
realizan, esto puede provocar confusión y pérdida de tiempo, para
evitarlo podremos agregar la instrucción:
Application.ScreenUpdating=True

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
El libro Personal (1)
44

 En excel, disponemos de un libro oculto llamado personal.xls (en Excel 2007, tiene

extensión xlsb, por lo que se llamará personal.xlsb), como seguramente ya conocerás.
También sabrás seguramente, que este libro es de una gran utilidad si utilizas
habitualmente los mismos macros en diferentes libros. En el libro personal.xls (o
personal.xlsb, si usas Excel 2007) podemos tener almacenadas nuestras macros más
habituales, para poder utilizarlas en cualquier otro libro de excel, sin necesidad de tener
que implementar el código VBA en estos nuevos libros que vamos abriendo o creando.
Para grabar una macro en el libro oculto personal.xls (o personal.xlsb, si usas Excel
2007), tan solo deberemos indicar en el momento de su creación, que queremos que se
almacene en el mencionado libro. Para ello, utilizaremos la grabadora de macros.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
El libro Personal (2)
45
Una vez elegido el sitio donde vamos a grabar el macro, esto es, en el libro de macros
personal, bien podemos detener la grabación, o bien podemos realizar las tareas que
queremos que grabe el macro. En cualquiera de los casos, una vez finalizada la grabación
del macro, si accedemos al modo VBA pulsando Alt+F11, nos encontraremos con que
aparece un nuevo proyecto llamado PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel
2007) , tal y como se muestra en la imagen:

Asoc. club de Programadores -Macros-VBA - Lic.
Carina V. Grosso
El libro Personal (3)
46
 Dentro de la categoría de Módulos, podremos editar el código del macro, borrarlo, o

crear nuevos macros, y todos ellos los tendremos disponibles siempre, aunque estemos
trabajando con uno, cinco, o veinte ficheros de excel diferentes.
Cuando vayamos a ejecutar un macro, llamándolo desde Herramientas, Macro,
Macros…, nos aparecerán las macros propias del libro con el cual estemos trabajando,
junto con las macros grabadas en el fichero personal.xls (o personal.xlsb, si usas
Excel 2007), tal y como se muestra en la siguiente imagen:

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
El libro Personal (4)
47
Dos últimas cuestiones que mencionar respecto al libro PERSONAL.XLS (o
PERSONAL.XLSB, si usas Excel 2007):
1.- Podemos ver que realmente se trata de un fichero oculto, desde Ventana, y
seleccionando Mostrar….
2.- Para grabar las macros en PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel
2007), cuando cerremos excel, nos saldrá un y al que tendremos que contestar con un
rotundo sí, si lo que deseamos es grabar esas macros en el libro oculto, para que estén
disponibles siempre que las necesitemos:
Si lo que deseamos es llamar a una función personalizada que tengamos en el libro
personal, lo haremos de esta forma (suponiendo que la función que hayas creado se llame
mifuncion):
=PERSONAL.XLS!mifuncion()

Asoc. club de Programadores -Macros-VBA - Lic.
Carina V. Grosso
Construcciones Condicionales
48

 Construcción If…Then…Else

Con esta construcción podemos ejecutar un grupo de instrucciones
dependiendo del resultado de una expresión.
If condición Then
instrucciones en caso de cumplirse la condición
Else
instrucciones en caso de no cumplirse la condición. Aquí también es
posible incluír la instrucción ElseIf que nos permitirá incluír un nuevo
bloque If
End if

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejemplos
49

Sub Ejemplo_if()
If Range(“A1”) = 12 Then
Range(“B1”)=Range(“A1”).Value
Else
Range(“B3”)=Range(“A1”).Value
End If
End Sub

Construcciones sin instrucciones Else
If Range(“A1”) > 1000
Range(“B1”)=Range(“A2”) .Value+ 100
End If
Asoc. club de Programadores -Macros-VBA - Lic.
Carina V. Grosso
ElseIf
Sub Operaciones_Msg()
Dim valor1 As Double
50
Dim valor2 As Double
Dim total As Double
Dim operacion As String
Dim signo As String
valor1 = InputBox("Ingrese el primer valor")
valor2 = InputBox("Ingrese el segundo valor")
operacion = ucase(InputBox("ingrese la operacion:SUMA, RESTA, MULTIPLICA, DIVIDE"))
If operacion = "SUMA" Then
total = valor1 + valor2
signo = "+"
ElseIf operacion = "RESTA" Then
total = valor1 - valor2
signo = "-"
ElseIf operacion = "MULTIPLICA" Then
total = valor1 * valor2
Ucase:convierte de minus. a
signo = "*"
mayus.
ElseIf operacion = "DIVIDE" Then
Lcase :de mayusc. A minusc
total = valor1 / valor2
signo = "/"
End If
MsgBox ("El resultado de:" & valor1 & signo & valor2 & " es: " & total)
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Al abrir un archivo
51

Private Sub Workbook_Open()
Application.DisplayAlerts = False
If ActiveWorkbook.ReadOnly Then
MsgBox "El archivo está siendo utilizado por otro
usuario, vuelva a intertarlo mas tarde, gracias",
vbExclamation
ActiveWorkbook.Close savechanges:=False
End If
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Valores devueltos por los botones del MsgBox
52

Constante

Valor

OK

1

CANCEL

2

ABORT

3

RETRY

4

IGNORE

5

YES

6

NO

7

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Select Case
53

 Ejecuta uno o varios grupos de instrucciones, dependiendo del valor

que resulte de la condición de prueba.
Sub uso_del_case()
Dim opcion As Single
opcion = InputBox("Elija una opción")
Select Case opcion
Case 1 To 4
Sheets(1).Select
Range("A1").Select
Case 5, 6
Sheets(2).Select
Range("A10").Select
Case Is = 7
Sheets("Hoja3").Select
Range("b15").Select
Case Is > 8
MsgBox "Opcion fuera de rango", 0 + vbCritical, "Aviso"
End Select
End Sub

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Funciones Personalizadas
54

 Este tipo de procedimientos se incluíra dentro de una estructura

Function…End Function, u debemos designar variables que
formarán los argumentos o parámetros de esta función:
Function Cargas(salario As Double, tipo As Integer)
If tipo = 1 Then
Cargas = salario * 0.33
ElseIf tipo = 2 Then
Cargas = salario * 0.25
ElseIf tipo = 3 Then
Cargas = salario * 0.18
End If
End Function
(Se ejecuta en excel desde la barra : =cargas(c5;d5)
Asoc. club de Programadores -Macros-VBA - Lic. Carina V.
Grosso
Los Bucles
55

Son estructuras que nos permiten realizar

repeticiones de instrucciones
Tipos de Bucles
Do While condición
instrucciones
Loop
Ejecutará el bloque mientras se cumpla una determinada
condición

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
DO…LOOP…WHILE
56

DO WHILE…LOOP

DO…LOOP WHILE

Sub bucledo_while()
Dim cantidad As Integer
Dim condicion As Integer
cantidad = 0
condicion = 15

Sub bucle_do_loop_while()
Dim cantidad As Integer
Dim condicion As Integer
cantidad = 0
condicion = 15

Do While condicion > 0
condicion = condicion - 1
cantidad = cantidad + 1
Loop
MsgBox ("el bucle se ejectuto " &
cantidad & " veces")
End Sub

Do
condicion = condicion - 1
cantidad = cantidad + 1
Loop While condicion > 0
MsgBox ("el bucle se ejectuto " &
cantidad & " veces")
End Sub

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Los Bucles
57

Do Until condición
instrucciones
Loop
Se ejecutará el bloque de condiciones hasta que la
condición incluída tome el valor true

Asoc. club de Programadores -Macros-VBA - Lic.
Carina V. Grosso
DO…UNTIL…LOOP
58

DO UNTIL…LOOP

DO…LOOP UNTIL

Sub bucledo_until()
Dim cantidad As Integer
Dim condicion As Integer
cantidad = 0
condicion = 0

Sub bucledo_loopuntil()
Dim cantidad As Integer
Dim condicion As Integer
cantidad = 0
condicion = 0

Do Until condicion = 15
condicion = condicion + 1
cantidad = cantidad + 1
Loop
MsgBox ("el bucle se ejectuto " &
cantidad & " veces")
End Sub

Do
condicion = condicion + 1
cantidad = cantidad + 1
Loop Until condicion = 15
MsgBox ("el bucle se ejectuto " &
cantidad & " veces")
End Sub

Asoc. club de Programadores -Macros-VBA - Lic. Carina V.
Grosso
FOR…NEXT
59

 Esta construcción de bucle se puede utilizar para ejecutar un grupo de

instrucciones un determinado número de veces. Los bucles For…Next
usan una variable contador cuyo número se aumenta o disminuye
cada vez que se ejecuta el bucle, hasta alcanzar el valor establecido en la
condición.
 Por defecto este bucle aumenta su valor en 1, pero es posible dar pasos
mas grandes si utilizamos la instrucción Steep. Ejemplo:
For i = 1 to 40 steep 2

avanza de 2 en 2

También podemos ir hacia atrás
For i = 40 to 1 steep -2 retrocede de 2 en 2
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejemplo con For…Next
60

Sub bucle_for()
Dim i As Integer
Dim contador As Integer
For i = 1 To 15
contador = contador + 1
Next i
MsgBox "El bucle for se ejecutó " & contador & " veces",
vbInformation, "Aviso“
End Sub

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
For Each…Next
61

Esta variante del bucle For…Next repite el grupo de instrucciones para
cada uno de los objetos de una colección o para cada elemento de una
matríz. Por ejemplo, podríamos afectar a todas las celdas de un
determinado rango o a todos los objetos Sheet de la colección Sheets.
En el siguiente ejemplo recorreremos cada uno de los objetos Hojas de la
colección worksheets, para comprobar que la celda A1 esté vacía:
Sub forhojas()
Dim mihoja
For Each mihoja In Worksheets
If mihoja.Range("g1") = "" Then
mihoja.Range("g2") = "funciona?"
End If
Next mihoja
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V.
Grosso
Exit
62

Con esta instrucción podemos salir de un bucle y

hasta de una función o de un procedimiento.
EXIT DO: es la instrucción para salir de un bucle
Do…Loop. Le transfiere el control a la instrucción
siguiente a Loop.
EXIT FOR: sale de un bucle For…Next o For Each…
Next. Le transfiere el control a la instrucción
siguiente a Next.
EXIT FUNCTION, EXIT SUB: nos permiten salir
inmediatamente de un procedimiento o función
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ejemplo
63

Sub do_celdas_exit()
Dim mifila
Dim micol
mifila = 1
micol = 1
Do Until mifila = 100
Cells(mifila, micol).Select
If ActiveCell = 100 Then
Exit Do
End If
mifila = mifila + 1
Loop
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Input con Validación
64

Sub validar_numero()
Dim mivalor
Do
mivalor = InputBox("Ingrese el precio de venta del
artículo: ")
Loop Until IsNumeric(mivalor)
[b4] = mivalor * 0.2
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
SUMO POR COLORES
65

Function sumarporcolores(rango_suma)
Dim color
Dim micelda
Dim suma
color = ActiveCell.Interior.ColorIndex
For Each micelda In rango_suma
If micelda.Interior.ColorIndex = color Then
sumarporcolores = sumarporcolores + micelda.Value
End If
Next
End Function
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Ocultar todo
66

Sub ocultar_todo()
Dim mihoja As Worksheet
For Each mihoja In Worksheets
mihoja.Visible = xlVeryHidden
' mihoja.visible=xlsheetvisible ' para mostrar
On Error GoTo salida 'el libro tiene que tener por lo menos 1 hoja
visible, así que se pone esta sentencia para que no dé error
Next mihoja
salida:
Exit Sub
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
LOS FORMULARIOS
67

Los formularios son ventanas o cuadros de

diálogo de VBA que pueden contener distintos
controles y formularios secundarios. Permiten la
interacción entre la aplicación y el usuario. Un
formulario es un objeto Userform de la colección
Userforms
Elegimos Menú Insertar: Userform

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Formularios
68

Al insertar un formulario, se dispondrá del cuadro de
herramientas compuesto por un conjunto de botones de
control del formulario, los que se muestra en la siguiente
figura.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Formularios
69

Por debajo de la ventana de proyectos se dispondrá de la Ventana de Propiedades.
En esta ventana se visualizará las propiedades que posee un determinado
objeto. En la siguiente imagen se muestra la ventana de propiedades de un
formulario, ya que éste es el que está activo.

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Mostrar un formulario
70

Para mostrar un objeto Useform podemos utilizar
los métodos Show y Hide. De esta forma, con una
macro podemos llamar a un formulario.
Sub Mostrar_form()
userform1.show
End Sub
Sub oculto_form
userform1.hide
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Los controles de un Formulario
71

Haga click aquí para ver el documento Resumen de controles de Formulario

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
El Primer Formulario
72

Introducimos un Userform
Modificamos el nombre con la propiedad Name y el
título con la propiedad Caption
A modo de ejemplo incluíremos un control
CommandButton que al hacer clic sobre él
cambie su nombre.
Al hacer doble clic sobre un control, accedemos al
código VBA Private asignado a una determinada
acción

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Mi Primer Formulario
73

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Código del botón
74

Private Sub boton1_Click()
Dim nombre_actual As String
Dim nombre_nuevo As String
Dim nro As Integer
nombre_actual = Formulario1.Caption
MsgBox "El título actual del formulario es " & nombre_actual
nro = Right(Formulario1.Caption, 2) + 1
nombre_nuevo = "Mi Formulario " & nro
Formulario1.Caption = nombre_nuevo
MsgBox "El título nuevo del formulario es " & nombre_nuevo
End Sub
Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
Procedimientos y Eventos
75

Siempre que trabajamos con formularios utilizamos macros relacionadas
con eventos o acciones, ya sea al hacer un clic en un botón o
desplegar una lista. También es posible ejecutar macros relacionadas
con eventos del formulario.
Si hacemos doble clic sobre el cuerpo del formulario, accedemos al código
VBA relacionados con eventos del formulario

Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso

Weitere ähnliche Inhalte

Was ist angesagt?

Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteriaTutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteriaCECYT Num. 6, Miguel Othon de Mendizabal
 
Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010aliesti
 
Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Alejandro Centeno
 
Tutorial visual basic 6
Tutorial visual basic 6Tutorial visual basic 6
Tutorial visual basic 6leymar286
 
Presentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalezPresentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalezRenee Gonzalez
 
introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#Eduardo Carrillo
 
Excel Avanzado 2007 y Macros
Excel Avanzado 2007 y MacrosExcel Avanzado 2007 y Macros
Excel Avanzado 2007 y MacrosPatricia Acosta
 
Loreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicLoreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicloreidysgonzales
 

Was ist angesagt? (20)

Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteriaTutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
Tutorial Excel 2010 VBA macro diferencias de horas prof. carlos montiel renteria
 
Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010Introduccion a las macros y vba en office 2010
Introduccion a las macros y vba en office 2010
 
Macros en excel
Macros en excelMacros en excel
Macros en excel
 
Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 
Tutorial visual basic 6
Tutorial visual basic 6Tutorial visual basic 6
Tutorial visual basic 6
 
Presentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalezPresentacion 2 estructuras de control web renee gonzalez
Presentacion 2 estructuras de control web renee gonzalez
 
Creando macros
Creando macrosCreando macros
Creando macros
 
Macros
MacrosMacros
Macros
 
Funciones y macros con excel
Funciones y macros con excelFunciones y macros con excel
Funciones y macros con excel
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Como crear un macro
Como crear un macroComo crear un macro
Como crear un macro
 
introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#
 
Excel Avanzado 2007 y Macros
Excel Avanzado 2007 y MacrosExcel Avanzado 2007 y Macros
Excel Avanzado 2007 y Macros
 
Visual basic.
Visual basic.Visual basic.
Visual basic.
 
Windows forms c# visual basic .net ejercicios
Windows forms c# visual basic .net ejerciciosWindows forms c# visual basic .net ejercicios
Windows forms c# visual basic .net ejercicios
 
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
Primeros Ejemplos Usando Operadores en Visual C# (C Sharp)
 
Curso de excel avanzado tema 6 macros
Curso de excel avanzado tema 6 macrosCurso de excel avanzado tema 6 macros
Curso de excel avanzado tema 6 macros
 
Loreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicLoreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basic
 

Andere mochten auch

Visual basic para aplicaciones
Visual basic para aplicacionesVisual basic para aplicaciones
Visual basic para aplicacionesShagamd
 
Arduino internet cosas
Arduino internet cosasArduino internet cosas
Arduino internet cosasKiwibot
 
Ejercicio para aprender Macros en Excel (VBA)
Ejercicio para aprender Macros en Excel (VBA)Ejercicio para aprender Macros en Excel (VBA)
Ejercicio para aprender Macros en Excel (VBA)Luis Humberto Lara
 
MANUAL DE ACCES 2016 aguilar landeo meliza mayumi
MANUAL DE ACCES 2016 aguilar landeo meliza mayumiMANUAL DE ACCES 2016 aguilar landeo meliza mayumi
MANUAL DE ACCES 2016 aguilar landeo meliza mayumiWILDER VILCAHUAMAN
 
Curso de crackeo para empezar desde cero leccion 1 clase10
Curso de crackeo para empezar desde cero leccion 1 clase10Curso de crackeo para empezar desde cero leccion 1 clase10
Curso de crackeo para empezar desde cero leccion 1 clase10Tensor
 
Introduccion a arduino 97
Introduccion a arduino 97Introduccion a arduino 97
Introduccion a arduino 97Pedro Cuadros
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008Alex Vasquez
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónmilenka796
 
Acceso A Datos Y Ado.Net
Acceso A Datos Y Ado.NetAcceso A Datos Y Ado.Net
Acceso A Datos Y Ado.Netjennysofia
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERDarwin Durand
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasRafael Seg
 
El libro negro del hacker
El libro negro del hackerEl libro negro del hacker
El libro negro del hackermaster192
 
Guía de Inicio Rápido de Microsoft Excel 2016
Guía de Inicio Rápido de Microsoft Excel 2016Guía de Inicio Rápido de Microsoft Excel 2016
Guía de Inicio Rápido de Microsoft Excel 2016Alfredo Vela Zancada
 
Manual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoManual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoRamiro Hernandez Michua
 
Planificación del entrenamiento
Planificación del entrenamientoPlanificación del entrenamiento
Planificación del entrenamientoJavier Pérez
 
PRACTICAS "COMANDOS Y REDES" PDF.
PRACTICAS "COMANDOS Y REDES" PDF.PRACTICAS "COMANDOS Y REDES" PDF.
PRACTICAS "COMANDOS Y REDES" PDF.Kim Sorel Rush
 

Andere mochten auch (20)

MODULO
MODULOMODULO
MODULO
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Ado.net
Ado.netAdo.net
Ado.net
 
Visual basic para aplicaciones
Visual basic para aplicacionesVisual basic para aplicaciones
Visual basic para aplicaciones
 
Arduino internet cosas
Arduino internet cosasArduino internet cosas
Arduino internet cosas
 
Ejercicio para aprender Macros en Excel (VBA)
Ejercicio para aprender Macros en Excel (VBA)Ejercicio para aprender Macros en Excel (VBA)
Ejercicio para aprender Macros en Excel (VBA)
 
MANUAL DE ACCES 2016 aguilar landeo meliza mayumi
MANUAL DE ACCES 2016 aguilar landeo meliza mayumiMANUAL DE ACCES 2016 aguilar landeo meliza mayumi
MANUAL DE ACCES 2016 aguilar landeo meliza mayumi
 
Curso de crackeo para empezar desde cero leccion 1 clase10
Curso de crackeo para empezar desde cero leccion 1 clase10Curso de crackeo para empezar desde cero leccion 1 clase10
Curso de crackeo para empezar desde cero leccion 1 clase10
 
Introduccion a arduino 97
Introduccion a arduino 97Introduccion a arduino 97
Introduccion a arduino 97
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturación
 
Acceso A Datos Y Ado.Net
Acceso A Datos Y Ado.NetAcceso A Datos Y Ado.Net
Acceso A Datos Y Ado.Net
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVER
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemas
 
El libro negro del hacker
El libro negro del hackerEl libro negro del hacker
El libro negro del hacker
 
Guía de Inicio Rápido de Microsoft Excel 2016
Guía de Inicio Rápido de Microsoft Excel 2016Guía de Inicio Rápido de Microsoft Excel 2016
Guía de Inicio Rápido de Microsoft Excel 2016
 
Manual basico de practicas con Arduino uno
Manual basico de practicas con Arduino unoManual basico de practicas con Arduino uno
Manual basico de practicas con Arduino uno
 
Planificación del entrenamiento
Planificación del entrenamientoPlanificación del entrenamiento
Planificación del entrenamiento
 
PRACTICAS "COMANDOS Y REDES" PDF.
PRACTICAS "COMANDOS Y REDES" PDF.PRACTICAS "COMANDOS Y REDES" PDF.
PRACTICAS "COMANDOS Y REDES" PDF.
 
INVENTARIOS 2 TESIS
INVENTARIOS 2 TESISINVENTARIOS 2 TESIS
INVENTARIOS 2 TESIS
 

Ähnlich wie Vba para excel (20)

Microsoft Excel
Microsoft ExcelMicrosoft Excel
Microsoft Excel
 
Como crear un macro
Como crear un macroComo crear un macro
Como crear un macro
 
Macro
MacroMacro
Macro
 
Macros
MacrosMacros
Macros
 
Macros
MacrosMacros
Macros
 
Macros, jazmin, freddy
Macros, jazmin, freddyMacros, jazmin, freddy
Macros, jazmin, freddy
 
Taller de tecnologia
Taller de tecnologiaTaller de tecnologia
Taller de tecnologia
 
Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)Trabajo de tecnologia(macro)
Trabajo de tecnologia(macro)
 
Documento (4)
Documento (4)Documento (4)
Documento (4)
 
Guia70
Guia70Guia70
Guia70
 
Taller de macros
Taller de macrosTaller de macros
Taller de macros
 
Macros
MacrosMacros
Macros
 
Taller de macros
Taller de macrosTaller de macros
Taller de macros
 
Macros
MacrosMacros
Macros
 
Macros
MacrosMacros
Macros
 
Macros para combinar
Macros   para combinarMacros   para combinar
Macros para combinar
 
Guia70
Guia70Guia70
Guia70
 
Creando macros en Excel 2010 para programdores
Creando macros en Excel 2010 para programdoresCreando macros en Excel 2010 para programdores
Creando macros en Excel 2010 para programdores
 
TALLER DE MACROS
TALLER DE MACROSTALLER DE MACROS
TALLER DE MACROS
 
Taller
TallerTaller
Taller
 

Vba para excel

  • 1. Las Macros ¿qué son? 1 DESDE EL PUNTO DE VISTA GENERAL, PODEMOS DECIR QUE LAS MACROS NOS AYUDAN A AUTOMATIZAR TAREAS. SON PARTE DE CÓDIGO DE PROGRAMACIÓN QUE ES INTERPRETADO POR EXCEL Y LLEVA A CABO DISTINTAS ACCIONES Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 2. El Lenguaje VBA 2 El lenguaje de programación de las macros Visual Basic para Aplicaciones (VBA), es un lenguaje de programación común, pero su entorno de desarrollo está plenamente integrado con las aplicaciones Microsoft Office, es decir no puede ejecutarse en forma autónoma. La forma en la que debemos guardar los archivos de Excel que contengan macros es “libros de Excel habilitados para macros”, su extensión será .XLSM Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 3. La ficha del Programador (tome nota) 3 Esta ficha de opciones es específica para interactuar con VBA, pero no se encuentra disponible con la instalación básica. Para activarla seleccionamos el BOTON OFFICE – OPCIONES DE EXCEL – MAS FRECUENTES – OPCIONES PRINCIPALES PARA TRABAJAR CON EXCEL – MOSTRAR FICHA PROGRAMADOR EN LA CINTA DE OPCIONES. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 4. La Seguridad : centro de confianza 4  Ficha Programador: grupo código: seguridad de macros.  Distintos grupos de opciones, dentro del Centro de Confianza:  Editores y Ubicaciones de confianza: son macros firmados digitalmente para verificar la autenticidad. De esta forma, si se ejecuta un código que no cumpla con estos criterios, el centro de confianza deshabilitará el código en forma automática y aparecerá un mensaje, para dejar la macro deshabilitada o habilitarla.  Configuración de ActiveX: permite habilitar o deshabilitar la utilización de estos controles (Los controles Active X son pequeños bloques empleados para la creación de programas, que se pueden usar para crear aplicaciones distribuidas que funcionen a través de Internet empleando navegadores web. Algunos ejemplos incluyen aplicaciones para la recopilación datos, para la visualización de determinados tipos de datos o para reproducir animaciones. El Malware, como los virus informáticos o el spyware, podría infectar accidentalmente al usuario al visitar éste cualquier sitio web contaminado o malicioso que gestione las descargas haciendo uso de controles ActiveX.) Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 5. La Grabadora de Macros 5 Se guardan todas las acciones a partir del momento en que la activamos (Grabar macro). Los nombres que le asignemos deben comenzar con una letra o un carácter de subrayado. No es posible incluir nombres que entren en conflicto, por ejemplo A2 Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 6. Ejercicio 1 6 Creemos una macro que nos permita darle color a algunas celdas. Observa el código. Recordemos que nuestras macros comienzan por defecto con “referencias fijas”, estos podremos modificarlo activando el botón “usar referencias relativas” o borrando la línea de código que hace referencia a la selección de las celdas Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 7. Asignar Macros a Botones 7 Sabemos que podemos ejecutar macros, mediante el cuadro de diálogo que se abre al presionar el comando MACROS, pero también podremos asignarles una macro a diferentes formas y objetos. LOS BOTONES DE FORMULARIO, son los preferidos, solo hay que dibujarlos y presionar la opción GRABAR. También podremos asignar una macro a una imagen, presionando el botón dcho. sobre ella, encontraremos la opción ASIGNAR MACRO Además podemos incluir nuestras macros en la barra de acceso rápido, para eso dentro de las OPCIONES DE EXCEL incluidas en el BOTÓN DE OFFICE, elegimos PERSONALIZAR Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 8. Ejercicio 2 8 Cree una macro para eliminar la hoja actual, asígnela a un botón de la barra de herramientas y pruebe su funcionamiento. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 9. El Editor de VBA 9 Es la herramienta de VBA que nos permite analizar, instrucción por instrucción el código de programación de las macros y realizar las modificaciones necesarias. Hay varias formas de acceder: BOTÓN VISUAL BASIC dentro de la ficha del PROGRAMADOR Botón MODIFICAR dentro del cuadro de diálogo MACRO ALT + F11 Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 10. LAS VENTANAS 10  Las activamos con las opciones incluidas en el menú VER  VENTANA DE CÓDIGO En esta se trabaja directamente con el código de programación  VENTANA INMEDIATO Podemos ejecutar código VBA, si escribimos directamente la instrucción y presionamos Enter. Nos permite probar el funcionamiento de instrucciones, sin tener que ejecutar una macro en su totalidad.  VENTANA INSPECCIÓN Podemos seguir el funcionamiento de ciertas instrucciones de nuestros procedimientos si les agregamos una “inspección”. Estas expresiones de inspección se actualizan en forma automática cuando se entra en modo de “interrupción” (suspensión temporal de la ejecución de la macro). Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 11. 11 VENTANA LOCALES Permiten ver los valores que poseen las “variables” definidas dentro de una macro durante su ejecución, ejecutando en modo paso a paso (F8). VENTANA EXPLORADOR DE PROYECTOS Desde aquí podremos navegar por las estructura VBA de los archivos excel que estén abiertos. VENTANA PROPIEDADES Visualiza las diferentes propiedades de cada uno de los objetos de VBA que seleccionemos. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 12. PASO POR PASO 12 Sub desplazamiento() NOMBRE DE LA MACRO (COMIENZA CON SUB) ' ' desplazamiento Macro COMENTARIOS (COMIENZAN CON ´) ' Selecciono la celdas de la hoja A1 y las pinto en azul, luego me voy a la hoja 2 y hago lo mismo ' ' Acceso directo: Ctrl+Mayús+D ' Range("A1:A101").Select SELECCIONA EL RANGO DE LA HOJA ACTIVA With Selection.Interior LO TRATAMOS EN LA PROXIMA DIAPOSITIVA .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = 0.399975585192419 .PatternTintAndShade = 0 End With Sheets("Hoja2").Select SELECCIONAMOS LA HOJA 2 Range("B2:M22").Select La línea que genera el cambio With Selection.Interior de color es ThemeColor… .Pattern = xlSolid Probemos Depurando. .PatternColorIndex = xlAutomatic Veamos que sucede al quitar .ThemeColor = xlThemeColorLight2 .TintAndShade = 0.399975585192419 Range(…).Select .PatternTintAndShade = 0 End With End Sub FIN DE LA MACRO
  • 13. WITH…END WITH (tome nota) 13  Ejecuta una serie de instrucciones sobre un ÚNICO OBJETO. Consta de 2 partes: un objeto definido sobre el cual actuarán las instrucciones y una serie de comandos que actuaran sobre ese objeto (generalmente cambios en el formato). Selection.Font.Bold = True Selection.Font.Name = “Arial” Selection.Font.Size = 16 Selection.Font.Underline = xlUnderlineStyleNone  También se podría usar así: With Selection.Font Bold = True Name = “Arial” Size = 16 Underline = xlUnderlineStyleNone End With Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 14. A Practicar ! 14  Agregue la ficha de opciones Programador.  Recorra los distintos comandos incluídos en el grupo Código  Con la grabadora, realice una macro que permita desplazarse dentro de una planilla, moviéndose una pantalla hacia la derecha. Luego haga otras que realicen lo mismo pero hacia la izquierda, hacia arriba y hacia abajo. (AvPag y RePag, ALT + AvPag o ALT + RePag) Tenga en cuenta que será necesario utilizar referencias absolutas.  Asigne las macros anteriores a botones, imágenes y barra de acceso rápido con su correspondiente ícono. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 15. A Practicar! 15 Tome las macros anteriores y haga un análisis del código, elimine líneas innecesarias. Cree una macro que modifique las opciones de relleno, fuente, tamaño y color de fuente con la grabadora. Reemplace la construcción With que aparece en el código generado por las instrucciones por separado. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 16. MÉTODOS, PROPIEDADES, OBJETOS Y COLECCIONES 16 Hemos trabajado con diferentes objetos, como una celda, una hoja, un libro, etc. Sobre estos objetos podemos aplicar MÉTODOS(acciones que pueden realizar los objetos). En VBA, antes de aplicar un método debemos identificar al objeto. Ej: Sub Fuente() Selection.Font.Bold = True End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 17. Podemos definir a los EVENTOS como toda ACCIÓN que puede ser reconocida por un objeto, por ejemplo, el clic del mouse sobre un botón o la pulsación de alguna tecla Una COLLECIÓN es un OBJETO QUE CONTIENE VARIOS OBJETOS.Por ej: la colección de WORKBOOKS (que también es un objeto) contiene todos los objetos WORKBOOK abiertos. Sub Cerrar_libro() ActiveWorkbook. Close End Sub Sub Cerrar_todos() Workbooks.Close End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso 17
  • 18. Proteger la Hoja Activa Sub protejohoja() ActiveSheet.Protect “contraseña” End Sub Desproteger la Hoja Activa Sub desprotejohoja() ActiveSheet.Unprotect “contraseña” End Sub Proteger Macros En el Editor de Visual Basic, menú Herramientas, submenú Propiedades de (aquí saldrá el nombre de tu archivo), se abrirá un cuadro de diálogo con dos fichas General y Protección, en Protección marcá la casilla de verificación “Bloquear proyecto para su visualización” y establece la contraseña. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso 18
  • 19. MACROS POR EVENTOS 19  EJECUTAR MACROS AL ABRIR ARCHIVOS cuando abrimos archivos es posible ejecutar macros que realicen ciertas acciones en forma automática. Este tipo de macros son privadas del libro o de la hoja en cuestión y por lo tanto comienzan con la construcción Private Sub y terminan con End Sub  Ejemplo: Realicemos una macro autoejecutable, para que al abrir el libro nos ubique en la celda C5. -Seleccionamos el objeto ThisWorkbook, accedemos a la ventana código y en la lista desplegable elejimos el objeto Workbook. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 20. Ejecutar una macro al abrir Archivo 20 Dentro del procedimiento escribimos: Sheets(1).Select (hace refernecia a la primera hoja ubicada en nuestro libro, independientemente de cual sea su nombre) Range(“C5”).Select Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 21. Último Registro - Offset 21 Supongamos que tenemos una hoja con varios datos y queremos posicionarnos en el último para seguir cargando. Sheets(“Datos”).Select Range(“A10000”) Selection.End(xlUp).Select (Es ideal comenzar desde muy abajo, si lo hacemos con la grabadora nos ubicamos en la celda A10000 y luego presionamos las teclas CTRL + Flecha arriba, con esto nos ubicamos en el último registro pero la idea es situarnos una fila abajo): incluímos ActiveCell.Offset(1,0).Select OFFset: nos permite desplazarnos a partir de una celda fija Offset(Row, column) valores positivos abajo y a la derecha, negativos hacia arriba y a la izquierda: Offset(2,-1)dos filas hacia abajo, 1 colummna a la izquierda. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 22. Ejecutar Macros al cerrar Archivos 22 Esto lo lograremos en la ventana de código del objeto Thisworkbook, lista desplegable BeforeClose Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub Otros Eventos del Workbook Activate y Deactivate (ejecuta la macro cuando tenemos varios libros abiertos a la vez y activamos o desactivamos alguno). BeforePrint (antes de imprimir) PrintPreview (nos mostrara la presentación preliminar de una determinada selección). BeforeSave disparará la macro antes de grabar nuestro archivo. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 23. Eventos Worksheet 23 Estos procedimientos de eventos se encuentran relacionados con la hoja en la que se encuentra insertado el código VBA Activate, Deactivate BeforeRightClick (presionamos el botón derecho del mouse. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 24. Para tener en cuenta 24  Conviene incluir en los métodos abreviados de ejecución de macro la tecla MAYÚSCULA, para no reemplazar una atajo de excel, quedaría CTRL + MAYÚSCULA + Carácter  Para salir del editor de VBA podemos utilizar ALT + Q  Para ejecutar una macro en forma automática cuando se abre el archivo, debemos incluir el código VBA dentro del objeto THISWORKBOOK  Si deseamos que la macro siempre esté disponible, para que se pueda cargar en forma automática al abrir Excel debemos guardarla en c:Documents ad SettingsDatos de ProgramaMicrososftExcelXLSTART  Para modificar las característcas del Editor vamos al menú Herramientas/Opciones… Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 25. A Practicar! 25 Cree una macro de inicio que ajuste la visualización de la pantalla al 75%. Puede utilizar la grabadora para generar las líneas de código y luego incorporarla al Thisworkbook Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 26. Las Variables 26 Una variable es un lugar de almacenamiento con nombre, es decir un espacio de mem0ria que puede contener ciertos tipos de datos y que , a su vez, se puede modificar durante la ejecución de la macro. Declaración de Variables El nombre de las variables debe ser único y no contener más de 255 caracteres. Es recomendable declarar las variables y distinguir tres situaciones: Procedimiento: la variable que declaremos dentro de un procedimiento, Sub o Function Módulo: serán declaradas fuera de cualquier procedimiento y son válidas en todo el módulo. Pública: las variables que declaremos mediante la instrucción Public estarán disponibles para todos los procedimientos en todos los módulos de todas las macros. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 27. Las Variables 27 Para declarar variables utilizamos la instrucción Dim. Si incluímos esta instrucción a nivel procedimiento, solo tendrá efecto en la macro en cuestión. Ej: Dim variable1 as string Dim variable2 as boolean Si queremos utilizar las variables para distintas macros podemos definirlas en la sección Declaraciones de la ventana código y así lograr que tengan validez en todo el módulo Si queremos que sea pública: Public variable1 as string Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 28. Tipo de Datos de Variables 28  String: puede contener letras, nros, espacios y signos de puntuación: Dim mivariable$ es igual a  Dim mivariable as string * 20 (20 caracteres de espacio) Boolean: True o False ( si se convierte a numérico el 0 es false, 1 es true)  Números enteros: dentro de los números enteros tenemos varios tipos de datos dependiendo el rango que queramos utilizar:  Byte: puede almacenar números enteros dentro del rango desde 0 a 255  Integer: puede almacenar números enteros dentro del rango -32.768 a 32.767 (se puede declarar con el signo %)  Long: puede almacenar números enteros dentro del rango -2.147.483.648 hasta 2.147.483.648 . (se puede declarar con el signo &)  Currency: útil para cálculos monetarios. (se puede declarar con el signo @)  Números decimales: para almacenar números decimales contamos con los siguientes tipos de datos:  Single: almacena números decimales en el rango +/- 1e-45 hasta 3e38 (se puede declarar con el signo !)  Double: desde +/- 5e-324 hasta 1.8e308 (se puede declarar con el signo #)  Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 29. Variables 29  Fechas y horas: Para almacenar fechas y horas se utiliza la palabra Date  Tipo variant : Las variables de este tipo pueden almacenar cualquier tipo de valor, pero ocupan mas memoria. Ejemplos: Dim num1 As Integer Dim num2 As Integer num1 = 10 num2 = 20 'se mostrará un mensaje con la suma de las variables con el resultado 30 MsgBox num1 + num2 Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 30. Mas variables 30  La ventana locales es fundamental cuando trabajamos con variables ya que nos permite visualizar los valores que toman. Públicas, privadas y estáticas La instrucción Public nos permite declarar variables que se utilizan en cualquier procedimiento de un proyecto Public mivariable as integer Private: (equivalente a utilizar Dim) sólo podrán ser utilizadas a nivel del mismo módulo Private mivariable as variant Static: mantendrá su valor entre las distintas llamadas hasta que se reinicie el módulo Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 31. Constantes 31 Las constantes, como las variables, se utilizan para guardar datos y valores para nuestro programa, pero a diferencia de estas últimas (las variables), el contenido que almacenen no cambia, siempre es constante. A diferencia de las variables que se declaran con la palabra Dim, las Constantes se declaran con la palabra Const. Const numero = 53 En la línea anterior he creado una constante, que la llamé numero y va a almacenar un número , y este valor, cuando se ejecute mi programa se mantendrá invariable. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 32. Constantes 32 Las constantes, como las variables, se utilizan para guardar datos y valores para nuestro programa, pero a diferencia de estas últimas (las variables), el contenido que almacenen no cambia, siempre es constante. A diferencia de las variables que se declaran con la palabra Dim, las Constantes se declaran con la palabra Const. Const numero = 53 En la línea anterior he creado una constante, que la llamé numero y va a almacenar un número , y este valor, cuando se ejecute mi programa se mantendrá invariable. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 33. Option Explicit 33  El Option Explicit se utiliza a nivel de módulo (sin ningún tipo de argumento al inicio del módulo) para forzar la declaración explícita de todas las variables en este módulo. Esta declaración debe aparecer en la parte superior del módulo, antes de cualquier procedimiento.  Cuando esta declaración se usa, un mensaje de error identifica cualquier variable no definida o mal escrita. Para que Option Explicit se inserte automáticamente en cada nuevo libro: Ir a la barra del menú del editor de macros. Menú Herramientas Opciones En la ficha Editor, marca "Requerir declaración de variables". Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 34. Cajas con Mensajes 34 Los InputBox Con esta herramienta se mostrará un cuadro de diálogo en pantalla, en el cual se podrá introducir un texto que devolverá un string que se podrá almacenar en una variable. Sintaxis InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context]) La sintaxis de la función InputBox consta de estos argumentos: (Si deseamos omitir algunos argumentos de posición, debemos incluir el delimitador de coma correspondiente). Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 35. Argumentos del InputBox 35 Parte Descripción prompt Requerido. Cadena que se muestra como mensaje en el cuadro de diálogo. La longitud máxima de prompt es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados. title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si omite title, en la barra de título se coloca el nombre de la aplicación. default Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro de texto vacío. xpos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontal entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de diálogo se centra horizontalmente. ypos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el borde superior del cuadro de diálogo y el borde superior de la pantalla. Si se omite ypos, el cuadro de diálogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el borde superior de la misma. helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utilizará para proporcionar ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá especificarse context. context Opcional. Expresión numérica que es el número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 36. Ejemplo con InputBox 36 La siguiente orden genera un cuadro al cual le indicamos texto, título y asignamos el texto que escriba el usuario a la variable cadena: Dim cadena As String cadena = InputBox("Introduzca el nombre del usuario", "Identificación") Observar que como asignamos el resultado de la función InputBox a una variable, debemos encerrar los argumentos entre paréntesis. El resultado en ejecución es: Es posible separar las líneas con chr(13) y chr(10), InputBox(“…”& chr(13)& “…”) Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 37. Macro Para realizar sumas 37 Sub Sumatoria() Dim valor1 As Double Dim valor2 As Double Dim total As Double valor1 = InputBox("Ingrese el primer valor a sumar") valor2 = InputBox("Ingrese el segundo valor a sumar") total = valor1 + valor2 Range("A1") = total End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 38. Los MsgBox 38 MsgBox: Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve un tipo Integer correspondiente al botón elegido por el usuario. Sintaxis MsgBox(prompt[, buttons][, title][, helpfile, context]) La sintaxis de la función MsgBox consta de estos argumentos: Parte Descripción prompt Requerido. Cadena que representa el prompt en el cuadro de diálogo. La longitud máxima de prompt es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados. buttons Opcional. Expresión numérica que corresponde a la suma de los valores que especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del botón predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor predeterminado para buttons es 0. title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si se omite title, en la barra de título se coloca el nombre de la aplicación. helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar context. context Opcional. Expresión numérica que es igual al número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 39. Argumento Buttons - iconos 39 Constante Valor Descripción VbOKOnly 0 Muestra solamente el botón Aceptar. VbOKCancel 1 Muestra los botones Aceptar y Cancelar. VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar. VbYesNoCancel 3 Muestra los botones Sí, No y Cancelar. VbYesNo 4 Muestra los botones Sí y No. VbRetryCancel 5 Muestra los botones Reintentar y Cancelar. VbCritical 16 Muestra el icono de mensaje crítico. VbQuestion 32 Muestra el icono de pregunta de advertencia. VbExclamation 48 Muestra el icono de mensaje de advertencia. VbInformation 64 Muestra el icono de mensaje de información. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 40. Buttons 40 VbDefaultButton1 0 El primer botón es el predeterminado. VbDefaultButton2 256 El segundo botón es el predeterminado. VbDefaultButton3 512 El tercer botón es el predeterminado. VbDefaultButton4 768 El cuarto botón es el predeterminado. VbApplicationModal 0 Aplicación modal; el usuario debe responder al cuadro de mensajes antes de poder seguir trabajando en la aplicación actual. VbSystemModal 4096 Sistema modal; se suspenden todas las aplicaciones hasta que el usuario responda al cuadro de mensajes. VbMsgBoxHelpButton 16384 Agrega el botón Ayuda al cuadro de mensaje. VbMsgBoxSetForeground 65536 Especifica la ventana del cuadro de mensaje como la ventana de primer plano. VbMsgBoxRight 524288 El texto se alinea a la derecha. VbMsgBoxRtlReading 1048576 Especifica que el texto debe aparecer para ser leído de derecha a izquierda en sistemas hebreo y árabe. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 41. Ejemplo 41 La siguiente orden genera un cuadro al cual le indicamos título, texto, le ponemos tres botones: Sí, No y Cancelar. Además le incluimos el icono de pregunta: MsgBox "¿Esta seguro de que quiere continuar?", vbYesNoCancel + vbQuestion, "Confirmación" El resultado en ejecución es: Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 42. Ejercicios 42 1 Establezca y declare tres variables de tipo de dato distintas (String, Long, Date) a nivel del módulo. 2 Incluya un ImputBox cuyo origen sea una variable del tipo String que luego se muestre en un MsgBox con botones Sí y No (4) y un icono de pregunta.(32) 3 Modifique la macro que permite realizar sumas para poder hacer multiplicaciones y haga los ajustes necesarios en el MsgBox. 4 Ajuste el MsgBox del punto anterior para que se muestren en el mismo mensaje los valores de cada una de las variables y su resultado. 5 Realice una nueva macro con ImputBox que le permita hacer la suma entre dos valores y luego multiplicarlos por un tercer valor. El resultado debe mostrarlo en un MsgBox y también volcarlo en alguna celda de la planilla. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 43. Para tener en cuenta 43  Un punto que debemos tener en cuenta es la actualización de pantalla, por defecto al ejecutar una macro vemos todas las acciones que se realizan, esto puede provocar confusión y pérdida de tiempo, para evitarlo podremos agregar la instrucción: Application.ScreenUpdating=True Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 44. El libro Personal (1) 44  En excel, disponemos de un libro oculto llamado personal.xls (en Excel 2007, tiene extensión xlsb, por lo que se llamará personal.xlsb), como seguramente ya conocerás. También sabrás seguramente, que este libro es de una gran utilidad si utilizas habitualmente los mismos macros en diferentes libros. En el libro personal.xls (o personal.xlsb, si usas Excel 2007) podemos tener almacenadas nuestras macros más habituales, para poder utilizarlas en cualquier otro libro de excel, sin necesidad de tener que implementar el código VBA en estos nuevos libros que vamos abriendo o creando. Para grabar una macro en el libro oculto personal.xls (o personal.xlsb, si usas Excel 2007), tan solo deberemos indicar en el momento de su creación, que queremos que se almacene en el mencionado libro. Para ello, utilizaremos la grabadora de macros. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 45. El libro Personal (2) 45 Una vez elegido el sitio donde vamos a grabar el macro, esto es, en el libro de macros personal, bien podemos detener la grabación, o bien podemos realizar las tareas que queremos que grabe el macro. En cualquiera de los casos, una vez finalizada la grabación del macro, si accedemos al modo VBA pulsando Alt+F11, nos encontraremos con que aparece un nuevo proyecto llamado PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel 2007) , tal y como se muestra en la imagen: Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 46. El libro Personal (3) 46  Dentro de la categoría de Módulos, podremos editar el código del macro, borrarlo, o crear nuevos macros, y todos ellos los tendremos disponibles siempre, aunque estemos trabajando con uno, cinco, o veinte ficheros de excel diferentes. Cuando vayamos a ejecutar un macro, llamándolo desde Herramientas, Macro, Macros…, nos aparecerán las macros propias del libro con el cual estemos trabajando, junto con las macros grabadas en el fichero personal.xls (o personal.xlsb, si usas Excel 2007), tal y como se muestra en la siguiente imagen: Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 47. El libro Personal (4) 47 Dos últimas cuestiones que mencionar respecto al libro PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel 2007): 1.- Podemos ver que realmente se trata de un fichero oculto, desde Ventana, y seleccionando Mostrar…. 2.- Para grabar las macros en PERSONAL.XLS (o PERSONAL.XLSB, si usas Excel 2007), cuando cerremos excel, nos saldrá un y al que tendremos que contestar con un rotundo sí, si lo que deseamos es grabar esas macros en el libro oculto, para que estén disponibles siempre que las necesitemos: Si lo que deseamos es llamar a una función personalizada que tengamos en el libro personal, lo haremos de esta forma (suponiendo que la función que hayas creado se llame mifuncion): =PERSONAL.XLS!mifuncion() Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 48. Construcciones Condicionales 48  Construcción If…Then…Else Con esta construcción podemos ejecutar un grupo de instrucciones dependiendo del resultado de una expresión. If condición Then instrucciones en caso de cumplirse la condición Else instrucciones en caso de no cumplirse la condición. Aquí también es posible incluír la instrucción ElseIf que nos permitirá incluír un nuevo bloque If End if Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 49. Ejemplos 49 Sub Ejemplo_if() If Range(“A1”) = 12 Then Range(“B1”)=Range(“A1”).Value Else Range(“B3”)=Range(“A1”).Value End If End Sub Construcciones sin instrucciones Else If Range(“A1”) > 1000 Range(“B1”)=Range(“A2”) .Value+ 100 End If Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 50. ElseIf Sub Operaciones_Msg() Dim valor1 As Double 50 Dim valor2 As Double Dim total As Double Dim operacion As String Dim signo As String valor1 = InputBox("Ingrese el primer valor") valor2 = InputBox("Ingrese el segundo valor") operacion = ucase(InputBox("ingrese la operacion:SUMA, RESTA, MULTIPLICA, DIVIDE")) If operacion = "SUMA" Then total = valor1 + valor2 signo = "+" ElseIf operacion = "RESTA" Then total = valor1 - valor2 signo = "-" ElseIf operacion = "MULTIPLICA" Then total = valor1 * valor2 Ucase:convierte de minus. a signo = "*" mayus. ElseIf operacion = "DIVIDE" Then Lcase :de mayusc. A minusc total = valor1 / valor2 signo = "/" End If MsgBox ("El resultado de:" & valor1 & signo & valor2 & " es: " & total) End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 51. Al abrir un archivo 51 Private Sub Workbook_Open() Application.DisplayAlerts = False If ActiveWorkbook.ReadOnly Then MsgBox "El archivo está siendo utilizado por otro usuario, vuelva a intertarlo mas tarde, gracias", vbExclamation ActiveWorkbook.Close savechanges:=False End If End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 52. Valores devueltos por los botones del MsgBox 52 Constante Valor OK 1 CANCEL 2 ABORT 3 RETRY 4 IGNORE 5 YES 6 NO 7 Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 53. Select Case 53  Ejecuta uno o varios grupos de instrucciones, dependiendo del valor que resulte de la condición de prueba. Sub uso_del_case() Dim opcion As Single opcion = InputBox("Elija una opción") Select Case opcion Case 1 To 4 Sheets(1).Select Range("A1").Select Case 5, 6 Sheets(2).Select Range("A10").Select Case Is = 7 Sheets("Hoja3").Select Range("b15").Select Case Is > 8 MsgBox "Opcion fuera de rango", 0 + vbCritical, "Aviso" End Select End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 54. Funciones Personalizadas 54  Este tipo de procedimientos se incluíra dentro de una estructura Function…End Function, u debemos designar variables que formarán los argumentos o parámetros de esta función: Function Cargas(salario As Double, tipo As Integer) If tipo = 1 Then Cargas = salario * 0.33 ElseIf tipo = 2 Then Cargas = salario * 0.25 ElseIf tipo = 3 Then Cargas = salario * 0.18 End If End Function (Se ejecuta en excel desde la barra : =cargas(c5;d5) Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 55. Los Bucles 55 Son estructuras que nos permiten realizar repeticiones de instrucciones Tipos de Bucles Do While condición instrucciones Loop Ejecutará el bloque mientras se cumpla una determinada condición Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 56. DO…LOOP…WHILE 56 DO WHILE…LOOP DO…LOOP WHILE Sub bucledo_while() Dim cantidad As Integer Dim condicion As Integer cantidad = 0 condicion = 15 Sub bucle_do_loop_while() Dim cantidad As Integer Dim condicion As Integer cantidad = 0 condicion = 15 Do While condicion > 0 condicion = condicion - 1 cantidad = cantidad + 1 Loop MsgBox ("el bucle se ejectuto " & cantidad & " veces") End Sub Do condicion = condicion - 1 cantidad = cantidad + 1 Loop While condicion > 0 MsgBox ("el bucle se ejectuto " & cantidad & " veces") End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 57. Los Bucles 57 Do Until condición instrucciones Loop Se ejecutará el bloque de condiciones hasta que la condición incluída tome el valor true Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 58. DO…UNTIL…LOOP 58 DO UNTIL…LOOP DO…LOOP UNTIL Sub bucledo_until() Dim cantidad As Integer Dim condicion As Integer cantidad = 0 condicion = 0 Sub bucledo_loopuntil() Dim cantidad As Integer Dim condicion As Integer cantidad = 0 condicion = 0 Do Until condicion = 15 condicion = condicion + 1 cantidad = cantidad + 1 Loop MsgBox ("el bucle se ejectuto " & cantidad & " veces") End Sub Do condicion = condicion + 1 cantidad = cantidad + 1 Loop Until condicion = 15 MsgBox ("el bucle se ejectuto " & cantidad & " veces") End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 59. FOR…NEXT 59  Esta construcción de bucle se puede utilizar para ejecutar un grupo de instrucciones un determinado número de veces. Los bucles For…Next usan una variable contador cuyo número se aumenta o disminuye cada vez que se ejecuta el bucle, hasta alcanzar el valor establecido en la condición.  Por defecto este bucle aumenta su valor en 1, pero es posible dar pasos mas grandes si utilizamos la instrucción Steep. Ejemplo: For i = 1 to 40 steep 2 avanza de 2 en 2 También podemos ir hacia atrás For i = 40 to 1 steep -2 retrocede de 2 en 2 Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 60. Ejemplo con For…Next 60 Sub bucle_for() Dim i As Integer Dim contador As Integer For i = 1 To 15 contador = contador + 1 Next i MsgBox "El bucle for se ejecutó " & contador & " veces", vbInformation, "Aviso“ End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 61. For Each…Next 61 Esta variante del bucle For…Next repite el grupo de instrucciones para cada uno de los objetos de una colección o para cada elemento de una matríz. Por ejemplo, podríamos afectar a todas las celdas de un determinado rango o a todos los objetos Sheet de la colección Sheets. En el siguiente ejemplo recorreremos cada uno de los objetos Hojas de la colección worksheets, para comprobar que la celda A1 esté vacía: Sub forhojas() Dim mihoja For Each mihoja In Worksheets If mihoja.Range("g1") = "" Then mihoja.Range("g2") = "funciona?" End If Next mihoja End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 62. Exit 62 Con esta instrucción podemos salir de un bucle y hasta de una función o de un procedimiento. EXIT DO: es la instrucción para salir de un bucle Do…Loop. Le transfiere el control a la instrucción siguiente a Loop. EXIT FOR: sale de un bucle For…Next o For Each… Next. Le transfiere el control a la instrucción siguiente a Next. EXIT FUNCTION, EXIT SUB: nos permiten salir inmediatamente de un procedimiento o función Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 63. Ejemplo 63 Sub do_celdas_exit() Dim mifila Dim micol mifila = 1 micol = 1 Do Until mifila = 100 Cells(mifila, micol).Select If ActiveCell = 100 Then Exit Do End If mifila = mifila + 1 Loop End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 64. Input con Validación 64 Sub validar_numero() Dim mivalor Do mivalor = InputBox("Ingrese el precio de venta del artículo: ") Loop Until IsNumeric(mivalor) [b4] = mivalor * 0.2 End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 65. SUMO POR COLORES 65 Function sumarporcolores(rango_suma) Dim color Dim micelda Dim suma color = ActiveCell.Interior.ColorIndex For Each micelda In rango_suma If micelda.Interior.ColorIndex = color Then sumarporcolores = sumarporcolores + micelda.Value End If Next End Function Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 66. Ocultar todo 66 Sub ocultar_todo() Dim mihoja As Worksheet For Each mihoja In Worksheets mihoja.Visible = xlVeryHidden ' mihoja.visible=xlsheetvisible ' para mostrar On Error GoTo salida 'el libro tiene que tener por lo menos 1 hoja visible, así que se pone esta sentencia para que no dé error Next mihoja salida: Exit Sub End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 67. LOS FORMULARIOS 67 Los formularios son ventanas o cuadros de diálogo de VBA que pueden contener distintos controles y formularios secundarios. Permiten la interacción entre la aplicación y el usuario. Un formulario es un objeto Userform de la colección Userforms Elegimos Menú Insertar: Userform Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 68. Formularios 68 Al insertar un formulario, se dispondrá del cuadro de herramientas compuesto por un conjunto de botones de control del formulario, los que se muestra en la siguiente figura. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 69. Formularios 69 Por debajo de la ventana de proyectos se dispondrá de la Ventana de Propiedades. En esta ventana se visualizará las propiedades que posee un determinado objeto. En la siguiente imagen se muestra la ventana de propiedades de un formulario, ya que éste es el que está activo. Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 70. Mostrar un formulario 70 Para mostrar un objeto Useform podemos utilizar los métodos Show y Hide. De esta forma, con una macro podemos llamar a un formulario. Sub Mostrar_form() userform1.show End Sub Sub oculto_form userform1.hide End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 71. Los controles de un Formulario 71 Haga click aquí para ver el documento Resumen de controles de Formulario Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 72. El Primer Formulario 72 Introducimos un Userform Modificamos el nombre con la propiedad Name y el título con la propiedad Caption A modo de ejemplo incluíremos un control CommandButton que al hacer clic sobre él cambie su nombre. Al hacer doble clic sobre un control, accedemos al código VBA Private asignado a una determinada acción Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 73. Mi Primer Formulario 73 Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 74. Código del botón 74 Private Sub boton1_Click() Dim nombre_actual As String Dim nombre_nuevo As String Dim nro As Integer nombre_actual = Formulario1.Caption MsgBox "El título actual del formulario es " & nombre_actual nro = Right(Formulario1.Caption, 2) + 1 nombre_nuevo = "Mi Formulario " & nro Formulario1.Caption = nombre_nuevo MsgBox "El título nuevo del formulario es " & nombre_nuevo End Sub Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso
  • 75. Procedimientos y Eventos 75 Siempre que trabajamos con formularios utilizamos macros relacionadas con eventos o acciones, ya sea al hacer un clic en un botón o desplegar una lista. También es posible ejecutar macros relacionadas con eventos del formulario. Si hacemos doble clic sobre el cuerpo del formulario, accedemos al código VBA relacionados con eventos del formulario Asoc. club de Programadores -Macros-VBA - Lic. Carina V. Grosso