Programación 2 Proyecto
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA, CIENCIAS, FÍSICAS Y MATEMÁTICA
CARRERA DE INGENIERIA CIVIL
PROGRAMACION II
ASIGNATURA: Programación 2
SEMESTRE – PARALELO: 2do-2do
PROFESOR: Ing. José Ramiro Pilaluisa Q.
M.Sc.
PERÍODO ACADÉMICO: Marzo 2019 – Agosto 2019
INFORME DE INVESTIGACIÓN
TÍTULO: VBA ( Visual Basic para aplicaciones)
FECHA DE ENTREGA: 2019-06-12
MIEMBROS DEL GRUPO - G1
ANDRANDO LEMA SILVIA ARACELY 100%
CAJAS CRIOLLO KEVIN ALEXANDER 100%
NOLIVOS ERAZO JOSUE RICARDO 100%
PACHACAMA QUIZAGUANO ERIK DAVID 100%
Programación 2 vvv Proyecto
1 Resumen
Lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite
a usuarios y programadores ampliar la funcionalidad de programas de la suite Microsoft
Office. Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic
5.0 y 6.0.
Su utilidad principal es automatizar tareas cotidianas, así como crear aplicaciones y
servicios de bases de datos para el escritorio. Permite acceder a las funcionalidades de
un lenguaje orientado a eventos con acceso a la API de Windows.
Al provenir de un lenguaje basado en Basic tiene similitudes con lenguajes incluidos en
otros productos de ofimática como StarBasic y Openoffice.
2 Introducción
Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo
despiertan entre los programadores de PCs, tanto expertos como novatos. En el caso de
los programadores expertos por la facilidad con la que desarrollan aplicaciones
complejas en poquísimo tiempo (comparado con lo que cuesta programar en Visual
C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo
que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que
pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las
aplicaciones. Visual Basic 6.0 es un lenguaje de programación visual, también llamado
lenguaje de 4ª generación. Esto quiere decir que un gran número de tareas se realizan
Programación 2 vvv Proyecto
sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre
la pantalla. Visual Basic 6.0 es también un programa basado en objetos, aunque no
orientado a objetos como C++ o Java. La diferencia está en que Visual Basic 6.0 utiliza
objetos con propiedades y métodos, pero carece de los mecanismos de herencia y
polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y
C++.
3 Materiales y Métodos
Para el desarrollo del informe se utilizó fuentes electrónicas como es el internet y las
diferentes páginas web que este proporciona, usándolos como base de la información
presentada.
Además, se utilizó el método científico para la recopilación de la información y la
interpretación de la misma.
Entre los materiales que se utilizaron están: un computador.
4 Resultados
Una de las fortalezas de Excel ha sido siempre su lenguaje macro. Desde que Excel
apareció, siempre gozó de tener el lenguaje macro más extenso y flexible que cualquiera de
las otras hojas de cálculo. Visual Basic for applications (VBA) apareció por primera vez
como una parte de Excel en la versión 5. De hecho Excel fue la primera aplicación que
incluyó esta novedosa arquitectura. Al empezar con Excel 97, VBA se convirtió totalmente
en un ambiente para el desarrollo de software, consistiendo en la versión independiente de
Visual Basic y siendo compartida por todas las demás versiones de Microsoft Office.
La definición de Excel es más fácil de comprender con el siguiente ejemplo:
Programación 2 vvv Proyecto
“El mes pasado perdí el control remoto de mi videocasetera. Fue horrible. Yo quería programar la máquina
para grabar la repetición del Chavo del Ocho a las 3:00 a.m. una noche, pero no lo pude hacer debido a que
todas las funciones de programación de horarios se encontraban en el control. Afortunadamente, después
de dos semanas, mi compañero de cuarto encontró el control metido entre la ropa sucia, y me regresó el
“precioso” control. Ahora estoy muy feliz de tener nuevamente el control”
Microsoft Visual Basic for applications (VBA) es el control remoto para Microsoft Excel.
Seguramente se puede usar Excel sin nunca haber usado VBA, sin embargo VBA (el control
remoto) puede hacer más conveniente el uso de Excel y permite tomar ventajas de opciones
que no pueden ser accesadas con los controles comunes de la hoja de trabajo.
Es muy importante señalar que VBA es la versión de Visual Basic que se encuentra instalada
en una aplicación como lo es Microsoft Excel. Una macro VBA no puede correr
independiente de su aplicación servidora. VBA y la versión independiente de Visual Basic
utilizan el mismo lenguaje, y la mayoría de las herramientas de soporte.
5 Discusión
En la investigación lo que se realizó fue buscar las fuentes más importantes y con un
mayor contenido veraz, en el cual se nos dio a notar las características y los beneficios
de V.B.A. en los documentos encontrados pudimos notar que a lo largo de la
investigación y junto con los conocimientos impartidos en clase por el docente,
establecimos que V.B.A. es una herramienta informática en Excel que le permite a
programador tomar ventajas de opciones que no pueden ser accesadas con los controles
comunes de la hoja de trabajo.
Programación 2 vvv Proyecto
6 Conclusiones
Visual Basic para Aplicaciones es una aplicación que nos permite la manipulación de
características de la interfaz de usuario, los menús y barras de herramientas, el
trabajo con formularios de usuario personalizados que son de vital importancia en la
carrera de ingeniería civil.
Visual Basic y Visual Basic para Aplicaciones utilizan el mismo lenguaje de
programación, V.B.A. no puede correr independiente de su aplicación servidora
En este sistema, VBA actúa como un lenguaje de propósito general que es
independiente de la aplicación. De este modo, cualquiera que tenga conocimientos de
programación en Visual Basic puede fácilmente automatizar Excel
7 Recomendaciones
Se debe tener en cuenta que V.B.A. nos permite programar través de Excel siendo
parte del paquete de office debemos cerciorarnos que al momento de programar no
causemos ningún tipo de cambio en las condiciones iniciales del programa
Se recomienda tener un fuerte conocimiento del lenguaje de programación que se usa
en V.B para que al momento de tener que identificar una línea de código y modificarla
sea algo sencillo.
Se recomienda en el caso de que la computadora en la que se active el V.B.A. se realice
la programación, se guarden los archivos de manera correcta ya que si no se guarda
como es debido toda la programación se pierde.
Programación 2 vvv Proyecto
8 Referencias
JOYANES, L. (2008). Fundamentos de la programación. Algoritmos y Estructura de Datos, 4ª
Edición. Madrid: McGraw-Hill.
JOYANES, L.; RODRIGUEZ, L; FERNANDEZ, M. (2003). Fundamentos de programación
Libro de problemas. 2ª Edición. Madrid: McGraw-Hill.
AHO, Alfred V.; HOPCROFT, John E.; ULLMAN, Jeffrey D. (1998). Estructuras de datos y
algoritmos. México: Addison Wesley.
BRASSARD, G.; BRATLEY, P. (1997). Fundamentos de Algoritmia. Madrid: Prentice-Hall.
COLLADO MACHUCA, M.; MORALES FERNÁNDEZ, R.; MORENO NAVARRO, J. J.
(1987). Estructuras de datos. Realización en Pascal. Madrid: Ediciones Díaz de Santos.
GARCÍA MOLINA, J. J.; MONTOYA DATO, F. J.; FERNÁNDEZ ALEMÁN, J. L.; MAJADO
ROSALES, M. J. (2005). Una introducción a la programación. Un enfoque algorítmico. Madrid:
Thomson-Paraninfo.
JOYANES, L. (1990). Problemas de Metodología de la Programación. Madrid: McGraw-Hill.
JOYANES, L.; ZAHOHERO, I. (2005). Programación en C : metodología, algoritmos y
estructura de datos, 2ª Edición. Madrid: McGraw-Hill
9 ANEXOS (En medio digital)
Siempre nos hemos preguntado por qué el paquete ofimático de Microsoft (Microsoft Office),
sobrevive a muchos paquetes similares que han ido irrumpiendo en el mercado en muchos
casos gratuitos. En realidad la funcionalidad que nos aporta en cuanto a formateo de texto
Programación 2 vvv Proyecto
(pensando en Microsoft Word) o escritura de fórmulas (pensando en Microsoft Excel) no es
más que la que aporta por ejemplo google Docs a través de su paquete de ofimática. Sin
embargo hay características especiales que ponen a este paquete informático (Microsoft
Office) muy por encima de sus competidores. Una de ellas es el motivo de este post y es el
VBA.
Pero qué es el VBA.
Pues bien Visual Basic para Aplicaciones (VBA) es una implementación del lenguaje de
programación orientado a eventos de Microsoft, Visual Basic 6, y su entorno de desarrollo
integrado asociado (IDE), adaptado a las distintas aplicaciones que componen Microsoft
Office.
Visual Basic para Aplicaciones permite la construcción de funciones definidas por el
usuario, la automatización de los procesos y el acceso a la API de Windows y otras
funcionalidades de bajo nivel a través de las bibliotecas de vínculos dinámicos (DLL).
Todas las aplicaciones del paquete Microsoft Office, cuentan con esa capacidad. Tienen un
lenguaje común basado en Visual Basic 6, con la filosofía de programación de este lenguaje
y luego a través de unos objetos específicos de cada aplicación podemos controlar todo lo
referente a esa aplicación.
Por ejemplo si pensamos en EXCEL, tendremos un objeto que identifica al libro que se
compone de una colección de hojas y a su vez cada hoja está compuesta de una colección de
celdas.
A = Worksheets(“hoja2).Range(“e10”).Value
Programación 2 vvv Proyecto
VBA se puede utilizar para controlar muchos aspectos de la aplicación host, incluyendo la
manipulación de características de la interfaz de usuario, los menús y barras de
herramientas, el trabajo con formularios de usuario personalizados o cuadros de diálogo, etc.
VBA lo podemos usar tanto para la construcción manual de funciones como para la creación
automática de macros. Es decir cuando grabamos una macro, internamente Microsoft Office
escribe un código en VBA que es el que realiza las operaciones asociadas a la macro.
Por tanto conocer este lenguaje y sus posibilidades nos brinda la oportunidad de ampliar la
funcionalidad de las aplicaciones Office personalizándolas y adaptándolas a nuestras
necesidades. Siempre nos hemos preguntado por qué el paquete ofimático de Microsoft
(Microsoft Office), sobrevive a muchos paquetes similares que han ido irrumpiendo en el
mercado en muchos casos gratuitos. En realidad la funcionalidad que nos aporta en cuanto a
formateo de texto (pensando en Microsoft Word) o escritura de fórmulas (pensando en
Microsoft Excel) no es más que la que aporta por ejemplo google Docs a través de su
paquete de ofimática. Sin embargo hay características especiales que ponen a este paquete
informático (Microsoft Office) muy por encima de sus competidores. Una de ellas es el
motivo de este post y es el VBA.
¿QUÉ ES VISUAL BASIC FOR APPLICATIONS?.
Una de las fortalezas de Excel ha sido siempre su lenguaje macro. Desde que Excel apareció,
siempre gozó de tener el lenguaje macro más extenso y flexible que cualquiera de las otras
hojas de cálculo. Visual Basic for applications (VBA) apareció por primera vez como una
parte de Excel en la versión 5. De hecho Excel fue la primera aplicación que incluyó esta
novedosa arquitectura. Al empezar con Excel 97, VBA se convirtió totalmente en un
Programación 2 vvv Proyecto
ambiente para el desarrollo de software, consistiendo en la versión independiente de Visual
Basic y siendo compartida por todas las demás versiones de Microsoft Office.
La definición de Excel es más fácil de comprender con el siguiente ejemplo:
“El mes pasado perdí el control remoto de mi videocasetera. Fue horrible. Yo quería
programar la máquina para grabar la repetición del Chavo del Ocho a las 3:00 a.m. una
noche, pero no lo pude hacer debido a que todas las funciones de programación de
horarios se encontraban en el control. Afortunadamente, después de dos semanas, mi
compañero de cuarto encontró el control metido entre la ropa sucia, y me regresó el
“precioso” control. Ahora estoy muy feliz de tener nuevamente el control”
Microsoft Visual Basic for applications (VBA) es el control remoto para Microsoft Excel.
Seguramente se puede usar Excel sin nunca haber usado VBA, sin embargo VBA (el control
remoto) puede hacer más conveniente el uso de Excel y permite tomar ventajas de opciones
que no pueden ser accesadas con los controles comunes de la hoja de trabajo.
Es muy importante señalar que VBA es la versión de Visual Basic que se encuentra instalada
en una aplicación como lo es Microsoft Excel. Una macro VBA no puede correr
independiente de su aplicación servidora. VBA y la versión independiente de Visual Basic
utilizan el mismo lenguaje, y la mayoría de las herramientas de soporte.
¿Cómo se comunica VBA con Excel?
Los primeros lenguajes de macro de las hojas de cálculo mimetizaban la interfaz de usuario.
Por ejemplo, si se tecleaba R (para Rango), N (para Nombre) y C (para Crear) en la interfaz
de usuario, se debería programar RNC en la macro para automatizar el proceso. Este sistema
tenía debilidades inherentes. No sólo lo tecleado en la macro era difícil de leer, sino que no
se adaptaba de modo adecuado a la interfaz de usuario, por ejemplo qué pasaba cuando se
dibujaba un rectángulo con el ratón.
Para resolver esta situación las primeras versiones de Excel tenían un nuevo tipo de macro
que hacían los comandos de la macro independiente de la interfaz de usuario. Por ejemplo en
la versión 4 de Excel, se podía copiar un rango de celdas con al menos tres formas diferentes:
Ctrl+C, dar clic al botón copiar de la barra de herramientas, o dar clic en “Copiar” del menú
Edición. Todas esas secuencias eran traducidas a una sola función de macro, =Copy(). Estas
macros basadas en funciones tenían dos inconvenientes principales: primero, eran muy
específicas para Excel, es decir, el lenguaje no podía ser adaptados a otras aplicaciones.
Segundo, el número de funciones aumentaban con cada versión, y no había manera de
organizar o agrupar las miles de posibilidades.
Programación 2 vvv Proyecto
Excel con VBA incorpora una poderosa manera de automatizar aplicaciones. En este sistema,
VBA actúa como un lenguaje de propósito general que es independiente de la aplicación. De
este modo, cualquiera que tenga conocimientos de programación en Visual Basic puede
fácilmente automatizar Excel, por otra parte si alguien aprende a escribir macros en Excel,
puede muy fácilmente transferir su conocimiento a otros tipos de programación con Visual
Basic.
Aun cuando Excel es la aplicación servidora de VBA, VBA no tiene nada en especial que lo
enganche a Excel, ya que Excel se comunica a VBA por medio de un set de comandos
especiales conocidos como librerías de objetos.
Librería de
Excel VBA
Objetos
Figura 10. 1 Sistema de Comunicación VBA-Excel
VBA no solamente puede controlar Excel, sino también a todas aquellas aplicaciones que
tengan una librería de objetos. Todas las aplicaciones de Microsoft Office cuentan con ellas,
y muchas otras aplicaciones también.
El VBA que viene con Excel no es el único lenguaje que se comunica con la librería de
objetos. Cualquier programa que soporte automatización puede controlar Excel. Se puede
controlar Excel no solamente con el VBA de Excel sino también con un proyecto VBA
almacenado en Microsoft Word, con la versión independiente de Visual Basic, con C++ o el
programa Delphi de la Corporativa Inprise.8
Los Objetos de Excel.
Las librerías de objetos además de poner al alcance de VBA las muchas capacidades de Excel,
hacen algo más importante, que es ponerlas al alcance de los usuarios. Una vez que el usuario
aprende a leer e interpretar una librería de objetos, se pueden descubrir nuevas opciones e
imaginarse como ponerlas a trabajar para alcanzar un objetivo específico. La mejor manera
de aprender como se comunica VBA con Excel es grabar algunas macros sencillas. Sin
embargo, eventualmente el usuario querrá ir más allá de las limitaciones de la grabadora de
macros de Excel.
Debido a que es muy difícil hacer mención de cada una de las opcies que Excel y VBA tienen,
en este trabajo sólo se presentan algunos ejemplos que ayuden a la comprensión de los
mismos, sin embargo para un conocimiento más profundo se recomienda hacer referencia a
los libros de Excel y VBA de Jacobson (2002) y Walkenbach (2002).
8
Jacobson, Reed, “Microsoft Excel 2002: Visual basic for applications step by step”, Microsoft Press,
Washington (2002)
Programación
2
Proyecto
Prof. Ing. José Ramiro PILALUISA Q. M.Sc. Marzo 2019 – Agosto
2019 1