UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI EXCEL VBA Modo de Acceso Para acceder al
Views 377 Downloads 42 File size 3MB
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
EXCEL VBA
Modo de Acceso Para acceder al entorno de programación del VBA realizamos. Nos vamos al panel Archivo
Luego a opciones
En la ventana que se presenta nos vamos a la opción Personalizar cinta de opciones y activamos la casilla Desarrollador
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Ahora notaremos en la cinta de opciones que se presenta la opción seleccionada
Para acceder al entorno VBA seleccionamos la opción Visual Basic también podemos presionar la tecla F11
Qué es un Módulo Son espacios que se crean o almacenan en un libro de Excel al guardar el archivo. Los Módulos VBA están almacenados en un libro de Excel, lo vemos o editamos dichos módulos utilizando el Editor de Visual Basic (VBE). Un módulo consta de procedimientos.
“Los códigos VBA resulta más conveniente escribirlo y almacenarlo en Módulo”
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Tipos: Módulo Estándar Módulo de Clase
Módulo Estándar Para crear un módulo nos a la opción de menú insertar, luego módulo
El resultado sería
Si deseamos cambiar de nombre lo podemos realizar desde el panel Propiedades, recuerda que este panel nos servirá de mucha ayuda más adelante cuando trabajemos con las demás opciones.
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Si deseamos eliminar el módulo, clic derecho en el módulo y nos vamos a Quitar
Luego aparecerá una nueva ventana preguntándonos si deseamos exportar el código del modulo
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Procedimientos Es básicamente una unidad de código informático que realiza alguna acción Procedimiento Sub
Conformado por sentencias Se ejecuta de varias maneras
Procedimiento Function
Devuelve un solo valor, ó Devuelve una matriz. Se llama desde otro procedimiento VBA Se puede usar como función en la Hoja de excel
Podemos probar el código VBA con la ventana inmediato CTR+ G Basta con escribir el procedimiento Suma
Para ejecutar la función antecedemos el símbolo ?
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Las funciones también pueden ser ejecutadas desde la hoja de Excel
Ejemplo:
Objetos Un objeto es una combinación de código y datos que puede tratarse como una unidad Un objeto puede ser una porción de una aplicación, como un control o un formulario. Una aplicación entera también puede ser un objeto
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Las Clases en VBA Cada objeto de Visual Basic está definido por una clase. Una clase describe las variables, propiedades, procedimientos y eventos de un objeto. Los objetos son instancias de clases, pueden crearse tantos objetos sean necesarios una vez se defina una clase. Objetos Clase
Colecciones Una colección es un grupo de objetos de la misma clase. Y una colección es por si misma un objeto Workbooks – Colección de todos los objetos workbook Worksheets – Colección de todos los objetos Worksheets PivotTables – Colección de todos los objetos PivotTable
Se puede referenciar con el nombre o índice Worksheets(“hoja1”) Worksheets(1)
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Referencias a objetos Referencia a la Hoja 1 del Libro 1 Workbooks(“libro1”).Worksheets(“Hoja1”)
Referencia al rango o celda A1 de la Hoja 1 del Libro1 Workbooks(“libro1”).Worksheets(“Hoja1”).range(“a1”)
Propiedades de los objetos Una propiedad de un objeto puede definirse como un valor que toma un atributo del Objeto en un tiempo determinado. En otras palabras, es información almacenada en un objeto Ejemplo: Un caballo Raza, tamaño, edad, etc, serian propiedades del caballo
Ejemplo en Excel
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Métodos Pueden definirse como una acción que se realiza con un objeto particular En Excel
Argumentos del método
Otro modo de hacerlo
El objeto Comment En la interfaz de usuario (UI) un objeto comment hace referencia a un comentario de celda
Propiedades del objeto comment
Excel VBA
Propiedad Application
Solo lectura Si
Author
Si
Descripción Devuelve un objeto que representa la aplicación que creo el comentario (Excel) Devuelve el nombre de la persona que creo el comentario
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Creator
Si
Parent
Si
Shape
Si
Visible
No
Devuelve un entero de 32 bits que indica la aplicación en la que se creó el objeto Devuelve el objeto padre del comentario (siempre es un objeto Range) Devuelve un objeto Shape que representa la forma adjunta al comentario Es verdadero si el comentario es visible
Métodos del objeto comment Metodo Delete Next Previous text
Descripción Elimina un comentario Devuelve un objeto comment que representa el siguiente comentario de la hoja Devuelve un objeto comment que representa el comentario anterior Devuelve o establece el texto de un comentario (recibe tres argumentos)
Ejemplo: Devuelve el contenido del comentario 1
Un objeto comment no tiene una propiedad name es por ello que se le llame por el número de índice Muestra cantidad de comentario
Muestra la celda donde se encuentra el comentario
Muestra los comentarios de una hoja
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Muestra el comentario de una celda (comment es una propiedad del objeto range)
Objetos dentro de un objeto comment 1. 2. 3. 4.
Usar la propiedad Shape del objeto Comment. Devuelve un objeto Shape Usar la propiedad Fill del objeto Shape. Devuelve un objeto FillFormat Usar la propiedad ForeColor del objeto FillFormat. Devuelve un objeto ColorFormat Usar la propiedad RGB del objeto ColorFormat para determinar el color
Jerarquía de objetos Application (Excel) Objeto WorkBook Objeto WorkSheet Objeto Comment Objeto Shape Objeto FillFormat Objeto ColorFormat
Cambiando color de fondo del comentario:
Cambiando color de texto del comentario
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Evaluar en la celda B5 si tiene comentario
Obtener objeto Range
1 celda Objeto Objeto Range
Workseet Varias Celdas
1.- Propiedad Range : Objeto WorkSheet ó Range Esta propiedad tiene 2 sintaxis a.- Object.Range(Cell1) Identifica Puede ser un objeto WorkSheet o un objeto Range
También podemos aplicar a un nombre de rango
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Por defecto toma la propiedad value
Por defecto la jerarquía es libro y hoja activa Sin embargo con este método obtendremos error si usamos una hoja de Gráfico pues ésta no contiene celdas
b.- Object.Range(Cell1,Cell2) Define Puede ser un objeto WorkSheet o un objeto Range Ejemplo:
El espacio lo considera como intersección
Considera inicio de rango
Por defecto Hoja activa
Toma la primera celda como inicio de rango
2.- Propiedad Cells: Objeto WorkSheet ó Range Esta propiedad tiene tres sintaxis a.- Object.Cells(rowIndex,columnIndex) Puede ser un objeto Worksheet o un objeto Range
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Fila
Columna
b.- Object.Cells(rowIndex) Puede ser un objeto Worksheet o un objeto Range
b.- Object.Cells Puede ser un objeto Worksheet o un objeto Range
3.- Propiedad Offset: Objeto Range Avanza fila
Excel VBA
Avanza columna
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Elementos del lenguaje VBA
Comentario Es un texto descriptivo insertado en el código que VBA no tendrá en cuenta a la hora de ejecutarlo
Para realizar comentarios en bloques podemos ir a Ver/Herramientas/Edición
Nos mostrara la siguiente barra
Las cuales podemos usar:
variables Las variables son valores que se almacenan en memoria y son llamados cuando lo necesitemos
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Se pueden usar caracteres del alfabeto, números y algunos caracteres de puntuación, pero el primer carácter debe ser alfabético. VBA no distingue entre mayúsculas y minúsculas. No se pueden usar: espacios, puntos; una recomendación es usar el guion bajo Los caracteres especiales utilizados en instrucciones no podrán incluirse en nombre de variables (#,$,%,&,!). Los nombres de variables pueden contener hasta 254 caracteres.
De la siguiente operación, obtenemos un resultado:
Mas nos muestra error si modificamos
Forzar la declaración de variables Esto no afectara a elementos ya creados, para aplicar debemos ir a: Herramientas/Opciones
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Muestra
Ámbito de las variables Ambito Local A nivel de un modulo Publica ó en todos los módulos
¿Dónde se declara la variable? Dentro de un procedimiento Sub ó procedimiento Function Al principio de cada módulo, antes del primer procedimiento Sub ó Function Al principio de cada módulo, antes del primer procedimiento Sub ó Function
Variable local Es una variable declarada dentro de un procedimiento, sub ó function, se eliminan cuando terminan el procedimiento
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Tipos: Caso 1:
Caso 2
Caso 3
Caso 4 : variable acumulativo
Caso 5: variable acumulativo con End
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Variables a nivel de un modulo Una variable a nivel de un módulo, es aquella que esta disponible por todos los procedimientos contenidos en un módulo particular, está deberá ser declarada fuera de cualquier Procedimiento Sub ó Procedimiento Function Además, debe ser colocada al principio del modulo y antes del primer procedimiento Estas variables no están disponibles para procedimientos de otros módulos
Ejemplo 1
Sentencia End
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Variables Públicos Una variable Pública, es aquella que esta disponible para todos los procedimientos de todos los módulos de un proyecto VBA. La única restricción que existe es que una Variable Pública debe ser declarada en un módulo estándar y NO en ventanas de código de una Hoja cualquiera o en ventanas de código UserForm
Ejemplo:
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Tipos de datos VBA
Excel VBA
Tipo de Visual Basic
Estructura de tipo Common Language Runtime
Boolean
Boolean
En función de la plataforma de implementación
True o False
Byte
Byte
1 byte
0 a 255 (sin signo)
Char (carácter individual)
Char
2 bytes
0 a 65535 (sin signo)
date
DateTime
8 bytes
0:00:00 (medianoche) del 1 de enero de 0001 a 11:59:59 p.m. del 31 de diciembre de 9999.
Asignación de almacenamient o nominal
Máximo Guando Quispe
Intervalo de valores
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Excel VBA
Decimal
Decimal
16 bytes
0 a +/79.228.162.514.264.337.593.543.950. 335 (+/-7,9... E+28) † sin separador decimal; 0 a +/7,9228162514264337593543950335 con 28 posiciones a la derecha del decimal; el número distinto de cero más pequeño es +/0,0000000000000000000000000001 (+/-1E-28) †
Double (punto flotante de precisión doble)
Double
8 bytes
-1,79769313486231570E+308 a 4,94065645841246544E-324 † para los valores negativos; 4,94065645841246544E-324 a 1,79769313486231570E+308 † para los valores positivos
INTEGER
Int32
4 bytes
-2.147.483.648 a 2.147.483.647 (con signo)
Long (entero largo)
Int64
8 bytes
-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9,2...E+18 †) (con signo)
object
Object (clase )
4 bytes en plataforma de 32 bits 8 bytes en plataforma de 64 bits
Cualquier tipo puede almacenarse en una variable de tipo Object
SByte
SByte
1 byte
-128 a 127 (con signo)
Short (entero corto)
Int16
2 bytes
-32.768 a 32.767 (con signo)
Single (punto flotante de precisión sencilla)
Single
4 bytes
-3,4028235E+38 a -1,401298E45 † para los valores negativos; 1,401298E-45 a 3,4028235E+38 † para los valores positivos
String (longitud variable)
String (clase)
En función de la plataforma de implementación
0 a 2.000 millones de caracteres Unicode aprox.
UInteger
UInt32
4 bytes
0 a 4.294.967.295 (sin signo)
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
ULong
UInt64
8 bytes
0 a 18.446.744.073.709.551.615 (1,8...E+19 †) (sin signo)
UserDefined(estructur a)
(hereda de ValueTyp e)
En función de la plataforma de implementación
Cada miembro de la estructura tiene un intervalo de valores determinado por su tipo de datos y es independiente de los intervalos de valores correspondientes a los demás miembros.
UShort
UInt16
2 bytes
0 a 65.535 (sin signo)
Tipos de variables mas usadas
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Constantes Se convierte en una excelente práctica de programación cuando deseamos repetir el un determinado valor Hace el código mas legible y elegante Permite realizar cambios de manera rápida y sencilla
Puede ser declaradas en: Constantes Locales Constantes de Nivel de Módulo Constantes Públicas
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Constantes Locales
Constantes a nivel de modulo
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Constantes Públicas
Caracteres de continuación
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI MSGBOX
Mensajes en línea
También podemos aplicar
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Mensaje con botones
En VBA todas las constantes son representadas por números
La ayuda del VBA nos indica:
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
INPUTBOX Muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en un botón y devuelve un tipo de dato como texto que es el contenido ingresado en el cuadro de texto.
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Valor por defecto
Información en líneas
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Corregir errores
PROGRAMACION BASICA
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI Guardar libro abierto
Mostrar el formulario al Abrir el archivo
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Programando controles al formulario
Escribimos
Propiedad exit
Cuadro combinado (ComBox)
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
CUADRO DE LISTA (Listbox)
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Boton de comando
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Excel VBA
Máximo Guando Quispe
[email protected]
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI
Imágenes
Validaciones
Excel VBA
Máximo Guando Quispe
[email protected]