Sei sulla pagina 1di 41

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

ESTUDIOS GENERALES CIENCIAS

INTRODUCCINA LA COMPUTACIN
TERCER LABORATORIO
DESARROLLO DE PROGRAMAS 1

Coordinadores del Laboratorio 2015 1

2015 1

Tabla de Contenido
1. VISUAL BASIC FOR APPLICATIONS - VBA ....................................................................................... 4
2. CREACIN DE UN LIBRO DE EXCEL ................................................................................................. 5
2.1. SIN MACROS.......................................................................................................................................... 5
2.2. CON MACROS ....................................................................................................................................... 5
3. TRABAJANDO CON EL EDITOR DE VISUAL BASIC ....................................................................... 6
3.1. INSERTAR FICHA PROGRAMADOR .......................................................................................................... 6
3.2. EL EDITOR DE VISUAL BASIC .................................................................................................................. 7
3.2.1. Men ........................................................................................................................................... 8
3.2.2. Barra de Herramientas ................................................................................................................. 8
3.2.3. Explorador de Proyectos ................................................................................................................ 9
3.2.4. Cdigo .......................................................................................................................................... 9
3.2.5. Ventana Inmediata ....................................................................................................................... 9
3.2.6. Ventana de Propiedades.............................................................................................................. 10
3.3. LECTURA Y ESCRITURA DE DATOS ........................................................................................................ 10
3.3.1. Lectura de datos desde celdas de Excel ....................................................................................... 10
3.3.2. Escritura de datos desde celdas de Excel ..................................................................................... 10
3.3.3. Forma Simple: ............................................................................................................................ 12
3.3.4. Lectura y escritura desde VBA ..................................................................................................... 12
3.4. OPERACIONES ARITMTICAS EN VBA ................................................................................................... 13
4. CREACIN DE SUBPROGRAMAS ...................................................................................................... 14
4.1. REGLAS PARA NOMBRAR SUBPROGRAMAS ............................................................................................. 14
4.2. COMENTARIOS EN LOS SUBPROGRAMAS ............................................................................................... 15
4.3. CREACIN DE PROCEDIMIENTOS.......................................................................................................... 15
4.3.1. Usando el VBE ............................................................................................................................ 15
4.3.2. Ejecucin de un procedimiento .................................................................................................... 16
4.3.3. Mediante el uso de la grabadora de macros ................................................................................ 16
4.3.4. Ejecucin de una macro .............................................................................................................. 18
4.4. CREACIN DE FUNCIONES .................................................................................................................. 19
4.4.1. Funciones VBA ............................................................................................................................ 20
4.4.2. Funciones de Excel ...................................................................................................................... 21
4.4.3. Funciones personalizadas ............................................................................................................ 21
5. DATOS ....................................................................................................................................................... 26
5.1. CONCEPTO ......................................................................................................................................... 26
6. TIPOS DE DATOS .................................................................................................................................... 26
6.1. TIPOS DE OPERACIONES ..................................................................................................................... 27
6.1.1. Operaciones aritmticas ........................................................................................................... 27
6.1.2. Operaciones lgicas ................................................................................................................. 27
6.1.3. Operaciones de concatenacin ................................................................................................. 27
6.1.4. Operaciones de comparacin ................................................................................................... 28
7. VARIABLES Y CONSTANTES .............................................................................................................. 28
7.1. VARIABLES ........................................................................................................................................ 28
7.1.1. Concepto................................................................................................................................... 28
7.1.2. Reglas para nombrar una variable .......................................................................................... 28
7.1.3. Declaracin de variables ......................................................................................................... 28
7.1.4. Operacin asignacin .............................................................................................................. 29
7.2. CONSTANTES ..................................................................................................................................... 29
7.2.1. Concepto................................................................................................................................... 29
7.2.2. Declaracin de constantes ....................................................................................................... 29
7.2.3. Constantes propias de VBA ...................................................................................................... 30
7.3. MBITO DE LAS VARIABLES Y CONSTANTES ...................................................................................... 31
7.3.1. mbito local ............................................................................................................................. 31

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

7.3.2. Global a nivel mdulo .............................................................................................................. 31


7.4. ERRORES COMUNES EN LA DECLARACIN Y ASIGNACIN DE LAS VARIABLES. ................................... 31
8. EXPRESIONES ......................................................................................................................................... 32
8.1. EXPRESIONES ARITMTICAS............................................................................................................... 32
8.2. EXPRESIONES LGICAS ...................................................................................................................... 32
8.3. CONCATENACIN DE DATOS STRING ................................................................................................. 33
9. SUBPROGRAMAS CON PARMETROS ............................................................................................ 33
9.1. DECLARACIN DE SUBPROGRAMAS ................................................................................................... 33
10. EJERCICIOS DESARROLLADOS ...................................................................................................... 36
10.1. PROBLEMA DEL LPIZ ........................................................................................................................ 36
10.1.1. Anlisis ..................................................................................................................................... 36
10.1.2. Implementacin (Codificacin) ................................................................................................... 36
10.2. CHOQUE DE PARTCULAS .................................................................................................................. 37
10.2.1. Anlisis ..................................................................................................................................... 37
10.2.2. Implementacin (Codificacin) ................................................................................................... 38
10.3. MANTENIMIENTO DE MACETAS (ADAPTADO DE LABORATORIO 4 2012-1) ................................... 38
10.3.1. Anlisis ................................................................................................................................... 38
10.3.2. Codificacin ........................................................................................................................... 39
11. EJERCICIOS PROPUESTOS ............................................................................................................... 40
11.1. VOLUMEN DEL GAS .......................................................................................................................... 40
11.2. MOVIMIENTO PARABLICO .............................................................................................................. 40
11.3. SISTEMA MONETARIO....................................................................................................................... 41
12. BIBLIOGRAFA ..................................................................................................................................... 41
13. ACTUALIZACIN: ............................................................................................................................... 41

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

1. Visual Basic for Applications - VBA


En esta parte del manual daremos una breve explicacin sobre del lenguaje de programacin que se usar en el
curso Visual Basic for Applications (VBA) y en qu forma interacta con Excel. Una vez explicado el lenguaje
de programacin, describiremos el Editor de Visual Basic (VBE), que es el entorno de programacin que usar en
el curso. Adems, aprender cmo crear y ejecutar procedimientos y funciones en Excel.
En el presente manual se toma como convencin el smbolo [ ] para indicar que el contenido dentro de los
corchetes es opcional.
VBA (Visual Basic para Aplicaciones) es un lenguaje de programacin orientado a
desarrollado por Microsoft. Todos los paquetes de Microsoft Office incluyen este lenguaje. Por lo tanto, los
conceptos de programacin VBA que aprender podrn ser usados no slo en Excel sino tambin en Word,
Power Point, Access, entre otros.
No confunda VBA con Visual Basic. Visual Basic es un lenguaje de programacin que le permite crear programas
ejecutables. Aunque VBA y VB tengan mucho en comn, son diferentes.
El uso de VBA en Excel le permitir realizar muchas tareas. Por ejemplo:
Automatizar tareas; si por ejemplo usted siempre tiene que preparar un reporte que manualmente le
demandara mucho tiempo, con ayuda de VBA podra construir un programa que se encargue de
realizarlo.
Personalizar las barras de herramientas de Excel con sus propios botones que ejecuten macros escritas
por usted.
Desarrollar nuevas funciones que puedan ser usadas en las hojas de trabajo.
Crear aplicaciones completas que tengan sus propias ventanas con cajas de dilogo, pantallas de ayuda y
muchas otras funciones.
Para escribir programas utilizando VBA se utiliza el Editor de Visual Basic (Visual Basic Editor VBE). El cdigo VBA
se escribe y se guarda en uno o ms mdulos VBA. Cada mdulo se compone de subprogramas y se guarda
dentro el libro de trabajo Excel.
En VBA existen 2 tipos de subprogramas:
-

Procedimientos: un procedimiento es un conjunto de instrucciones que ejecuta un proceso SIN


DEVOLVER VALORES O DEVOLVIENDO MS DE UN VALOR. Puede ser ejecutado
directamente o puede colocarse como una instruccin dentro de otro procedimiento.
Funciones: una funcin retorna siempre UN NICO VALOR. Puede ser usada en otro procedimiento
o puede ser usada en una frmula en alguna de las celdas de la hoja de trabajo.

Excel proporciona ms de 100 clases de objetos. Algunos de stos son: un libro de trabajo, una hoja de clculo, un
rango de una hoja de clculo, un grfico, una caja de texto, un botn de comandos, entre otros. Los objetos estn
ordenados de manera jerrquica; es decir, que un objeto puede contener a otro objeto. As, por ejemplo, Excel es
un objeto llamado Application y contiene otros objetos, como por ejemplo los workbooks (libros de trabajo); y a su
vez, stos contienen a los objetos Sheets (hojas). A este orden de los objetos se le conoce como modelo de objeto
de Excel.
Para referirnos a un objeto que est contenido en otro debemos especificar la jerarqua. Por ejemplo:
a.

Si deseamos referirnos al libro Libro1, contenido en el objeto Application (Excel), escribiremos:


Application.Workbooks(Libro1.xlsx)

b.

Si quisiramos referirnos a la Hoja Hoja1 del Libro1 escribiremos:


Application.Workbooks(Libro1.xlsx).Sheets(Hoja1)

Sin embargo, la referencia antes indicada es un poco larga de escribir y en muchas ocasiones no ser necesario
indicarla. As, en el segundo ejemplo arriba mencionado, si est trabajando slo con un libro en Excel (Libro1),
podra obviar la referencia a los objetos Application y Workbook reducindose la expresin a: Sheets(Hoja1).

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Asimismo, cada objeto tiene un conjunto de caractersticas propias a las que llamamos propiedades. Por ejemplo,
el objeto Sheets tiene la propiedad name, y mediante esta propiedad una hoja adquiere un nombre. Para cambiar la
propiedad de un objeto debemos referirnos al objeto y luego a la propiedad. Por ejemplo:
Sheets(Hoja1).name = Primera
Adems de las propiedades, todos los objetos disponen de mtodos. Un mtodo es una accin que realiza dicho
objeto. Por ejemplo, el objeto Sheets tiene el mtodo delete que se encarga de eliminar al objeto. As, para eliminar
el objeto Hoja2, escribimos:
Sheets(Hoja2).delete

