1. ¿Qué es Visual Basic para Aplicaciones?2.Grabadora de Macros.3. El Editor VBA (Visual Basic para Aplicaciones)4. Objetos, Propiedades, Métodos y Eventos en VBA.5. Procedimientos y Funciones.6. Tipos y Declaraciones de Variables.7. Estructuras Condicionales.8. Diversas Macros usando objetos en Excel.
¿Qué es Visual Basic para Aplicaciones o VBA?
Nace en 1964 y sus creadores son John Kemeny y Thomas Kurtz.
B.A.S.I.C. significa: Beginner’s All-purpose Symbolic Instruction Code,traduciendo esto sería: Código de instrucciones de uso universal paraprincipiantes.
Basic es un lenguage de programación que actua como un intermediarioentre el operador y el computador. Mediante el vocabulario y las reglasBasic, se le ordena al computador lo que se quiere que haga y el PCtransforma estas instrucciones para poder ejecutarlas.
¿Qué es Visual Basic para Aplicaciones o VBA?
VBA fue introducido a las aplicacionesde Windows en mayo de 1991, bajo elnombre de Visual Basic 1.0. En 1993 seintegro a Microsoft Excel.
Hoy en día, Excel opera con versionesVisual Basic 5.0, 6.0 y 7.0.
¿Qué es Visual Basic para Aplicaciones o VBA?
Es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes
agregados.
¿Qué es Visual Basic para Aplicaciones o VBA?
Los objetos son el elemento central de laprogramación en Visual Basic. Por lotanto, VBA es una ProgramaciónOrientada a Objetos (OOP en ingles).
Lo que significa que utilizaremos en estecurso los objetos definidos por laAplicación Excel (Hojas, Rangos, Celdas,etc.).
¿Qué es Visual Basic para Aplicaciones o VBA?
La gran ventaja que tendremos es queutilizaremos objetos ya definidos, notendremos que crear nuevos objetos.
Para ello deberemos conocer suspropiedades y métodos, y encontrar laforma correcta de utilizarlos.
Utilidad VBA en Microsoft Excel • Eliminación de Tiempos en Tareas Repetitivas.• Aceleración en Cálculos.• Dar Formatos a las hojas de datos e información.• Agrupamiento de Información (No Tablas Dinámicas)• Conexión con Bases de Datos.• Conexión con otras Aplicaciones (Word, Outlook, Internet, etc.)• Creación de nuestras propias Funciones (User Defined Functions UDF).• Creación de Formularios.• Construir nuestras propias aplicaciones.
Consideraciones Paciencia.
VBA esta escrito en idioma Ingles.
Seguir la secuencia de Programación (1 luego el 2).
Memoria Computadora.
Grabar las Macros antes de ejecutarlas.
En Fase de Prueba, NO UTILICE INFORMACIÓN ORIGINAL.
Lo que veamos en este curso es una posible solución, no hay límites.
Consideraciones
¿Qué necesito?
¿Cómo lo necesito?
¿Para quién?
¿Es Viable?Si
No
Creación Macro
Fase de Pruebas Utilización
Repaso
La grabadora de macros almacena cada acción que se realiza en Excel.
Las macros se guardan ya sea en el archivo Personal de Excel o dentro de cada una de las hojas del Libro de Excel o en Módulos Estandar.
Existen acciones que no se pueden realizar con la grabadora y necesariamente deberemos escribir Código VBA.
Editor VBAEs la Herramienta de VBA que
nos permite analizar, instrucción por instrucción, el
código de programación de las macros y realizar las modificaciones que
necesitemos.
Para acceder a el Tecleamos Alt+ F11
Principales Componentes
Menus
Ventanas
- Archivo- Edicion- Ver- Insertar- Formato
- Depuración- Ejecutar- Herramientas- Complementos- Ventana- Ayuda
- De Código F7- Inmediato Ctl+G- Inspección Alt+V+I- Locales
- Explorador de Proyectos Ctl+R
- Propiedades F4
Menu
Edición
Opciones para Copiar, Cortar,Pegar, Buscar, Reemplazar,Sangrias, etc., similar acualquier app del entornoWindows.
Menu
Ver
Sirve para activar o desactivarlas distintas ventanas delEditor VBA, que sirven paraanálisis de las instruccionesde Código.
Menu
Insertar
Inserta los objetos en los cualesescribiremos Código ocrearemos objectos como losFormularios.
Menu
Depuración
Sirve para ejecutar diversaspartes del Código para analizarsu correcto funcionamiento. Conello nos permite encontrarerrores o mejoras a nuestrasMacros.
Menu
Complementos
Administra los Complementos,los cuales le dan a VBAcapacidades al entorno deprogramación.
Ventanas
De Código: Es el lugar donde trabajaremos con el Lenguaje VBA.
Inmediato: Es el lugar donde podemos ejecutar Código u obtener unresultado de algún calculo o variable.Inspección: Sirve para seguir el funcionamiento de ciertasinstrucciones o variables de nuestros procedimientos.Local: Sirve para conocer los valores de las variables definidasdentro de nuestra macro.
Explorador de Proyectos: Funciona como un navegador, el cualcontiene los objetos como son la(s) hojas de cálculo abiertas,Formularios y Módulos de cada libro, así como el Libro Personal deMacros.
OBJETO
Es algo provisto de un conjunto de propiedades o atributos (datos),de un comportamiento o funcionalidad (métodos) y de sus posiblesrelaciones con otros objetos.
Ejemplo: Un carro seria un objeto. Tiene ciertas caracteristicas deapariencia( Propiedades) y Acciones (Métodos).
Pero a su vez, los asientos, puertas, ventanas del Carro se conviertenen objetos, por que tienen apariencia(Propiedades) yAcciones(Métodos).
Y así sucesivamente.
OBJETO
En Excel, la Aplicación es un objeto, las hojas son un objeto, lasceldas, los Botones, etc.
Todas ellas tienen propiedades (apariencia) y Métodos (acciones).
Propiedades
Son variables que describen algunos aspectos o características delobjeto en el que están incluidas.
Las propiedades de un objeto toman un valor que puede serpermanente o puede cambiar.
MiAuto.Color=Verde
MiAuto Es el ObjetoColor es la PropiedadVerde es la variable.
Método
Es una acción que el objeto "reconoce" y "sabe" cómo ejecutarlo. Esuna acción u operación que realiza acceso a los datos.
No hay necesidad de Programar.
Los Métodos de un objeto ejecutan una acción y puede serpermanente o puede cambiar.
MiAuto.Frenar=True
MiAuto es el ObjetoFrenar es el Método(Acción)True significa que Ejecute la Acción.
Clase
Es simplemente una representación de un tipo de objeto.
En el caso del Carro solo habría una, que se denominaria igual, ladiferencia es que todos los Modelos de Carro (Objetos) perteneceriana la Clase Carro.
Si quisieramos compararlo a dos carros, la clase Carro tiene comoPropiedad un Motor, el carro Audi tiene un motor, el carro Jetta tieneun motor.
Procedimientos
Es un bloque de instrucciones de código que sirven para llevar acabo alguna tarea especifica. Un procedimiento siempre empieza conuna instrucción.
Sub Nombre_Procedimiento
«Instrucciones»
End Sub
Procedimientos
Ejemplo 1
Sub Primero
Range(“A1”).value=“Hola”
End Sub
Nota: Para ejecutar un procedimiento en el Editor Visual Basic utilicela tecla F5.
Funciones
Es una serie de instrucciones delimitadas por las instruccionesFunction y End Function. El procedimiento Function realiza una tareay, a continuación, devuelve el control al código de llamada. Cuandodevuelve el control, también devuelve un valor al código de llamada.
Function Nombre_Funcion
«Instrucciones»
End Function
Tabla Funciones Excelhttp://excelyvba.com/formulas-de-excel-en-ingles-y-espanol/
Español Inglés Español Inglés Español Inglés
ABRIR.ARCHIVO OPEN.DIALOG ATAN2 ATAN2 CAMBIAR.NOMBRE. RENAME.COMMAND
ABRIRA FOPEN ATANH ATANH CANCELAR.TECLA CANCEL.KEY
ABS ABS AYUDA HELP CARACTER CHAR
ACOS ACOS BDCONTAR DCOUNT CELDA CELL
ACOSH ACOSH BDCONTARA DCOUNTA CELDA.ACTIVA ACTIVE.CELL
AGREGAR.BARRA ADD.BAR BDDESVEST DSTDEV CERRARA FCLOSE
AGREGAR.BARRA.HERRAADD.TOOLBAR BDDESVESTP DSTDEVP CODIGO CODE
AGREGAR.COMANDO ADD.COMMAND BDEXTRAER DGET COEF.DE.CORREL CORREL
AGREGAR.MENU ADD.MENU BDMAX DMAX COEFICIENTE.ASIME SKEW
AGRUPAR GROUP BDMIN DMIN COEFICIENTE.R2 RSQ
AHORA NOW BDPRODUCTO DPRODUCT COINCIDIR MATCH
ALEATORIO RAND BDPROMEDIO DAVERAGE COLUMNA COLUMN
AÑO YEAR BDSUMA DSUM COLUMNAS COLUMNS
APL.TITULO APP.TITLE BDVAR DVAR COMBINAT COMBIN
ARCHIVOS FILES BDVARP DVARP CONCATENAR CONCATENATE
AREAS AREAS BINOM.CRIT CRITBINOM CONTAR COUNT
ARGUMENTO ARGUMENT BUSCAR LOOKUP CONTAR.BLANCO COUNTBLANK
ASC ASC BUSCARH HLOOKUP CONTAR.SI COUNTIF
ASENO ASIN BUSCARV VLOOKUP CONTARA COUNTA
ASENOH ASINH CADENA.FECHA DATESTRING COS COS
ATAN ATAN CADENA.NUMERO NUMBERSTRING COSH COSH
Variables
Es un trozo de memoria que el procedimiento o función se reservapara guardar datos.
Sub Nombre_Procedimiento
Dim variable as Tipo
«Instrucciones»End Sub
Siendo variable el que se asigna a la misma y Tipo el tipo de datos uobjetos que se declararan (números, texto, fecha, booleanos, hojas,rango)
Tipos de Variables
Estas pueden ser asignadas con letras y números y el caracter guiónbajo.
El nombre debe empezar invariablemente por una Letra y puede tenerhasta 255 caracteres de longitud (No se recomienda que las variablestengan un nombre muy grande, recuerde el consumo de memoria a lahora de ejecutar sus procedimientos).
Se recomienda iniciar con el prefijo de las letras del tipo variable quese trata, por ejemplo, una variable long seria lngVariable, una variableString strVariable, etc.
Tipos de Variables
Locales de procedimiento:Son declaradas dentro del procedimiento ysólo son conocidas dentro de él.
Locales de Módulo:Son declaradas dentro del Módulo u Objeto y sóloson conocidas dentro de él.
Globales: Son declaradas dentro un Módulo como variable precedidopor la palabra Public y son conocidas en todos los módulos uobjetos.
Tipos de Variables
Option Explicit. Esta declaración sirve para forzar a que el usuariodeclare las variables en VBA.
Su ubicación es antes de todos los procedimientos, es decir, al iniciodel Módulo.
Solo aplica en el Módulo en el cual se encuentre declarado.
Guia de Procedimiento
Option Explicit ‘Siempre al Inicio del Modulo para Declarar Variables‘Declaramos el procedimientoSub Nombre_Procedimiento‘Declaramos VariablesDim i as integer, wks as object‘Establecemos apariencia de la AplicaciónApplication.EnabledEvents=False‘Establecemos valores u objetosi=30Set wks=sheets("Hoja1")‘Iniciamos Procedimientos Bucles, Condicionantes, Recorridos, Llamadas a otrosProcedimientos o Funciones, Arrays, Conexiones, Otros Objetos‘Al terminar limpiamos variables en su caso y Reestablecemos las AparienciasSet wks=Nothing Application.EnabledEvents=TrueEnd Sub ‘Finalizamos Procedimiento
Son instrucciones de programación que nospermiten controlar la ejecución de un fragmentode código en función de si se cumple o no unacondición.
If Condición ThenSentencia 1Sentencia 2Sentencia ….
ElseSentencia 1
End If
Si Condición EntoncesSentencia 1Sentencia 2Sentencia ….
SinoSentencia 1
Fin
Estructura If anidadas
If Condición ThenSentencia 1Sentencia 2Sentencia ….
ElseIf Condición2 ThenSentencia 1Sentencia 2Sentencia ….
ElseSentencia 1
End If
Si Condición EntoncesSentencia 1Sentencia 2Sentencia ….
AdemasSi Condición2 EntoncesSentencia 1Sentencia 2Sentencia ….
SinoSentencia 1
Fin
Estructura If anidadasIf Condición Then
Sentencia 1Sentencia 2Sentencia ….
ElseIf Condición2 Then
Sentencia 1Sentencia 2Sentencia ….
ElseSentencia 1
End ifEnd If
Si Condición EntoncesSentencia 1Sentencia 2Sentencia ….
SinoSi Condición2 Entonces
Sentencia 1Sentencia 2Sentencia ….
SinoSentencia 1
FinFin
Estructura Select Case
Esta estructura nospermite asignar yclasificar en función deuna única variable convarios posiblesresultados.
Select Case ExpresiónCase valor1:
Instrucciones:Case valor2:
Instrucciones:Case valor3:
Instrucciones:Case Else
Instrucciones:End Select
Funciones de ComprobaciónIsNuméric(Expresión). Comprueba si expresión tiene un valor que se puede interpretarcomo numérico.
IsDate(Expresión). Comprueba si expresión tiene un valor que se puede interpretar comotipo fecha.
IsEmpty(Expresión). Comprueba que expresión tenga algún valor, que se haya inicializado.
IsError(Expresión). Comprueba si expresión devuelve algún valor de error.
IsArray(Expresión). Comprueba si expresión (una variable) es un array o no.
IsObject(Expresión). Comprueba si expresión (una variable) representa una variable tipoobjeto.
IsNull(Expresión). Comprueba si expresión contiene un valor nulo debido a datos noválidos.
Principales FuncionesFUNCIÓN DESCRIPCIÓNAbs Regresa el valor absoluto de un númeroAsc Obtiene el valor ASCII del primer caracter de una cadena de textoCBool Convierte una expresión a su valor booleanoCByte Convierte una expresión al tipo de dato ByteCCur Convierte una expresión al tipo de dato moneda (Currency)CDate Convierte una expresión al tipo de dato fecha (Date)CDbl Convierte una expresión al tipo de dato doble (Double)CDec Convierte una expresión al tipo de dato decimal (Decimal)Chr Convierte un valor ANSI en valor de tipo textoCInt Convierte una expresión en un dato de tipo entero (Int)CLng Convierte una expresión en un dato de tipo largo (Long)CStr Convierte una expresión en un dato de tipo texto (String)CurDir Regresa la ruta actualCVar Convierte una expresión en un dato de tipo variante (Var)Date Regresa la fecha actual del sistemaDateAdd Agrega un intervalo de tiempo a una fecha especificadaDateDiff Obtiene la diferencia entre una fecha y un intervalo de tiempo especificadoDatePart Regresa una parte específica de una fechaDateSerial Convierte una fecha en un número serialDateValue Convierte una cadena de texto en una fechaDay Regresa el día del mes de una fechaDir Regresa el nombre de un archivo o directorio que concuerde con un patrón
Principales FuncionesFUNCIÓN DESCRIPCIÓNEOF Regresa verdadero si se ha llegado al final de un archivoFileDateTime Regresa la fecha y hora de la última modificación de un archivoFileLen Regresa el número de bytes en un archivoFormatCurrency Regresa un número como un texto con formato de monedaFormatPercent Regresa un número como un texto con formato de porcentajeHour Regresa la hora de un valor de tiempoIIf Regresa un de dos partes, dependiendo de la evaluación de una expresiónInputBox Muestra un cuadro de diálogo que solicita la entrada del usuarioInStr Regresa la posición de una cadena de texto dentro de otra cadenaInStrRev Regresa la posición de una cadena de texto dentro de otra cadena pero empezando desde el finalInt Regresa la parte entera de un númeroIsDate Regresa verdadero si la variable es una fechaIsEmpty Regresa verdadero si la variable está vacíaIsError Regresa verdadero si la expresión es un valor de errorIsNull Regresa verdadero si la expresión es un valor nuloIsNumeric Regresa verdadero si la variable es un valor numéricoJoin Regresa una cadena de texto creada al unir las cadenas contenidas en un arreglo.LCase Regresa una cadena convertida en minúsculasLeft Regresa un número específico de caracteres a la izquierda de una cadenaLen Regresa la longitud de una cadena (en caracteres)LTrim Remueve los espacios a la izquierda de una cadenaMid Extrae un número específico de caracteres de una cadena de texto
Principales FuncionesFUNCIÓN DESCRIPCIÓNMinute Regresa el minuto de una dato de tiempoMonth Regresa el mes de una fechaMsgBox Despliega un cuadro de dialogo con un mensaje especificadoNow Regresa la fecha y hora actual del sistemaReplace Reemplaza una cadena de texto con otraSpace regresa una cadena de texto con el número de espacios especificadosSplit Regresa un arreglo formado por cadenas de texto que formaban una sola cadenaStr Regresa la representación en texto de un númeroRight Regresa un número especificado de caracteres a la derecha de una cadena de textoRnd Regresa un número aleatorio entre 0 y 1Round Redondea un número a una cantidad específica de decimalesRTrim Remueve los espacios en blanco a la derecha de una cadena de textoSecond Regresa los segundos de un dato de tiempoStrComp Compara dos cadenas de textoStrReverse Invierte el orden de los caracteres de una cadenaTime Regresa el tiempo actual del sistemaTimer Regresa el número de segundos desde la media nocheTimeValue Convierte una cadena de texto a un númer de serie de tiempoTrim Remueve los espacios en blanco al inicio y final de una cadena de textoTypeName Obtiene el nombre del tipo de dato de una variableUCase Convierte una cadena de texto en mayúsculasVal Regresa el número contenido en una cadena de textoWeekday Regresa un número que representa un día de la semanaWeekdayName Regresa el nombre de un día de la semana
Estructuras Repetitivas (Bucles)
Este tipo de Estructuras nos permite ejecutar más de una vez un mismo bloque de sentencias.
Estructura For
Estructura Do while…Loop (Hacer Mientras)
Estructura Do Until…Loop (Hacer hasta que)
Estructura Do.. Loop While.
Estructura Do.. Loop Until (Hacer hasta que).
Estructura For Each (Por cada).
Estructura ForEs de las instrucciones más útiles en VBA. Su propósito es realizar la repetición de un conjunto de instrucciones un determinado número de veces.
For inicialización de variable To límite
«Conjunto de instrucciones que se repetirán»
Next incrementar variable
Do While/Until…LoopLa diferencia con For Next, es que en esta
estructura no se conoce el número de veces que se ejecutara.
Do { While | Until } Condición[Instrucciones a repetir][Exit Do ][Instrucciones a repetir]
Loop
Do… Loop While/UntilLa diferencia con For Next, es que en esta estructura no se conoce el número de veces que se ejecutara.
Do[Instrucciones a repetir][Exit Do ][Instrucciones a repetir]
Loop { While | Until } Condición
For Each…NextNos permite la manipulación de objetos dentro de una colección. Una colección es el conjunto de elementos de un mismo tipo, por ejemplo, colección de celdas, de hojas, de libros, de ventanas, objetos gráficos, etc.
For Each variable In collection_nameInstrucciones
Next variable
Top Related