visual basic para aplicaciones en excel · traves del menú herramientas > opciones > ......
TRANSCRIPT
Manejo de Software para Microcomputadoras
Visual Basic para Aplicaciones en Excel
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.
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.
Variables en VBA
Sub Macro()
Dim valor As Double
valor = 1.45
ActiveCell.Value = valor * ActiveCell.Value
End Sub
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.
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
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.
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).
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.
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
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.
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.
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.
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
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"
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
Ejemplos
Para cerrar un libro utilizamos la instrucción Close:
Sub Cerrar() ActiveWorkbook.CloseEnd Sub
Si quisieramos cerrar Excel:
Sub CierraExcel() Application.QuitEnd Sub
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
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
Ejemplos
Sub BorrarHoja() 'codigo que elimina una Hoja en un libro. Sheets("Hoja1").DeleteEnd Sub
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.
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
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]
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.
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
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
If Then
Sub IF_Then() If [A1] > 15 Then Msgbox "La celda A1> 15"End Sub
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
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
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
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”
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.
Uso de Formularios
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
Ejemplo de formulario
En este ejemplo se pretende ingresar información desde un formulario creado desde el editor.