2. Creacin de un Libro de Excel


De forma predeterminada, los libros de Excel creados en versin Office 2010 se guardan en formato XML, con
nuevas extensiones de nombre de archivo que agregan una "x" o una "m" a las extensiones de nombre de archivo
que ya conoce de versiones anteriores de Excel. Dentro del mbito del curso, nos referiremos a una macro
como el conjunto de instrucciones creadas por el usuario en VBA y que pueden ser ejecutadas dentro de una de
las aplicaciones del paquete Microsoft Office.

2.1. Sin macros


Para guardar un libro de Excel, que no contiene una macro debe realizar los siguientes pasos:
a.
b.
c.
d.

En la Cinta de opciones pulsar la ficha Archivo y hacer clic en la opcin Guardar como.
Seleccionar la ubicacin en la cual se desea guardar el Libro de Excel.
Colocar el nombre del archivo a guardar.
Presionar el botn Guardar.

El archivo grabado tendr la extensin xlsx. La "x" significa un archivo XML que NO TIENE MACROS.
Formato

Extensin

Libro de Excel

.xlsx

Descripcin
Formato de archivo basado en XML predeterminado de Excel 2010 y Excel 2007.
No se pueden almacenar cdigos de macros de Microsoft Visual Basic para
Aplicaciones (VBA) ni hojas de macro de Office Excel 4.0 (.xlm).

2.2. Con macros


Para guardar un libro de Excel que contiene una macro, debe realizar los siguientes pasos:
a.
b.
c.
d.
e.

En la Cinta de opciones pulsar la ficha Archivo y hacer clic en la opcin Guardar como.
Seleccionar la ubicacin en la cual se desea guardar el Libro de Excel.
Colocar el nombre del archivo a guardar.
En el campo Tipo seleccionar la opcin Libro de Excel habilitado para macros.
Presionar el botn Guardar.

El archivo grabado tendr la extensin xlsm. La "m" significa que se trata de un archivo XML que CONTIENE
MACROS.
IMPORTANTE: A partir de esta sesin de laboratorio, todo el trabajo se realizar con libros de Excel
habilitados para macros, por lo cual se recomienda poner especial cuidado en asegurarse de crear y guardar
adecuadamente este tipo de archivos.
Formato
Libro de
(cdigo)

Excel

Extensin
.xlsm

Descripcin
Formato de archivo basado en XML y habilitado para macros de Excel
2010 y Excel 2007. Almacena cdigo de macros de VBA y hojas de
macros de Excel 4.0 (.xlm).

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

3. Trabajando con el Editor de Visual Basic


El Editor de Visual Basic (VBE) es una aplicacin donde usted podr escribir y editar programas que se ejecutarn
en su libro de trabajo Excel. Como primer paso, debe tener activa en la cinta de opciones de Excel la ficha
Programador. Verifique si es as.

3.1. Insertar Ficha Programador


La ficha Programador le permite acceder al Editor de Visual Basic desde donde se trabajar con VBA. Si esta
opcin no aparece en la cinta de opciones debe agregarla realizando los siguientes pasos:
a.

En la Cinta de opciones pulsar la ficha Archivo y hacer clic en la opcin Opciones de Excel.

b.

Luego le aparecer una ventana similar a la siguiente:

c.

En el bloque de Personalizar cinta de opciones seleccionar la opcin Programador para


activar la visualizacin de esta ficha.

d.

Presionar el botn Aceptar.

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

3.2. El Editor de Visual Basic


Para activar el Editor de Visual Basic puede usar cualquiera de las dos opciones:
a. Presionar las teclas [Alt] + [F11] a la vez y aparecer el Editor de Visual Basic.
b. Seleccionar de la ficha Programador. A continuacin ver una barra de herramientas similar a la que se
muestra a continuacin:

c.

En el grupo Cdigo pulsar el botn de Visual Basic


muestra a continuacin:

. Se mostrar una pantalla similar a la que se

d.

Hacer clic en el Men Insertar, y seleccionar Modulo. Esto agregar una seccin en la cual podr
comenzar a crear sus programas. La ventana ser similar a:
1

3
4

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Las partes que la componen son:


1.- Men
2.- Barra de Herramientas
3.- Explorador de Proyectos
4.- Cdigo
5.- Ventana Inmediato
6.- Ventana de Propiedades

3.2.1. Men
Contiene opciones parecidas a los mens de otras aplicaciones. Probablemente las opciones de men que ms
usar son:
Archivo: Donde se encuentran diversas opciones relacionadas al archivo Excel con el que est
trabajando. Tal vez las que usted usar mayormente son guardar libro, cerrar y volver a Excel.
Edicin: Donde se encuentran todas las herramientas necesarias para la edicin del cdigo que vaya a
escribir, como copiar, pegar, cortar, deshacer, buscar, reemplazar, entre otras.
Ver: Le ayudar a visualizar diversas ventanas del entorno. Por ejemplo, Cdigo, Ventana Inmediato,
Ventana Inspeccin, Explorador de Proyectos, Ventana de Propiedades, entre otras. Adems de eso, tiene
la opcin de visualizar las barras de herramientas del entorno y regresar al libro mediante la opcin Excel
(que tiene teclas de atajo [Alt] + [F11])
Insertar: Le ayudar a insertar un procedimiento, un formulario, un mdulo, entre otras opciones.
Formato: Donde se encuentran todas las opciones para darle formato al programa que vaya a escribir.
Por ejemplo, alineacin, espacios, entre otras.
Depuracin: Donde se encuentran todas las opciones que le ayudarn a verificar errores en su
programa. Las opciones que probablemente usar ms son:
o Compilar VBAProject: Para verificar si hay algn error de sintaxis en los procedimientos que
haya escrito.
o Paso a paso por instrucciones: Ejecuta un procedimiento paso a paso; es decir, lo ejecuta
instruccin por instruccin. En caso que dentro del procedimiento se llamara a otro
procedimiento, tambin se ejecuta paso a paso cada una de las instrucciones de este ltimo.
o Paso a paso por procedimientos: De manera similar al anterior, ejecuta un procedimiento paso a
paso. La diferencia est en que si alguna de las instrucciones es un procedimiento, no se ejecutan
cada una las instrucciones que lo compone; por el contrario, se toma al procedimiento llamado
como una nica instruccin.
Ejecutar: La opcin Ejecutar Sub/UserForm (con tecla de atajo [F5]) le permite ejecutar un
procedimiento. En caso quiera parar el procedimiento, puede seleccionar la opcin Restablecer.

3.2.2. Barra de Herramientas


Se encuentra ubicada debajo del men y contiene las opciones del men que suelen ser las ms usadas. A
continuacin se muestra una parte de dicha barra:

Las opciones que se muestran, de izquierda a derecha son:


Ver Microsoft Excel: Opcin del men Ver
Insertar UserForm: Si da clic en la flechita que est a su costado, observar esta opcin le sirve para
insertar un formulario, un mdulo, un mdulo de clase o un procedimiento. Esta opcin corresponde al
men Insertar.
Guardar libro: Una de las opciones del men Archivo.
Cortar: Una de las opciones del men Edicin.
Copiar: Una de las opciones del men Edicin.
Pegar: Una de las opciones del men Edicin.
Buscar: Una de las opciones del men Edicin.
Deshacer: Una de las opciones del men Edicin.
Rehacer: Una de las opciones del men Edicin.
Ejecutar Sub/UserForm: Una de las opciones del men Ejecutar.

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Interrumpir: Una de las opciones del men Ejecutar.


Restablecer: Una de las opciones del men Ejecutar.
Modo de diseo: Una de las opciones del men Ejecutar.
Explorador de proyectos: Una de las opciones del men Ver.
Ventana de propiedades: Una de las opciones del men Ver.
Examinador de Objetos: Una de las opciones del men Ver.
Cuadro de Herramientas: Una de las opciones del men Ver.
Ayuda.

3.2.3. Explorador de Proyectos


Esta ventana muestra un rbol con todos los libros de trabajo actualmente abiertos en
Excel. Si no puede visualizar esta ventana, presione las teclas [Ctrl] + [R] o use la
opcin correspondiente en el men Ver. Para cerrarla, haga clic en el botn que se
encuentran en la esquina superior derecha (X).
Cuando trabaje en el VBE, cada libro de trabajo que se abre es un proyecto. Puede
pensar en un proyecto como una coleccin de objetos agrupados. En la ventana
explorador de proyectos, usted puede expandir un proyecto haciendo clic en el signo
(+) que se encuentra al lado izquierdo del nombre del proyecto. Si el proyecto ya se
encuentra expandido, usted puede contraerlo haciendo clic en el signo (-) que se
encuentra al lado izquierdo del nombre del proyecto.
Al expandir cada proyecto se muestra al menos una carpeta llamada Microsoft Excel Objetos. Al expandir este nodo,
se muestra un tem por cada hoja que contenga el libro (cada hoja se considera un objeto en Excel) adems de un
objeto adicional llamado ThisWorkbook (que representa al libro con el que estamos trabajando). Si el proyecto
tuviera mdulos VBA, el proyecto tendra una carpeta llamada Mdulos. De igual manera, si el proyecto tuviera
formularios, habra una carpeta llamada Formularios. Por ejemplo:
El explorador nos muestra un proyecto correspondiente al libro de Excel llamado Libro1, el cual tiene 3 hojas
llamadas Hoja1, Hoja2 y Hoja3, respectivamente. Adems, nos muestra la carpeta mdulos la cual contiene
el mdulo llamado Mdulo1.
No se preocupe si no ha comprendido bien an el concepto de objeto; este se ir aclarando ms adelante.

3.2.4. Cdigo
En esta ventana se encuentra el cdigo en VBA. Para el caso de los laboratorios que desarrollaremos, esta ventana
siempre debe corresponder a alguno de los mdulos insertados en el proyecto. Para ver el cdigo de un mdulo,
debe hacer doble clic sobre el nombre de dicho mdulo en la ventana Explorador de proyectos. A menos
que usted haya aadido cdigo VBA, la ventana de cdigo estar vaca como se ve en la siguiente pantalla:

3.2.5. Ventana Inmediata


Esta ventana puede o no ser visible. Si no est visible, presione [Ctrl] + [G] o seleccione la opcin correspondiente
en el men Ver.
Esta ventana se usa para ejecutar, de manera directa, sentencias VBA y para depurar su cdigo. Esta ventana suele
ser poco utilizada por las personas que recin empiezan a programar en VBA.

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

