visual basic para aplicaciones en excel · traves del menú herramientas > opciones > ......

35
Manejo de Software para Microcomputadoras Visual Basic para Aplicaciones en Excel

Upload: lamliem

Post on 21-Sep-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Manejo de Software para Microcomputadoras

Visual Basic para Aplicaciones en Excel

Page 2: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Una variable es un lugar de almacenamiento con nombre que puede contener cierto tipo de datos que puede ser modificado durante la ejecución del programa.

Los nombres de variable deben comenzar con un carácter alfabético, deben ser únicos dentro del mismo ámbito, no deben contener más de 255 caracteres y no pueden contener un punto o carácter de declaración de tipo.

Page 3: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Cuando declaramos una variable, por ej:

Dim SALUDOS as String

A medida que utilicemos la variable saludos aún cuando la escribamos en minúsculas VBA nos la corregirá automáticamente, ya que ha sido creada en mayúsculas.

Es decir no debemos preocuparnos entre mayúsculas o minúsculas salvo en la declaración de variables y solo si queremos.

Page 4: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Sub Macro()

Dim valor As Double

valor = 1.45

ActiveCell.Value = valor * ActiveCell.Value

End Sub

Page 5: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Para que siempre nos veamos en la obligación de declarar todas las variables que podamos ir utilizando en nuestros módulos (es decir obligarnos a definir nuestras variables de entrada).

Esto lo podemos realizar desde el editor de VBA, a traves del menú Herramientas > Opciones > pestaña Editor > y seleccionar la casilla Requerir declaración de variables.

Page 6: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Cuando Option Explicit aparece en un módulo, debemos declarar explícitamente todas las variables mediante las instrucciones Dim, Private, Public, ReDim o Static.

Option ExplicitSub uno()Dim a As Integer a = 1End Sub

Page 7: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

La declaración de variables es primordial, totalmente necesaria, pues ayuda a saber el código que estamos manipulando y utilizar menos memoria, es por ello una buena acción forzar la declaración de variables siempre.

Page 8: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Entre los tipos de datos tenemos:

Byte, Boolean, Integer, Long, Single, Double, Currency, Decimal, Date, Object, String, Variant, Type (definido por el usuario).

Page 9: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Variables Locales:

Las variables locales se declaran dentro de cada macro, y solo pueden ser utilizadas dentro de la macro en la que han sido creadas, cuando la macro termina de ejecutarse, la variable desaparece y Excel libera la memoria que estaba utilizando recordando a qué hacían referencia.

Page 10: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Option ExplicitSub Macro1()Dim Autor As String Autor = "Ejemplo" ActiveCell = AutorEnd Sub

Sub Macro2()Dim Autor As String Autor = "Pedro" ActiveCell = AutorEnd Sub

Page 11: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Se recomienda la utilización de variables locales antes que la de variables públicas ya que una vez que la macro termina de ejecutarse, VBA ya no las reconoce de nuevo y libera memoria, mientras que si son públicas aún cuando la macro termina, el valor al que hacen referencia las variables sigue vigente y ocupando espacio en memoria.

Page 12: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Variables Publicas:

Las variables declaradas mediante la instrucción Public están disponibles para todos los procedimientos en todos los módulos de todas las aplicaciones, a menos que Option Private Module esté en efecto; en este caso, las variables sólo son públicas dentro del proyecto en el que residen.

Page 13: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Public X As New Worksheet

Usamos también la instrucción Public para declarar el tipo de objeto de una variable.

Cuando una variable es declarada como Public y es colocada al principio del módulo, puede ser utilizada por cualquier macro, mientras que si fuera una variable no pública deberíamos definir su nombre cada vez que la necesitemos en cada macro.

Page 14: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Variables en VBA

Variables Estaticas: Las variables declaradas con la instrucción Static conservan su valor mientras el código se está ejecutando.

Una vez que el código del módulo se está ejecutando, las variables declaradas con la instrucción Static conservan su valor hasta que se reinicie o restablezca el módulo.Static Y as Long

Page 15: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Constantes en VBA

Para declarar una variable como constante utilizamos la instrucción Const, por ej:

Option ExplicitConst nPaises As Byte = 53Const UKrate = 1.43, USrate = 0.78Const autorLibro As String = "Ejemplo"

Page 16: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Ejemplos

Para abrir un libro excel utilizamos la instrucción Open. Si queremos abrir un libro determinado podemos utilizar la siguiente macro:

Sub AbrirLibro()

Dim Nombre As String

Nombre = "C:\MiLibro.xls"

' Si no se encuentra el libro hacemos que salga un mensaje de aviso

If Dir(Nombre) = "" Then

MsgBox Nombre & " no se encuentra"

Else

Workbooks.Open FileName:=Nombre, updateLinks:=False

End If

End Sub

Page 17: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Ejemplos

Para cerrar un libro utilizamos la instrucción Close:

Sub Cerrar() ActiveWorkbook.CloseEnd Sub

Si quisieramos cerrar Excel:

Sub CierraExcel() Application.QuitEnd Sub

Page 18: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Ejemplos

Existen diversas formas de seleccionar celdas, y en todas ellas utilizamos el método Select.'La forma clásica de seleccionar

Sub Seleccionar ()

Range("C4").Select

End Sub

' Esta es otra terminología válida para seleccionar

Sub Seleccionar ()

[C4].Select

End Sub

' Finalmente podemos seleccionar de esta otra forma

' El primer Nº equivale a fila y el segundo a columna.

Sub Seleccionar ()

Cells(4, 3).Select

End Sub

Page 19: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Ejemplos

Sub AgregarHoja() 'codigo que agrega otra hoja al libro. ActiveWorkbook.Worksheets.AddEnd Sub

