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
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 Explicit Sub uno() Dim a As Integer a = 1
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 Explicit Sub Macro1() Dim Autor As String Autor = "Ejemplo" ActiveCell = Autor Sub Macro2() Dim Autor As String Autor = "Pedro" ActiveCell = Autor
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 Explicit Const npaises As Byte = 53 Const UKrate = 1.43, USrate = 0.78 Const 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
Ejemplos Para cerrar un libro utilizamos la instrucción Close: Sub Cerrar() ActiveWorkbook.Close Si quisieramos cerrar Excel: Sub CierraExcel() Application.Quit
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 ' Esta es otra terminología válida para seleccionar Sub Seleccionar () [C4].Select ' Finalmente podemos seleccionar de esta otra forma ' El primer Nº equivale a fila y el segundo a columna. Sub Seleccionar () Cells(4, 3).Select
Ejemplos Sub AgregarHoja() 'codigo que agrega otra hoja al libro. ActiveWorkbook.Worksheets.Add Sub AgregarHoja() Dim Hoja As Worksheet Set Hoja = Worksheets.Add
Ejemplos Sub BorrarHoja() 'codigo que elimina una Hoja en un libro. Sheets("Hoja1").Delete
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
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 X 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"
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] Select Case Número ' Inicializa variable. ' 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 End Select ' Para otros valores. MsgBox "No está entre 1 y 10"
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"
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.