3.2.6. Ventana de Propiedades


Una propiedad es una caracterstica de un objeto, tal como el color o el ttulo del objeto. Se configura la
propiedad para especificar las caractersticas o comportamiento de un objeto.
Puede utilizar la ventana de propiedades para configurar las propiedades de un objeto en un tiempo de diseo.
Podemos acceder a la ventana de propiedades realizando cualquiera de las siguientes acciones:
a.
b.
c.

Seleccionar el botn Ventana de Propiedades


de la barra de herramientas Estndar.
Seleccionar la opcin Ventana de Propiedades en el men Ver.
Presionar la tecla [F4].

3.3. Lectura y escritura de datos


Durante el desarrollo del curso, la lectura y escritura de datos se lleva a cabo mediante la interaccin de los
subprogramas de VBE con los valores que se encuentran dentro de una celda o rango de celdas de un libro Excel.
En Excel, para acceder a los datos de una celda particular se debe recordar un poco la jerarqua de objetos que lo
componen: un libro de Excel (workbook) contiene diversas hojas de trabajo (worksheets) y stas a su vez contienen
las celdas con distintos valores. Por lo tanto, ser a travs de propiedades de las hojas de trabajo que se podrn
manipular los datos de las celdas.
Existen 2 propiedades que nos permiten acceder a estos datos: Range y Cells, y son las que usarn mayormente en
el desarrollo del curso. Las detallamos a continuacin:

3.3.1. Lectura de datos desde celdas de Excel


Usando la propiedad Range:
Para leer el valor de un objeto celda Excel por medio de la propiedad Range, slo debemos colocar:
valor_a_guardar = Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Range(CF)
Donde, valor_a_guardar es la variable en la cual se almacenar el valor de la celda correspondiente a la columna
C, fila F de la hoja Nombre_de_hoja del libro Nombre_de_libro. Por ejemplo:
dato=Workbooks(Libro1). Worksheets(Hoja de datos). Range(A1)
Guardar en la variable dato el valor contenido en la celda A1 de la hoja de trabajo Hoja de datos del libro
Libro1.
Usando la propiedad Cells:
Para leer el valor de un objeto celda Excel por medio de la propiedad Cells, slo debemos colocar:
valor_a_guardar = Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Cells(F,C)
Donde, valor_a_guardar es la variable en la cual se almacenar el valor de la celda correspondiente a la fila F, y
al ndice de columna C de la hoja Nombre_de_hoja del libro Nombre_de_libro. Para colocar de manera
adecuada el ndice de cada columna se debe tener en cuenta que a la columna A por ser primera en orden le
corresponde el ndice 1, a la columna B le corresponde el ndice 2, y as sucesivamente. De este modo, para el
ejemplo anterior se tendra:
dato=Workbooks(Libro1). Worksheets(Hoja de datos). Cells(1,1)
En este caso, debe notar que el nmero 1 se coloca pues es el ndice que le corresponde a la columna A.

3.3.2. Escritura de datos desde celdas de Excel


Usando la propiedad Range:
Si quisiramos escribir o modificar el valor de un objeto celda, debemos colocar:

10

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Range(CF) = valor_a_otorgar
Donde valor_a_otorgar es el valor que se escribir en la celda correspondiente a la columna C, fila F de la hoja
Nombre_de_hoja del libro Nombre_de_libro. Por ejemplo:
Workbooks(Libro1). Worksheets(Hoja de datos). Range(A1)=dato
Escribir en la celda A1 de la hoja de trabajo Hoja de datos del libro Libro1 el valor que tenga la variable dato.
Usando la propiedad Cells:
Si quisiramos modificar el valor de un objeto celda, debemos colocar:
Workbooks(Nombre_de_libro).Worksheets(Nombre_de_hoja).Cells(F,C) = valor_a_otorgar
Donde valor_a_otorgar es el valor que se escribir en la celda correspondiente a la fila F, y al ndice de columna
C de la hoja Nombre_de_hoja del libro Nombre_de_libro. Por ejemplo para el ejemplo anterior se tendra:
Workbooks(Libro1). Worksheets(Hoja de datos). Cells(1,1)=dato
Ejemplo:
Deseamos escribir un programa que lea los datos almacenados en las celdas A1, B1 y C1, duplique el valor de
dichos datos y los escriba en las celdas A2, B2 y C2.
a.
b.
c.
d.

Cree un nuevo libro Excel, tal como se indic en la seccin anterior


Ingrese al Editor de Visual Basic
Inserte un nuevo Mdulo
Copie el siguiente cdigo:

e.

Regrese a la primera hoja del libro en el que est trabajando y coloque datos en las celdas A1, B1 y C1:

11

INF117 Introduccin a la Computacin

f.

Desarrollo de Programas 1

Ejecute dicho procedimiento, en la Cinta de opciones, ficha


Programador seleccione la opcin Macro. A continuacin, se
listarn las macros disponibles y seleccione el procedimiento que
queremos ejecutar (duplica_valores). Ver que se llenarn las
celdas A2, B2 y C2:

3.3.3. Forma Simple:


Si trabajamos con un solo libro y en una sola hoja podremos reemplazar la siguiente instruccin:
valor1 = Workbooks("Libro1.xlsx").Worksheets(1).Range("A1")

por:

valor1 = Sheets(Hoja1).Range("A1")
o
valor1 = Hoja1. Range(A1)
Mi procedimiento ser:

IMPORTANTE: En la mayora de los ejercicios del curso, trabajaremos de esta forma. Es decir, los datos de
entrada se leern desde las celdas y los datos de salida se escribirn en las celdas del libro de trabajo actual.

3.3.4. Lectura y escritura desde VBA


Adems de los mtodos indicados en la seccin anterior, se pueden utilizar cajas de dilogo para solicitar al
usuario que ingrese un determinado valor o para mostrarle algn resultado.

Inputbox:
Muestra una caja de dilogo en la que se solicita el ingreso de un dato. Se utiliza cuando se quiere leer un dato
que ser ingresado por teclado. Su sintaxis es:
dato_ingresado = InputBox ("Mensaje que aparecer en la ventana en la se solicitan los datos","Ttulo de
la ventana en la que solicitar los datos")
Devuelve el valor que haya sido ingresado por teclado, en la variable dato_ingresado.

12

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Por ejemplo, si ejecutramos: Edad = InputBox ("Ingrese su edad","Solicitud de datos")


Se mostrar la siguiente ventana:

Si nosotros ingresramos 17, por ejemplo, y diramos clic en aceptar. El dato ingresado (17) ser almacenado
en Edad.

MsgBox:
Muestra una caja de dilogo que contiene un mensaje y botones. Su funcin principal es la de mostrar alguna
informacin por pantalla. La sintaxis de esta sentencia es:
Call MsgBox ("La sentencia que quiere que aparezca en la ventana", ,"Ttulo de la ventana")
Por ejemplo si ejecutramos: Call MsgBox("5", , "Su nmero de la suerte es:")
Se mostrar la siguiente ventana:

3.4. Operaciones aritmticas en VBA


En VBA tambin se pueden realizar diversas operaciones aritmticas, que van desde las ms simples hasta las ms
complejas. A continuacin, se enumeran las operaciones que se pueden realizar y se indica el operador que le
corresponde y su prioridad respecto al resto de operadores.
Operacin

Operador

Precedencia o Prioridad

Potenciacin

Negacin

Multiplicacin

Divisin

Divisin Entera (devuelve el cociente de una divisin)

mod

Adicin

Substraccin

Mdulo o Residuo de Divisin Entera

Los operadores se aplican a expresiones matemticas siempre de izquierda a derecha, resolviendo, primero, la
operacin con mayor prioridad, para luego seguir con las dems. Si una expresin a evaluar tuviera una
subexpresin entre parntesis, primero se opera dicha subexpresin y luego se aplica la prioridad de los
operadores.

13

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

A continuacin se evaluarn algunas expresiones aplicando la prioridad de operadores:


1) R = 5^2 *4 + -50/2 -4
De acuerdo con la prioridad de operadores, en esta expresin primero deber operarse la potencia, es decir,
5^2=25, luego se aplicar la multiplicacin de este resultado con 4, 25*4=100, despus se resuelve la divisin 50/2=-25. De este modo queda la expresin: R = 100 + -25 -4, y como los operadores de suma y resta tienen la
misma precedencia se empieza a operar de izquierda derecha, primero la suma y luego la resta. Quedando como
resultado R = 71
2) R = 20 / 3 17 Mod 4
En esta expresin se debe operar primero la divisin, quedando la expresin R = 6.66666667 17 mod 4
Como el residuo tiene mayor prioridad que la resta, se procede a operar el residuo de dividir 17 entre 4, el cual
da como resultado 1. De esta forma queda la expresin: R = 6.66666667 1 y se tiene como resultado final
R=5.66666667
3) R = 5 * (5 1 + 8)
En esta expresin debe operarse primero lo que est dentro de los parntesis (respetando la prioridad de los
operadores) quedando la expresin R = 5 *12 lo que da como resultado R = 60

4. Creacin de Subprogramas
Tal como se mencion previamente, en VBA se pueden crear 2 tipos de subprogramas:

Procedimiento: Es un grupo de instrucciones VBA que realiza una accin (o acciones) con Excel y
devuelve CERO o MS DE UN VALOR.
Funcin: Es un grupo de instrucciones VBA que realizan un clculo y devuelven un NICO VALOR.

En VBA, se hace referencia a los procedimientos mediante la palabra reservada Sub y a las funciones mediante la
palabra reservada Function.
Las macros son especficamente procedimientos (Sub). Piense en un procedimiento como un comando: al
momento de ejecutarlo algo sucede.
Una funcin es tambin un subprograma, pero es distinto de un procedimiento. Usted ya est familiarizado con el
concepto funcin. Excel incluye muchas funciones propias que usted puede usar como SUMA, POTENCIA,
BUSCARV, entre otras. Estas funciones son usadas en frmulas o expresiones, y cada funcin tiene uno o ms
argumentos (aunque algunas carecen de argumentos). La funcin realiza algunos clculos que usted no observa y le
devuelve un NICO valor. Lo mismo sucede con las funciones que usted desarrolla con VBA.
Mayormente, utilizaremos el Editor de Visual Basic para crear los subprogramas (procedimientos y funciones). Sin
embargo, algunos procedimientos llamados Macros se pueden crear usando la Grabadora de Macros del Excel.
Ms adelante se explicar:
Cmo crear procedimientos
o Mediante la grabadora de macros
o Mediante el uso del VBE
Cmo crear funciones definidas por el usuario. Antes, se har una revisin de las funciones estndar de
VBA y de las funciones de Excel.

