EXCEL VBA

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA - INFOUNI EXCEL VBA Modo de Acceso Para acceder al

Views 377 Downloads 42 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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]