Sub AgregarHoja() Dim Hoja As Worksheet Set Hoja = Worksheets.AddEnd Sub

Page 20: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Ejemplos

Sub BorrarHoja() 'codigo que elimina una Hoja en un libro. Sheets("Hoja1").DeleteEnd Sub

Page 21: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Do Loop

La instrucción Do Loop es utilizada para repetir las mismas instrucciones una y otra vez hasta que una condición tenga lugar.

Es probablemente la estructura más simple de cuantas hay en cuanto a repeticiones, pues no establece condiciones de entrada ni de salida como ocurre en Do While o Do Until.

Page 22: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Do Loop

Sub Colorea()

[A1].EntireRow.Select ' Comenzamos desde la fila 1

Do ' Comenzamos a evaluar

If ActiveCell.Value = "" Then Exit Do ' Si la celda activa no tiene valor salimos del bucle

Selection.EntireRow.Interior.ColorIndex = 15 ' Si la celda tiene valor pinta la fila de gris

Selection.Offset(2).Select ' Nos movemos a la fila siguiente

Loop ' Comenzamos nuevamente el bucle desde el Do

End Sub

Page 23: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

For Next

La instrucción For Next repite un grupo de instrucciones un número especificado de veces. La sintaxis es:

For contador = principio To fin [Step incremento][instrucciones][Exit For][instrucciones]

Next [contador]

Page 24: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

For Next

Sub For_Next()Dim X As Integer' Establece 10 repeticiones, con incremento negativo de 2 For X = 10 To 1 Step -2 Cells(X, 1) = X Next XEnd Sub

En el caso anterior X tomaría los valores 10,8,6,4,2 sucesivamente.

Page 25: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

While Wend

La instrucción While Wend ejecuta una serie de instrucciones mientras una condición dada sea True, es decir verdadera, o tenga lugar. Su sintaxis es:

While condición [intrucciones]Wend

Page 26: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

If Then

La instrucción If Then permite escoger entre 2 o más posibilidades, para decidir sobre que es lo que queremos, entre una serie de alternativas. Su sintaxis es:

If condición Then [instrucciones]-[Else instrucciones_else]

Tambien podemos utilizar la siguiente sintaxis en formato de bloque:

If condición Then

[instrucciones]

[ElseIf condición-n Then

[instrucciones_elseif] ...

[Else

[instrucciones_else]]

End If

Page 27: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

If Then

Sub IF_Then() If [A1] > 15 Then Msgbox "La celda A1> 15"End Sub

Page 28: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Select Case

La instrucción Select Case se utiliza cuando las alternativas en una estructura de If Then son muchas. En tal caso conviene evitar el If Then y hacer uso de Select Case, que permite ejecutar uno de varios grupos de instrucciones, dependiendo del valor de una expresión.

A sintaxis de Select Case es:

Select Case expresión_prueba[Case lista_expresion-n[instrucciones-n]] ...[Case Else[instrucciones_else]]End Select

Page 29: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Select Case

Sub Select_Case()

Dim Número As Variant ' la declaramos como Variant para evitar el error de compilación que

' obtendríamos en el caso de que [A1] fuera texto

Número = [A1] ' Inicializa variable.

Select Case Número ' Evalúa Número.

Case 1 To 5: MsgBox "Entre 1 y 5" ' Para Nºs entre 1 y 5, inclusive

Case 6, 7, 8: MsgBox "Entre 6 y 8" ' Para Nºs entre 1 y 5, inclusive

Case 9 To 10: MsgBox "Mayor que 8" ' Para Nºs entre 9 y 10, inclusive

Case Else ' Para otros valores.

MsgBox "No está entre 1 y 10"

End Select

End Sub

Page 30: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Msgbox

Un Msgbox es simplemente una ventana que muestra un mensaje. Por ej., con la siguiente instrucción mostraríamos un saludo:

Sub Saludo() ' Escribimos el mensaje entre comillas Msgbox "Ejemplo de Mensaje"End Sub

Page 31: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

InputBox

Un InputBox se utiliza cuando requerimos un ingreso de un dato del Usuario. Básicamente lo que hacemos es asignarle un valor a una variable, pero le damos el control al usuario para que asigne dicho valor o dato a gusto.Ejemplo:

Nombre=inputbox “Ingrese su nombre”

Page 32: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Uso de Formularios

Label(etiqueta): Este control mostrara un texto dentro del useform. Cuadro de texto(TextBox): Permite al usuario introducir texto Cuadro combinado(ComboBox) :permitira contener un listado de

elementos pero solo mostrara uno la vez hasta ser desplegado . Cuadro de Lista(ListBox) : Permite mostrar una lista de elementos donde

le usuario puede realizar la selección de uno o varios. Casilla de verificación(CheckBox): Son utiles cuando el usuario necesita

indicar varias opciones .La casilla de verificacion marcada tiene el valor de verdadero.

Boton de opcion(OptionButton).Se empleara cuando solo sea posible elegir uan sola opcion entre varias.

Cuando uno de los botones esta activado(valor true) el resto de botones se desactivara .

Control imagen(Image): Se emplea para mostrar una imagen desde un archivo o cargarse desde el portapapeles.

Page 33: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Uso de Formularios

Page 34: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Principales Eventos del Formulario

Initialize: Se ejecutara antes de que cargue o se muestre el formulario de usuario

Activate: Se ejecuta cuando se muestra el formulario.

QueryClose: Se ejecuta antes de descargar el formulario

Terminate: Se ejecuta después de descargar el formulario

Page 35: Visual Basic para Aplicaciones en Excel · traves del menú Herramientas > Opciones > ... Para abrir un libro excel utilizamos la instrucción ... Casilla de verificación(CheckBox):

Ejemplo de formulario

En este ejemplo se pretende ingresar información desde un formulario creado desde el editor.