4.1. Reglas para nombrar subprogramas


Para colocar nombre a los subprogramas en VBA (Sub o Function) debe seguir las siguientes reglas:

Puede usar letras, nmeros, y algunos caracteres puntuales (_ por ejemplo), pero el primer carcter
debe ser una letra.
No puede usar espacios en blanco o comas.
No puede usar ninguno de los siguientes caracteres: #, $, %, &, @, ^,*, !, espacio en blanco.
Si va a escribir una funcin que luego usar en una frmula, asegrese que el nombre no se parezca a una
direccin de celda o rango (AC12 por ejemplo).

14

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

El nombre de un subprograma debera describir, en cierta manera, el propsito del subprograma.


El nombre de un subprograma debe ser nico. No pueden existir 2 subprogramas del mismo tipo Sub o
Function con el mismo nombre.

4.2. Comentarios en los subprogramas


El uso de los comentarios dentro de los subprogramas nos ayuda a colocar algn texto que sirva como aclaracin
o informacin adicional, pero que no forma parte del cdigo; es decir, Excel no ejecutar dicho texto. Para ello
debemos colocar (comilla simple) al inicio de la lnea. Fjese que el texto aparecer en color verde.

4.3. Creacin de procedimientos


4.3.1. Usando el VBE
Para crear un procedimiento, deber aadir un mdulo VBA. Para ello:
Ir a la ventana Explorador de Proyecto y seleccionar el proyecto en el que desea agregar el
mdulo. Por lo general, usted slo trabajar con un solo libro Excel; por tanto, slo se le mostrar un
proyecto cuyo nombre es igual al libro de trabajo Excel en el que est trabajando.
Hacer clic derecho, seleccionar Insertar/Mdulo. Tambin puede usar la opcin Mdulo del men
Insertar.
En caso que desee borrar un mdulo, deber:
Ir a la ventana Explorador de Proyecto y seleccionar el mdulo que desea eliminar.
Hacer clic derecho, Quitar Mdulo X. Tambin puede usar la opcin Quitar Mdulo X del men
Archivo.
Luego, deber escribir el procedimiento en la ventana Cdigo que se despliega al lado derecho de la pantalla.
Recuerde, adems, que la sintaxis de un procedimiento es la siguiente:
Sub Nombre ([lista de argumentos])
[instrucciones]
End Sub
Lo primero que deber recordar es que el nombre del procedimiento sigue las mismas reglas que se especificaron
en el apartado 5.1 Reglas para nombrar subprogramas.
Adems, una lnea de cdigo o instruccin VBA puede ser tan larga como usted desee; sin embargo, tal vez quiera
usar el carcter de continuacin de lnea para romper lneas de cdigo muy largas. Para continuar una instruccin
de una lnea a otra, al final de la primera lnea deber dejar un espacio y colocar el smbolo raya abajo ( _ ). Luego,
contine la oracin en el siguiente rengln. Por ejemplo:

Range("A1:A13").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Continuando con el mdulo que habamos creado, agregaremos a este mdulo un procedimiento que no tiene
parmetros. En la ventana de cdigo correspondiente al mdulo 1 escribiremos Sub Bienvenida( ) y presionamos
la tecla [Enter]. Veremos que automticamente se genera la lnea End Sub.
Dentro del procedimiento escribiremos la o las sentencias que queremos ejecutar, por ejemplo:
Range(A2)= "Bienvenido a Excel !!!"

15

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

4.3.2. Ejecucin de un procedimiento


Luego de escribir el procedimiento, este se debe ejecutar. Hay varias formas de realizarlo:
a.
b.

Desde VBE, ubicarse en el cdigo del procedimiento que desea ejecutar y presionar [F5] o el botn
de la barra de herramientas (tambin puede seleccionar la opcin Ejecutar Sub/UserForm del men
Ejecutar).
Cuando el procedimiento no tiene parmetros, puede ejecutarlo de la misma manera en que ejecutara
una macro (ver apartado Ejecucin de una macro)

4.3.3. Mediante el uso de la grabadora de macros


El trmino Macro proviene del vocablo griego makros, que significa grande. Una macro consiste en una serie de
comandos y funciones que se almacenan automticamente en un mdulo de VBA.
a.
b.
c.

En la Cinta de opciones, pulsar la ficha Programador y en el grupo Cdigo hacer clic en la opcin
Grabar macro.
Esto activar el cuadro de dilogo Grabar Macro, donde deber ingresar un nombre a la macro y
elegir el mtodo abreviado para ejecutarla (qu tecla, adems de la tecla [Ctrl], deber presionarse para
activar (ejecutar) la macro).
Al dar clic en Aceptar se cierra el cuadro de dilogo y se empieza a grabar la Macro. A partir de este
instante Excel monitorea todo lo que usted haga y lo convierte a cdigo VBA. Note que en la cinta de
opciones aparece un nuevo botn en lugar del de Grabar macro:

d.
e.

Para detener la grabacin deber hacer clic en el botn Detener grabacin.


Luego, deber ingresar al editor de Visual Basic. En la ventana de propiedades deber desplegar la carpeta
Mdulos y observar que hay un mdulo llamado Mdulo1:

f.

Al hacer doble clic sobre Mdulo1 aparecer al lado derecho una pantalla similar a la siguiente:

16

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

All podr observar el cdigo que se gener al grabar las macros. Note que algunos renglones tienen palabras
escritas en verde y comienzan con una comilla simple. Se trata de comentarios. Cuando se graba una macro, se
comenta el nombre de la macro, en qu fecha se grab y la persona que lo grab.

Ejercicios
a.
b.
a.

b.

Cree la macro Macro1 (con mtodo abreviado, CTRL-w) que escriba en la celda A1 la palabra
Universidad, que escriba en la celda A2 el nmero 2010 y que en la celda A3 coloque una frmula que le
sume 1 al valor de la celda A2.
Cree la macro Macro2 (con mtodo abreviado CTRL-b) que seleccione las celdas A1:A3 y borre su
contenido.
Solucin de la Macro 1
En la Hoja1, en la Cinta de opciones pulsar la ficha Programador y en el grupo Cdigo hacer clic en la
opcin Grabar macro.
Asigne el nombre Macro1, [w] como tecla de mtodo abreviado y pulse en botn Aceptar.
Dirjase a la celda A1, escriba UNIVERSIDAD, y presione [Enter]
En la celda A2, escriba 2010, y presione [Enter]
En la celda A3, escriba la frmula =A2+1, y presione [Enter]
Seleccione el botn Detener grabacin [ ] de la ficha Programacin para culminar con la grabacin.

Solucin de la Macro2
En la Cinta de opciones pulsar la ficha Programador y en el grupo Cdigo hacer clic en la opcin
Grabar macro.
Asigne el nombre Macro2, [b] como tecla de mtodo abreviado y pulse en el botn Aceptar.
Seleccione con el ratn el bloque de celdas A1:A3 y presione el botn [Supr] del teclado.
Seleccione el botn Detener grabacin [ ] de la ficha Programacin para culminar con la grabacin

c.

Ejecutar alternativamente la Macro1 y la Macro2, con las teclas [Ctrl] + [W,] y [Ctrl] + B.

A continuacin analizaremos el cdigo generado automticamente para las macros Macro1 y Macro2.

Vaya al Editor de Visual Basic y en la ventana Proyecto despliegue la carpeta Mdulos, d doble clic en
Mdulo1.
Observar que para la macro Macro1 se ha generado el siguiente cdigo:
Sub Macro1()
' Macro1 Macro
' Macro grabada el 21/04/2010
Range("A1").Select
ActiveCell.FormulaR1C1 = "Universidad"
Range("A2").Select
ActiveCell.FormulaR1C1 = "2010"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
Range("A4").Select
End Sub

Excel ejecuta cada una de las instrucciones en el orden en el que estn escritas:

17

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

La primera instruccin, VBA identifica la macro como un procedimiento (Sub) y le da un nombre (en este
caso, Macro1). Recuerde que al momento de grabar la macro usted decide su nombre.
Las siguientes dos instrucciones estn precedidas de una comilla simple (), indicando que se trata de
comentarios. Los comentarios se incluyen para dar informacin adicional a la persona que escribe el
programa; Excel no ejecuta los comentarios.
La siguiente instruccin, Range(A1).Select, le indica a Excel que debe seleccionar la celda A1. Como
no se hace referencia a la hoja de la que desea seleccionar la celda, Excel asumir que se trata de la hoja
que est activa (en nuestro caso, la Hoja1).
La siguiente instruccin, ActiveCell.FormulaR1C1 = "Universidad", le indica a Excel que debe colocar en la
celda activa la palabra Universidad.
Las dos siguientes sentencias son semejantes a las explicadas anteriormente.
Luego de la instruccin en la que se indica seleccionar la celda A3, se encuentra la instruccin
ActiveCell.FormulaR1C1="=R[-1]C+1", que le indica a Excel que coja el valor de la celda correspondiente
a la fila anterior y a la misma columna respecto a la celda activa ((R[-1]C) y le agregue 1 (+1).
Por ltimo, se selecciona la celda A4.

Respecto a la macro Macro2, observamos el siguiente cdigo:


Sub Macro2()
' Macro2 Macro
' Macro grabada el 21/04/2007
Range("A1:A3").Select
Selection.ClearContents
End Sub

Al igual que en el ejemplo anterior, la primera instruccin identifica la macro como un procedimiento
(Sub) de nombre Macro2.
Las siguientes dos instrucciones son comentarios.
La siguiente instruccin, Range("A1:A3").Select, le indica a Excel que debe seleccionar el rango A1:A3; es,
decir que seleccionar las celdas comprendidas en ese rango (A1, A2, A3).
La siguiente instruccin, Selection.ClearContents, le indica a Excel que debe borrar el contenido de la
seleccin actual (la que se indic en la instruccin anterior, A1:A3)

Se pueden usar las Macros para tareas mucho ms complejas, inclusive para elegir opciones del men de Excel. Por
ejemplo, se puede crear una macro que genere un grfico o una que abra un archivo o una que realice clculos
complicados, entre otras.

4.3.4. Ejecucin de una macro


Existen varias formas de ejecutar una macro dentro de Excel:
a.
b.
c.

Usando la teclas de mtodo abreviado asignadas en el momento de crear la macro. En nuestro ejemplo,
[Ctrl] + [W] y [Ctrl] + [B], respectivamente.
Dentro de VBE, ubicndose en el procedimiento que desea ejecutar, por ejemplo Macro2, y presionando
.
Tambin es posible llamar al procedimiento desde un botn que usted podra dibujar en la hoja de clculo
de Excel. Para ello, deber ubicarse en el grupo Controles de la ficha Programador:

Seleccionar el cono Insertar (resaltado en el dibujo anterior), luego de lo cual se desplegar un cuadro de
controles como el mostrado:

18

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Seleccionar el primer cono de los controles de formulario, el cual le permite dibujar un botn. Luego, ubique el
cursor del mouse en alguna de parte de la hoja (ver que el cursor tiene forma de cruz) y haga clic sobre ella.
Automticamente, se dibujar el botn y, a continuacin, aparecer una lista con las macros disponibles y Excel le
preguntar a qu macro desea asociar dicho botn. Supongamos que se quisiera asociar a la Macro1 (antes
desarrollada). Finalmente, en la hoja tendr algo similar a:

En adelante, cada vez que se presione el botn Botn 1, se ejecutar la macro Macro1.
d.

En la misma hoja de clculo, en la ficha Programador de la cinta de opciones se puede elegir la opcin
Macros, tras lo cual aparecer una ventana con la lista de todas las macros disponibles:

Lo nico que debe hacer es seleccionar la macro que desea ejecutar y presionar Ejecutar.

4.4. Creacin de Funciones


Una funcin, bsicamente, realiza clculos y devuelve un NICO valor. La funcin SUMA devuelve la suma de un
rango de valores. Lo mismo sucede con las funciones usadas en VBA: cada funcin realiza lo necesario para
devolver un nico valor.
Las funciones que se pueden usar en VBA son:
Funciones proporcionadas por VBA.
Funciones proporcionadas por Excel (ejemplo: RAIZ, SUMA, MAX, SI, PROMEDIO, entre otras)
Funciones personalizadas: funciones que usted escribir en VBA mediante el uso del VBE.
Antes de la pasar a revisar la creacin de funciones personalizadas, debemos revisar las funciones estndar de VBA,
su relacin con las de Excel y su aplicacin.

19

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

4.4.1. Funciones VBA


VBA provee numerosas funciones; algunas de stas tienen argumentos y otras no. En la siguiente tabla se muestran
algunas funciones que usaremos en la tercera sesin del laboratorio.
Funciones VBA ms usadas
Funcin

Sintaxis

Accin

Abs

=Abs(n)

Devuelve el valor absoluto de un nmero

Atn

=Atn(n)

Devuelve el arco tangente de un nmero

Cos

=Cos(n)

Devuelve el coseno de un nmero

Exp

=Exp(n)

Fix *

=Fix(n)

Devuelve el resultado de elevar e (la base de los


logaritmos naturales) a un nmero.
Devuelve la parte entera de un nmero

Hex

=Hex(n)

Convierte decimal a hexadecimal

Int *

=Int(n)

Devuelve la parte entera de un nmero

Log

=Log(n)

Devuelve el logaritmo natural de un nmero

Oct

=Oct(n)

Convierte un nmero decimal a octal.

Rnd

=Rnd

Devuelve un nmero cualquiera entre 0 y 1

Round

=Round(n,numDecimales)

Sgn

=Sgn(n)

Sin

=Sin(n)

Redondea un nmero a cierta cantidad de


decimales.
Devuelve un 1 si el nmero es positivo y -1 si el
nmero es negativo. Si el nmero es cero,
devuelve cero.
Devuelve el seno de un nmero

Sqr

=Sqr(n)

Devuelve la raz cuadrada de un nmero

Tan

=Tan(n)

Devuelve la tangente de un nmero

Valor de Pi

=Application.Pi()

Devuelve el valor de pi, 3.1416

* La diferencia entre Int y Fix es que, si el nmero es negativo, Int devuelve el primer entero negativo menor o
igual a nmero, mientras que Fix devuelve el primer entero negativo mayor o igual a nmero.
Por ejemplo, Int convierte -8.4 en -9 y Fix convierte -8.4 a -8.
A pesar de que VBA ofrece una gran cantidad de funciones, en algunas ocasiones tal vez no encuentre lo que
necesita. Afortunadamente, usted tambin puede usar la mayora de funciones que ofrece Excel. Las nicas que no
puede usar son aquellas que tienen una funcin equivalente en VBA.
4.4.1.1. Algunas transformaciones tiles

Funciones trigonomtricas:
tan(x) = sen(x)/cos(x)
cot(x) = cos(x)/sen(x)

sec(x) = 1/cos(x)
csc(x) = 1/sen(x)

Funciones trigonomtricas inversas:


arcsen(x) = arctan (
arccos(x) = arctan (

x
1 x

1 x2
)
x

arcsec(x) = arctan

( x 2 1)

arccsc(x) = arctan (

1
x2 1

arccot(x) = arctan (1/x)

20

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

4.4.2. Funciones de Excel


VBA hace que las funciones de Excel estn disponibles a travs del objeto WorksheetFunction, contenido en el
objeto Application (recuerde que el objeto Application es el mismo Excel). Por lo tanto, la sintaxis para usar una
funcin proporcionada por Excel es:
Application.WorksheetFunction.FUNCION(ARGUMENTOS_DE_LA_FUNCION)
Para estos casos, el nombre de la funcin estar en ingls; es decir, en lugar de colocar SUMA, deber colocar
SUM. Por ejemplo:
a = Application.WorksheetFunction.Sum(3, 14)

O simplemente a = Application.Sum(3,14)

En el siguiente ejemplo se muestra cmo un procedimiento utiliza funciones VBA y funciones Excel:
Sub Area_circulo( )
r = Range(A1)
p = Application.Pi( )
a=p*r^2
a = Round(a, 2)

Se lee el radio de la celda A1


'En este caso Pi( ) es una funcin de Excel
'Round( ) es una funcin VBA. Tambin se pudo obviar la
'instruccin anterior y colocar de frente la expresin:
a = Round( p * r ^ 2 , 2)

Range(B1)="El rea del crculo es = " & a


End Sub

4.4.3. Funciones personalizadas


Al igual que los procedimientos, usted puede escribir sus propias funciones. La nica diferencia que siempre debe
tener en cuenta es que stas SIEMPRE DEVUELVE UN NICO VALOR.
Adems, si usted piensa usar una funcin particular dentro de alguna celda de las hojas del libro en el que est
trabajando, digamos como parte de alguna frmula, debe definir la funcin dentro del proyecto correspondiente a
dicho libro.
La sintaxis de una funcin es similar a la de un procedimiento:
Function Nombre_funcion([lista de argumentos separados por comas])
[instrucciones]
Nombre_funcion = valor
End Function
El nombre de la funcin debe seguir las mismas reglas que las que se especificaron en la NOTA del apartado 6.1.1
Creacin de Procedimientos Mediante el Uso de Macros. La instruccin ms importante en una funcin es la
ltima sentencia, en la que se devuelve el valor que calcula la funcin. Esta instruccin nunca debe faltar y siempre
debe ser la ltima instruccin de la funcin.
Revisemos algunos ejercicios, pero antes recordemos que en el curso podremos usar nuestras funciones de dos
formas:
- Forma 1: Invocando directamente la funcin en una celda en Excel.
- Forma 2: Desde un procedimiento en VBA.
Ejemplo 1: Multiplicando nmeros
A continuacin se muestra un ejemplo de funcin personalizada que multiplica dos nmeros. En el VBE
escribiremos:

21

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Esta funcin recibe dos argumentos, num1 y num2, que son los datos que se necesitan para hallar el resultado de la
funcin. Luego, usted podra usar esta funcin en el libro de trabajo usndolo como parte de la frmula de una
celda. Por ejemplo:

Ejemplo 2: Calculando el nmero de dgitos


Tambin podramos crear una funcin que determine el nmero de dgitos de un nmero entero diferente de
cero. Para ello, podramos aplicar el siguiente algoritmo:
- Hallaremos el logaritmo del nmero en base 10.
- Luego, extraeremos la parte entera del resultado antes obtenido.
- Finalmente, sumaremos 1 al resultado anterior.
As por ejemplo, si el nmero fuera 999, aplicando el algoritmo tenemos:
- log(999), cuyo resultado es 2.99957
- Luego, extraemos la parte entera de 2.99957, es decir 2.
- Finalmente, sumamos 1 al resultado anterior: 2 + 1, lo que da como resultado 3. Que es, efectivamente, el
nmero de dgitos que tiene 999.
Para implementar la funcin, escribiremos en el mdulo:

Usaremos esta funcin desde el libro Excel colocndola como parte de la frmula en la celda D1:

22

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Ejemplo 3: Calculando el rea de un crculo


Otra funcin personalizada podra ser una que se encargue de calcular el rea de un crculo teniendo como
argumento el radio.

Cree en su hoja de trabajo en Excel una tabla como la que se muestra a continuacin:

Luego siga las instrucciones a continuacin para usar la funcin creada en el libro Excel con ayuda del asistente
para insertar funciones:
a.

Ubquese en la celda C3 y seleccione la opcin Insertar Funcin desde la Ficha Frmulas, lo cual le mostrar
una ventana como la siguiente:

b.

Aqu seleccione la categora Definidas por el usuario, y enseguida se mostrarn todas las funciones que
fueron creadas desde el VBE.
Seleccione la funcin que desee aplicar. para el ejemplo ser Area_circular, y presionar Aceptar. Se
mostrar una ventana para completar los datos que requiere la funcin:

c.

d.

En el caso de nuestra funcin, ingrese el valor del radio (por ejemplo: 2) o seleccione la celda desde donde
nuestra funcin deber coger el valor (en nuestro caso A3). Presione Aceptar.

23

INF117 Introduccin a la Computacin

e.

Desarrollo de Programas 1

El resultado obtenido ser:

Ejemplo 3: Evaluando expresiones


Desarrollaremos un subprograma para calcular el valor de M, utilizaremos los datos de las celdas de Excel, como
se muestra:

Se sabe que los valores de x, phi, b y a sern colocados en las celdas B4, C4, D4 y E4, respectivamente, y que el
resultado deber ser colocado en F4.
Para resolver esta expresin se podra crear una funcin adicional para hallar la arcosecante y luego hacer una
funcin que halle M. De la siguiente manera:

Luego, se podra crear un procedimiento que se encargue de:

Leer los datos de las celdas B4, C4, D4 y E4


Calcular M usando la funcin hallar_M
Escribir el resultado en la celda F4

Entonces tendra el siguiente cdigo:

24

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Finalmente, puede colocar un botn que ejecute el procedimiento Imprimir_formula. Para ello, vaya al grupo
Controles de la ficha Programador en la cinta de opciones:

Seleccione el cono Insertar (resaltado en el dibujo anterior), y se desplegar un cuadro de controles como el
mostrado:

Seleccione el primer cono de los controles de formulario, luego ubique el cursor del ratn en alguna de parte de
la hoja. Aparecer la siguiente ventana:

Seleccione el procedimiento Imprimir_formula y presione Aceptar.


De esta manera, se ha relacionado (enlazado) el botn al procedimiento y cada vez que presionemos dicho botn
se ejecutar el procedimiento Imprimir_formula.
Finalmente, puede cambiar el texto que aparece en el botn. Para ello, deber hacer clic derecho en el botn y
seleccionar la opcin Modificar Texto. Con la tecla suprimir borre el contenido actual y luego escriba Calcular M y
d clic en cualquier parte de la hoja. Tendr algo similar a la siguiente pantalla:

25

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Para dar un acabado final a la presentacin, haga clic derecho al botn para seleccionarlo y luego haga clic en
alguna parte del borde del botn y, sin soltar el ratn, desplace el botn hasta donde desee que aparezca. La
pantalla final ser similar a la siguiente figura:

5. Datos
El propsito principal de VBA es manipular y transformar datos, lo que son almacenados en estructuras llamadas
variables y constantes. Las variables pueden contener los datos representados por un tipo de dato establecido.
Algunos datos pueden residir en objetos tales como rangos de hojas de clculo.
En esta seccin se har un pequea introduccin al concepto de Dato y en la siguiente se tratarn las Variables y
Constantes.

5.1. Concepto
Un dato es un nmero, una letra, una fecha, etc. que la computadora procesa para transformarlo en informacin
significativa. Algunos ejemplos de datos son:

La direccin de la Universidad
El precio del men en la cafetera
Eres Mayor de Edad?
Tienes la boleta sin pagar?
IGV
Tipo de cambio del dlar

6. Tipos de datos
Cada dato posee un tipo especfico. Cuando hablamos de tipos de datos nos referimos a la manera en la que se
almacenan los datos en la memoria de la computadora. Por ejemplo: nmeros enteros, nmeros reales, texto, etc.
VBA puede darse cuenta, automticamente, del tipo de dato a almacenar, pero esto implica una demora en el
tiempo de ejecucin de su programa y un uso ineficiente de la memoria. Tal vez esto no sea significativo para
aplicaciones pequeas, pero s para las grandes y complejas.
Algunos de los tipos de dato ms comunes en VBA son:

26

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Bytes que ocupa en


Valor Mnimo
memoria

Tipo de dato
Lgicos
Boolean
Numricos
Byte (naturales)
Integer (enteros)
Long (entero largo)

Valor Mximo

Admite los valores: True o False

1
2
4

0
-32,768
-2,147,483,648

255
32,767
2,147,483,647

Single (real, precisin simple)

Double (real, precisin doble)

-3.402823E38 (*)
1.401298E-45 (*)
-1.79769313486231E308
4.94065645841247E-324

-1.401298E-45
(*)
3.402823E38 (*)
-4.94065645841247E-324
1.79769313486232E308

Nota: Los rangos estn escritos en notacin cientfica


Texto.
String (longitud fija)
1 byte por caracter Almacena un texto de longitud fija
1 hasta aproximadamente 65,400
String (longitud variable)
1 byte por caracter Almacena un texto de longitud variable.
0 hasta aproximadamente 2 billones
Otros
Date
8
1/1/100 al 31/12/9999
Object
4
Cualquier referencia a un Objeto definido.
Variant
Variable
Cualquier tipo de dato.

6.1. Tipos de operaciones


En VBA, segn el tipo de dato que se tenga, se pueden realizar operaciones aritmticas, lgicas y de comparacin.
Tipo de
Operacin
Aritmtica
Lgica
Concatenacin

Tipos de Dato utilizados


Byte, Integer, Long, Single, Double
Boolean
String

6.1.1. Operaciones aritmticas


Operador
+
*
\
/
^
Mod

Operacin
Adicin
Substraccin
Multiplicacin
Obtener la parte entera de una divisin
Divisin
Potencia
Obtener el residuo de una divisin

Ejemplo
18 + 7 = 25
18 - 7 = 11
18 * 7 = 126
18 \ 7 = 2
18 / 7 = 2.571429
5^2
= 25
18 mod 7= 4

6.1.2. Operaciones lgicas


Operador
And
Or
Not

Operacin
Y (Conjuncin)
O (Disyuncin)
No (Negacin)

Ejemplo
(5 < 2) and (5 < 2) = True
(5 >=2) or (5<2) = True
not (5 <> 2) = False

6.1.3. Operaciones de concatenacin


Operador
&
+(*)

Operacin
Concatenacin de cadenas de
caracteres
Concatenacin de cadenas de
caracteres

Ejemplo
rosa & mendez
rosa + mendez

27

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

6.1.4. Operaciones de comparacin


Operador
<
<=
>
>=
<>
=

Operacin
Menor
Menor o igual
Mayor
Mayor o igual
Distinto
Igual

Ejemplo
5 < 2 (False)
5 <= 2 (False)
5 > 2 (True)
5 >= 2 (True)
5 <> 2 (True)
5 = 2 (False)

7. Variables y Constantes
7.1. Variables
7.1.1. Concepto
Cuando un subprograma solicita el ingreso de un dato, ste debe ser almacenado temporalmente en algn espacio
de la memoria de su computadora. Una variable es el nombre que se le da al espacio de memoria en el que se
almacena el valor de un dato.
VBA da bastante flexibilidad para nombrar una variable; sin embargo, el nombre debe ser bastante descriptivo para
facilitar el trabajo de programacin y evitar confusiones. Algunos ejemplos de variable pueden ser:
Direccin_universidad, precio_menu, nombre_alumno, mayorDeEdad, boletasSinPagar, igv, tipo_de_cambio, x,
precio, edad, numeroEstacionamiento, etc.

7.1.2. Reglas para nombrar una variable


a.
b.
c.
d.
e.
f.

Puede usar letras, nmeros y algunos caracteres especiales, pero EL PRIMER CARACTER siempre debe ser
una LETRA.
No puede usar espacios en blanco o puntos.
VBA no distingue entre maysculas y minsculas. Es decir, si tiene una variable nombre es lo mismo que la
escriba Nombre, NOMBRE, NomBre.
No puede usar los siguientes caracteres: #, $, %, &, !
Los nombres de las variables pueden tener como mximo 254 caracteres.
Tenga cuidado de no usar alguna palabra reservada de VBA como nombre de variable. Las palabras reservadas
son palabras propias de VBA, tales como Sub, Function, los nombres de las funciones VBA (Inputbox,
Msgbox, Srq, etc), With, For, Next, entre otras. No se preocupe si no conoce todas las palabras
reservadas con las que cuenta VBA, si en algn momento intenta usar una de estas obtendr un error al
momento de tratar de ejecutar su programa.

Para hacer un poco ms descriptivos los nombres de las variables, los programadores a menudo combinan
maysculas y minsculas o el signo subrayado cuando necesitan usar un espacio en blanco. Por ejemplo:
tasa_interes, nombre_alumno, primerSumando, edad_alumno.

7.1.3. Declaracin de variables


Cada variable que se usa en un subprograma corresponde a un tipo de dato especfico. Si usted no declara el tipo
de dato al que corresponde dicha variable, VBA utilizar un tipo de dato por defecto: variant. Los datos
almacenados como tipo de dato variant actan como un camalen; es decir, de acuerdo al tipo de operacin que
realice con el dato, ste cambiar de tipo de dato. Por ejemplo:
Si la variable es del tipo de dato variant y contiene un texto que parece un nmero (como 122), usted puede
usar esta variable para realizar modificaciones al texto 122 o realizar clculos numricos.
Por ello, antes de usar variables en un subprograma, siempre deber declararlas; es decir, indicar a qu
tipo de dato corresponde cada una. Esto har que el programa se ejecute en menor tiempo y administre la
memoria de una manera ms adecuada.
El tipo de dato de una variable est estrechamente relacionado con el valor que almacena dicha variable. Por
ejemplo, no tendra sentido declarar una variable DNI_persona como un tipo Boolean ya que el DNI es un
nmero de 8 dgitos y la variable DNI_persona almacena dichos valores. Tampoco podran usarse los tipos Byte e

28

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Integer, debido a que el rango de valores que pueden guardar dichos tipos (Ver tabla Tipos de Datos en VBA) no
son los adecuados. Pero s podramos usar los tipos Long o String.
Sintaxis
Para declarar una variable en VBA se usa la palabra reservada Dim seguida de la lista de variables, cada cual con
su correspondiente tipo de dato, separadas por comas. El tipo de dato de una variable se indica con la palabra
reservada As.
Dim variable1 As tipo_dato1, variable2 As tipo_dato2, , variableN As tipo_datoN
Por ejemplo:
Declaracin de las variables precio_menu y tipo_de_cambio, ambas tipo Double.
Dim precio_menu As Double, tipo_de_cambio As Double
Dim direccin_universidad As String Declaracin de la variable direccion_universidad como tipo String.

7.1.4. Operacin asignacin


Las variables tambin se usan cuando se requiere almacenar un valor. A esta operacin le llamamos asignacin.
Para asignar un valor a una variable se usa el operador signo igual ( = ). La variable va al lado izquierdo del signo
igual y el valor que toma la variable va al lado derecho. Por ejemplo:
tasa_interes = 0.075
tipo_de_cambio = 3.14
precio = 3.5

Se lee: la variable tasa_interes toma el valor 0.075


Se lee: la variable tipo_de_cambio toma el valor de 3.14
Se lee: la variable precio toma el valor de 3.5

Tambin se podra tener: z = z +1. Esta expresin podra causarle cierta confusin.
Cmo z puede ser igual a z+1? Esta expresin no dice que z sea igual a z+1, recuerde que no est
comparando valores, sino asignando. Lo que expresa es que z TOMA EL VALOR de z+1. Por ejemplo:
Si inicialmente z = 4, entonces esta expresin lo que hace es aumentar en 1 el valor de z (4) y luego otorgar se
resultado (5) a z.
Recuerde:

Primero se evala el lado derecho de la expresin y luego el valor final es asignado a la variable de la
izquierda.
En este tipo de expresiones, el smbolo = NO se usa como smbolo de IGUALDAD, sino como
operador de ASIGNACIN.

7.2. Constantes
7.2.1. Concepto
El valor de una variable puede cambiar mientras se ejecuta un subprograma, de all su nombre variable. En algunas
ocasiones se necesita hacer referencia a un valor que nunca cambia, una constante. Una constante es un objeto
cuyo valor permanece fijo, invariable. Si se intenta cambiar el valor de una constante en un procedimiento o
funcin, se producir un error.

7.2.2. Declaracin de constantes


Para declarar una constante en VBA se usa la palabra reservada Const seguida del nombre de la constante, de
manera opcional el tipo de dato, luego el signo igual y por ltimo el valor de la constante.
Sintaxis
Por ejemplo:

Const nombre_constante [As tipo_dato] = valor

Const IGV = 0.19


Const tipo_de_cambio = 3.12

29

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Const boletasinPagar As String = Sin Pagar


Const Maximo = 100
Si no declara explcitamente el tipo de constante (con As tipo), VBA le asignar a la constante el tipo de datos ms
apropiado para la expresin dada.

7.2.3. Constantes propias de VBA


VBA tienen predefinidas algunas constantes que pueden ser usadas sin necesidad de ser declaradas. Para saber
cules son acceda a la opcin Ayuda y busque la palabra constantes de Visual Basic y le parecer la siguiente
pantalla:

Por ejemplo:
Recordemos la sintaxis de Msgbox: MsgBox(prompt[, buttons][, title][, helpfile, context])
El argumento buttons usa algunas constantes, tiene estos valores:
Constante
VbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation

Valor
0
1
2
3
4
5
16
32
48
64

Descripcin
Muestra solamente el botn Aceptar.
Muestra los botones Aceptar y Cancelar.
Muestra los botones Anular, Reintentar e Ignorar.
Muestra los botones S, No y Cancelar.
Muestra los botones S y No.
Muestra los botones Reintentar y Cancelar.
Muestra el icono de mensaje crtico.
Muestra el icono de pregunta de advertencia.
Muestra el icono de mensaje de advertencia.
Muestra el icono de mensaje de informacin.

30

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Si desea obtener ms informacin al respecto puede encontrarla en la ayuda de Microsoft VB.

7.3. mbito de las variables y constantes


El mbito o alcance de una variable o constante se refiere a la visibilidad y disponibilidad de la variable o constante
en partes especficas del programa. Las variables o constantes pueden tener alcance global o local.

7.3.1. mbito local


Una variable local slo puede usarse dentro del subprograma en el que fue declarada. Por ejemplo:
Sub mi_procedimiento()
Dim edad as integer
Instrucciones del procedimiento
End Sub
En este ejemplo edad es una variable local, que puede ser usada slo en el procedimiento mi_procedimiento. Fuera
del mismo esta variable deja de existir, por lo que intentar acceder a ella ser un error.

7.3.2. Global a nivel mdulo


Una constante global a nivel mdulo se declara en un mdulo antes de cualquier subprograma. Y puede ser
usada en cualquier subprograma del mdulo donde fue declarada. Por ejemplo:

Ejemplos de uso de variables


La variable monto es de tipo Single y se usa en el siguiente ejemplo del mdulo Mdulo1:

Qu ocurre si le asignamos el valor cadena vaca a monto? Al ejecutar nuestro procedimiento


CalcularMontoVenta nos saldra el siguiente error:
Este error indica que No coinciden los tipos. Esto se debe a que monto fue declarado Single y por tanto no le
corresponde un valor tipo String.

7.4. Errores comunes en la declaracin y asignacin de las variables.


1. El no declarar una variable y no asignarle un valor inicial, conduce a errores. En VBA cada variable, de acuerdo
al tipo de dato declarado, toma un valor inicial.
Por ejemplo, el tipo de dato numrico toma valor inicial 0; el tipo String una cadena de texto vaca; el tipo de dato
boolean el valor FALSE; entre otros. Entonces, si una variable no se declara y forma parte de una expresin
numrica, sta tomar el valor inicial 0. Si no se declara y forma parte de un texto, tomar como valor una cadena
vaca; y si forma parte una expresin lgica, tomar el valor FALSE.

31

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Por ejemplo:
Dim x As Double, y As Double
x=10
y=5
resultado = (x+y)*z
El valor de la variable resultado es 0, ya que al no declarar la variable z sta asume del tipo Variant con valor 0.
2. Al declarar las variables siempre debe de colocarle a cada una de ellas el tipo de dato asociado.
Por ejemplo: Si yo quisiera declarar tres variables enteras, entonces las formas correctas seran:
Dim a As Integer
Dim b As Integer
Dim c As Integer
O de manera alternativa: Dim a As Integer, b As Integer, c As Integer
Importante: Si declarara as, las variables a,b,c:
Dim a, b, c As Integer
Esta sera una forma incorrecta, pues las variables a y b sern variables de tipo Variant y solamente la variable
c es de tipo Integer.
Veamos el siguiente ejemplo:
Dim a, b, c As Integer
Sub Principal()
a = "hola"
MsgBox a
End Sub
Este procedimiento no genera ningn error de tipo ya que la variable a es de tipo Variant y no es Integer como
se deseaba.

8. Expresiones
Las constantes y variables pueden relacionarse mediante operaciones. A esta relacin la llamamos Expresin. Al
evaluar una expresin, sta nos devuelve un valor. Dependiendo de este valor, una expresin puede ser lgica o
aritmtica.

8.1. Expresiones aritmticas


Son expresiones que devuelven como valor un nmero. Por ejemplo:

2+3*4 6, da como resultado el valor 8


(2 + 5^2) (5 +6), da como resultado el valor 16

8.2. Expresiones lgicas


Son expresiones que devuelven un valor lgico: TRUE o FALSE. Por ejemplo:

4<>10 AND 5>=0, da como resultado el valor TRUE


NOT ((50=50) OR (5>9)), da como resultado el valor FALSE

32

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

8.3. Concatenacin de datos String


El contenido de una variable de tipo de dato texto, siempre que sea explcito, se representa mediante comillas. As
por ejemplo:
Sub p2()

Dim x As String
Dim y As String
Dim z As String
Dim w As String
x = "Hola"
y = " Amigos"
'Operacin de concatenacin de cadenas usando el operador &
z=x&y
MsgBox z Se mostrar la cadena: Hola Amigos
'Operacin de concatenacin de cadenas usando el operador +
w=x+y
MsgBox w Se mostrar la cadena: Hola Amigos

End Sub
Nota:
Ambos operadores podran ser usados sin distincin para el caso del tipo de dato String.
Recuerde:
La expresin (X<Y) AND (Z^2 = 4) es un tipo de dato lgico; sin embargo (X<Y) AND (Z^2 = 4) es un
tipo de dato texto (atencin a las comillas).

9. Subprogramas con parmetros


9.1. Declaracin de Subprogramas
Un subprograma se declara teniendo en cuenta el tipo de subprograma que es, el nombre con el que se identificar
a dicho subprograma, una lista de parmetros si fueran necesarios y, en algunos casos, el tipo de dato que
devuelven. Un subprograma tiene parmetros cuando:
a. El mismo subprograma necesita trabajar con dichos valores para cumplir con su finalidad.
b. Requiere la interaccin con otro subprograma que necesita de ciertos valores para trabajar o,
simplemente, para modificarlos. El resultado del trabajo del otro subprograma ser incorporado dentro
del primero para cumplir con su finalidad.
Recuerde:
En VBA existen 2 tipos de subprogramas:
Procedimiento: Es un grupo de instrucciones VBA que realiza una accin (o acciones).
Funcin: Es un grupo de instrucciones VBA que realizan un clculo y devuelven un nico valor.
Suponiendo que se declara la siguiente funcin:
Function fun1 (j As Integer, k As Double) As Double
. Instrucciones de la funcin
End Function
A los parmetros que se usan en la declaracin del subprograma fun1: j y k se les llama parmetros formales.
Suponiendo que se declara el siguiente procedimiento:
Sub procedimiento1(x As Integer, y As Double)
Cdigo del procedimiento
End Sub

33

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

A los parmetros que se usan en la declaracin del subprograma procedimiento1: x e y se les llama
parmetros formales.
Desde el procedimiento principal se les invocar de la siguiente manera:
Sub programa_principal()
Dim a As Integer
Dim b As Double
Dim z As Integer
Dim w As Double
Dim resultado As Double
.....
Resultado = fun1(z,w)
.......
Call procedimiento1 (a, b)
End Sub
Al realizar la invocacin o llamada al subprograma que tiene parmetros, se pasan los valores que realmente se
quieren usar en dicho subprograma. Por esta razn, a estos parmetros se les llama parmetros reales.
En el ejemplo, en el procedimiento programa_principal se invoca al procedimiento procedimiento1, pasando
como parmetro reales a y b. y se invoca a la funcin fun1 pasando como parmetros reales z y w.
Recuerde:
Los parmetros reales que pueden ser pasados son datos constantes, variables o expresiones.
Por ejemplo:
Se desea hallar la suma de los dgitos de un nmero de tres cifras almacenado en la celda B1 y muestra en la celda
B2 el resultado de esta suma.

34

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Los parmetros
que se pasan
son variables
Los parmetros
que se pasan
son valores fijos
Tambin se pueden
variables,
valores
constantes.

pasar
fijos,

35

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

10. Ejercicios desarrollados


10.1. Problema del Lpiz
Un alumno desea calcular el volumen de un lpiz. Para ello, identifica tres secciones: la punta del lpiz (forma cnica), el
cuerpo del lpiz (forma cilndrica) y el borrador (forma de media esfera), tal como se muestra en la figura:

Se pide implementar en VBA:


a. Un subprograma que lea los datos de entrada desde las celdas en Excel como se muestra en la figura anterior.
b. Un subprograma que calcule el volumen de la punta del lpiz.
c. Un subprograma que calcule el volumen del cuerpo del lpiz.
d. Un subprograma que calcule el volumen del borrador del lpiz.
e. Un subprograma que calcule el volumen total del lpiz. Para ello deber utilizar los subprogramas anteriores.
f. Un subprograma que muestre el resultado.
g. Un subprograma principal que, utilizando los subprogramas anteriores, ayude a resolver el problema planteado.

10.1.1. Anlisis
Datos de entrada: radio, alturacono, alturacilindro
Dato de salida: volumenlapiz
Frmulas:
Volumendelborrador=(4/3**radio2)/2
Volumendelcuerpo= *radio2 * alturacilindro
Volumendepunta=(1/3**radio2)* alturacono
Volumenlapiz = Volumendelborrador + volumendelcuerpo + volumendepunta
Diagrama de mdulos:

10.1.2. Implementacin (Codificacin)

36

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

10.2. Choque de Partculas


El Large Hadron Collider (LHC) es el ms reciente acelerador de partculas construido por el Consejo Europeo
para la Investigacin Nuclear (CERN) y tiene como objetivo hallar nuevas partculas subatmicas.
Para ello, el acelerador hace colisionar dos haces de protones a muy alta velocidad. Cada protn de carga elctrica
q y masa m parte con una velocidad igual a 0, y luego de atravesar una zona que tiene una diferencia de potencial
, adquiere la siguiente velocidad:

2*q *
m

Una vez atravesada esta zona, cada protn se encuentra dentro de un campo magntico (B) el mismo que ejerce
una fuerza (F) sobre el protn, llamada fuerza de Lorentz:

F q*v* B
Debido a esta fuerza, la trayectoria del protn deja de ser una lnea recta para ser una curva con radio de
curvatura (r), el mismo que puede obtenerse de la siguiente frmula:

m *v2
r

Un alumno desea hallar el radio de curvatura de la trayectoria de un protn conociendo su carga y masa, la

diferencia de potencial de la zona que atraviesa ( ) y el campo magntico (B) en el que se encontrar luego de
atravesar dicha zona.
Adems se cuenta con la siguiente Hoja en Excel:

Se pide implementar en VBA la solucin al problema planteado usando el siguiente Diagrama de Mdulos:

10.2.1. Anlisis
Datos de entrada: carga(q), masa(m), potencial( ) y campo magntico(B).
Datos de salida: radio
Frmulas:
=

m 2

37

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

10.2.2. Implementacin (Codificacin)

10.3. Mantenimiento de Macetas (Adaptado de Laboratorio 4 2012-1)


Teniendo como base un presupuesto asignado, se desea conocer la viabilidad
del proyecto del mantenimiento de las macetas de un jardn, las que tienen la
forma de un tronco de cono.
El costo por maceta debe ser calculado en base a la cantidad de abono y
fertilizantes necesarios para llenar al tope cada una de las macetas, siendo la
proporcin del volumen en la maceta de 80% de abono y 20% de fertilizante.
Se sabe que el costo del metro cbico de abono es S/. 54 y el del metro
cbico de fertilizante es S/. 80. Se cuenta con la siguiente hoja de clculo:
Para ello debe implementar en VBA
1. Un subprograma CalcularVolumen que calcule el volumen de una
maceta
2. Un subprograma CalcularCantidades que calcule el volumen de
una maceta, la cantidad de abono y la cantidad de fertilizante que se utilizar en dicha maceta.
3. Un subprograma CalcularCostoMaceta que calcule el costo de una maceta.
4. Un subprograma EsProyectoViable que permita determinar si es viable la realizacin del proyecto del
mantenimiento de las macetas. Se dice que es viable si el presupuesto asignado es suficiente para realizar
el mantenimiento.
5. Un subprograma principal AnalizarViabilidad que utilizando los subprogramas anteriores, segn
corresponda:
a) Lea los datos de entrada de las celdas correspondientes indicadas en la figura.
b) Calcule el volumen total, la cantidad de abono y fertilizante de una maceta.
c) Calcule el costo de una maceta.
d) Calcule el costo total del proyecto.
e) Determine la viabilidad del proyecto.
f) Muestre los resultados en las celdas correspondientes tal como se muestra en la figura.

10.3.1. Anlisis
Datos de entrada: radioBase, radioTope, altura, cantMacetas, presupuesto
Dato de salida: cantAbono, cantFertilizante, volMaceta, costoxmaceta, costoTotal, esViable
Frmulas:
volMaceta = *altura*( radioTope2 + radioBase2 + radioBase*radioTope ) / 3
cantAbono = 0.8*volMaceta
cantFertilizante = 0.2*volMaceta
costoxmaceta = cantAbono*54 + cantFertilizante*80
costoTotal = costoxmaceta*cantMacetas
esViable = (presupuesto >= costoTotal)

38

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Diagrama de mdulos:

10.3.2. Codificacin

39

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

11. Ejercicios Propuestos


11.1. Volumen del gas
Para calcular el volumen V que ocupa en un recipiente rgido, G gramos del gas AxBy a TC y a P atm. De
presin, se utiliza la siguiente frmula:
PV = nRT
Se desea calcular la masa molecular del
compuesto AxBy
mediante la siguiente
frmula, (masa_atomica_A*Nmero_tomos_A +
masa_atomica_B * Nmero_tomos_B
)
para
luego calcular el nmero de moles de
molculas
(Cantidad_gramos
/
masa_molecular_compuesto) para determinado
peso del gas y finalmente hallar el volumen
que ocupa dicho gas a cierta presin y
temperatura. Para ello, se pide:
a.

Realizar un subprograma que calcule la


masa molecular de un compuesto
formado por 2 elementos A y B, teniendo
como parmetros de entrada la masa
atmica de A, el nmero de tomos de A
(x), la masa atmica de B, el nmero de
tomos de B (y).

b.

Realizar un subprograma que calcule el


nmero de moles de molcula teniendo
como parmetros de entrada el peso(en gramos) del compuesto y la masa molecular del compuesto.

c.

Realizar un subprograma que reciba como parmetro la temperatura en grados Celsius y devuelva la
temperatura correspondiente en grados kelvin. Recuerde que: K = C + 273

d.

Realizar un subprograma que calcule el volumen de un gas teniendo como parmetros de entrada la presin,
el nmero de moles de molcula, la constante R y la temperatura en grados kelvin.

e.

Realizar un subprograma principal que:

Lea la masa atmica del compuesto A, la masa atmica del compuesto B, el nmero de tomos de A, el
nmero de tomos de B, el peso en gramos, la presin en atm, la constante R y la temperatura en grados
Celsius.
Utilizando uno de los subprogramas anteriores, calcule la masa molecular del compuesto AxBy.
Utilizando uno de los subprogramas anteriores, calcule el nmero de moles de molcula equivalente para el
peso ledo.
Utilizando uno de los subprogramas anteriores, convierta a grados Kelvin la temperatura leda.
Utilizando uno de los subprogramas anteriores, calcule el volumen que ocupa la Presin leda, el nmero de
moles de molculas hallado, la constante leda y la temperatura convertida en el acpite anterior a grados
Kelvin.
Escriba la masa molecular, el nmero de moles de molculas y el volumen en la celdas correspondientes, segn
se muestra en la figura.

11.2. Movimiento parablico


Si un cuerpo se lanza formando un determinado ngulo con la horizontal, ste describe una parbola como
trayectoria; la componente vertical de la velocidad disminuye conforme el cuerpo sube y aumenta conforme el
cuerpo cae, en cambio la componente horizontal permanece constante.
Para proyectiles lanzados a una velocidad V 0 formando un ngulo con la horizontal y aceleracin de la gravedad
g, se desea calcular el tiempo de vuelo (T), el alcance mximo horizontal (x max) y la altura mxima (ymax). Se sabe
que:
T = (2*V0/g)*sen
xmax = (V02/g)*sen(2)
ymax = (V02/2*g)*sen2

40

INF117 Introduccin a la Computacin

Desarrollo de Programas 1

Implemente un programa en VBA que permite calcular los valores pedidos y lea los datos necesarios de una hoja
de clculo como se presenta a continuacin:

NOTA: (a) Considerar que la aceleracin de la gravedad (g) es 9.8 m/s. (b) La funcin Sin de VBA requiere que el
ngulo parmetro est en radianes.

11.3. Sistema monetario


Se tiene el sistema monetario de un pas en el que existen 3 denominaciones de monedas. Se desea cambiar un
monto de dinero (nmero entero) con el menor nmero de monedas posibles. Para lograr este propsito, se
debera cubrir lo ms rpido posible, comenzando por las monedas de mayor denominacin. El problema surge
cuando se dispone de una cantidad de monedas menor a la cantidad requerida. Para evaluar la posibilidad de
realizar el cambio solicitado, se pide que utilizando VBA con Excel implemente:
1.

2.

3.

4.

Un subprograma CantidadMonedas que reciba como


parmetros el monto a cambiar y la denominacin de la
moneda, y que devuelva la cantidad de monedas necesarias
de dicha denominacin.
Un subprograma ObtenerCantidadMonedas que a
partir de un monto a cambiar y las denominaciones de
monedas disponibles en el pas, nos devuelva la cantidad
de monedas necesarias de cada denominacin. Deber
utilizar el subprograma anterior.
Un subprograma EsPosible que reciba como parmetros
las cantidades disponibles y las cantidades necesarias de
cada denominacin de monedas y permita determinar si es
posible realizar el cambio.
Un subprograma Principal que permita dar solucin al
problema planteado.

Nota: Lea las denominaciones de las monedas de las celdas. Las denominaciones siempre aparecern ordenadas de
menor a mayor.

12. Bibliografa
- Marcela Genero Bocco. Excel con Visual Basic Para Aplicaciones (VBA).Noviembre 2002.
- CAIR, Osvaldo. Metodologa de la programacin. 2a edicin. Mxico: Alfaomega, 2003.
- Excel VBA Programming for Dummies. John Walkenbach Wiley Publishing, Inc. (2004).
- Sitio web de Microsoft Office Online: http://office.microsoft.com (2010)

13. Actualizacin:
28/04/2015.

41

Potrebbero piacerti anche