Está en la página 1de 13

UNIVERSIDAD NACIONAL DE COLOMBIA 

SEDE DE MEDELLÍN 
______________________________ 

FACULTAD NACIONAL DE MINAS 
Escuela de Sistemas 

 
OBJETIVOS: 
• General: Estudiar y utilizar los elementos del entorno de trabajo Visual Basic for Applications (VBA) 
desde Microsoft Excel. 
• Específicos:  (a)  Entender  y  Aplicar  el  concepto  de  ambiente  de  trabajo  para  el  diseño  de 
aplicaciones,  con  sus  componentes  básicos:  menú  principal,  barra  de  herramientas,  caja  de 
controles, explorador de proyectos, ventana de propiedades, formulario base de diseño. (b) Diseñar 
una  interfaz  sencilla,  manipulando  los  objetos  (controles)  del  tipo:  UserForm,  Label,  TextBox, 
CommandButton,  Image.  (c)  Reconocer  y  manejar  los  diferentes  tiempos  en  un  proyecto  VBA: 
diseño, ejecución, depuración. (d) Emplear la definición, lectura y escritura de variables en VBA. 
 
ENTORNO DE DISEÑO EN VBA: 
 

 
 
En la siguiente anterior se muestran los componentes principales del entorno de diseño de  aplicaciones  
de Visual Basic for Applications (VBA).  
 
Algunas operaciones típicas con el entorno de desarrollo en VBA son: 
 
•  Ocultar/Visualizar  diversos  componentes  como  a  caja  de  controles,  la  barra  de  herramientas,  la 
ventana de propiedades, la ventana exploradora de proyectos (explorador de proyectos), el formulario. 
• Ubicar controles sobre el formulario de diseño. 
• Establecer propiedades al formulario y a los diversos controles ubicados sobre él. 
•  Asociar  programas  (procedimientos,  subprogramas,  rutinas,  funciones)  con  los  diversos  controles 
(objetos) que así lo requieran. 
 
EJERCICIO 1: 
 
El  Índice  de  Masa  Corporal  –  IMC  de  una  persona  puede  calcularse  de  manera  sencilla  mediante  la 
siguiente fórmula: 
 
peso(en kgs )
IMC =  
altura 2 (en metros )
 
Así por ejemplo, una persona que pese 65 kgs. y mida 1.72 mts. tendría un IMC de 21.97 (65/1.722) 
 
Desarrollar un proyecto en VBA para calcular este valor. 
 
SOLUCIÓN: 
 
Activar el entorno de trabajo Excel‐VBA en Excel 2003 (XP) 
 
Si en vez de tener instalado el Windows Vista con su respectivo Office se tiene la versión anterior (Office 
2003) se debe proceder de la siguiente manera. Primero debe permitírsele al Excel ejecutar macros, para 
esto ir a Herramientas – Macro – Seguridad como se muestra en la Figura 1.6. 
 

 
 
Luego donde dice “Nivel de seguridad” debe seleccionarse Medio o Bajo como se muestra en la Figura 
1.7. En el primer caso aparecerá una ventana de confirmación cada vez que se abra el archivo de Excel 
correspondiente  para  determinar  si  efectivamente  se  desea  habilitar  las  macros.  En  el  segundo  caso 
todas las macros podrán ser ejecutadas sin confirmación previa. Como esta propiedad de seguridad no 
se define para un archivo en particular si no para todo el Excel en general, se recomienda seleccionar la 
opción “Medio” para evitar que otras macros externas puedan hacer alguna operación no deseada. 
 

 
 
Activar el entorno de trabajo Excel‐VBA en Excel 2007 (Vista) 
 
Para  activar  el  entorno  de  trabajo  Excel‐VBA  si  se  tiene  instalado  el  Windows  Vista  con  su  respectivo 
Office  simplemente desde la barra de  tareas haga  clic en  INICIO y luego en Microsoft  Office  Excel1 (es 
posible que primero se tenga que ubicar el puntero del mouse en Microsoft Office, dependiendo de la 
máquina en la cual se esté trabajando). Aparecerá la ventana o escritorio principal de Excel. Por ejemplo, 
en la figura siguiente se muestra el escritorio principal de Excel 2007 (versión en español). 
 
La flecha roja señala la opción y el ícono de Visual Basic, dentro de la ficha (pestaña o lengüeta) llamada 
Programador.  

                                                            
1
 Microsoft Office, Microsoft Office Excel son marcas registradas de Microsoft Corporation (http://www.microsoft.com/spanish/) 
 
 
Esta ficha se activa haciendo clic en el botón de Windows (fecha verde) y haciendo de nuevo clic en la 
pestaña Opciones de Excel (parte inferior de la figura 1.4, página siguiente), señala con la flecha roja. Al 
hacer clic en la pestaña Opciones de Excel se llega al panel de diálogo mostrado en la figura 1.5. Allí se 
debe activar la opción Mostrar ficha Programador en la cinta de opciones. A partir de esta activación, 
siempre se mostrará la ficha Programador, a partir de la cual se accesa el entorno de VBA. Sin embargo, 
independientemente de si la ficha Programador está o no activada, siempre es posible llegar al entorno 
VBA pulsando las teclas Alt F11 a la vez (sostenga la tecla Alt y pulse la tecla F11). 
 

 
 
 
 
Elaborar el proyecto en VBA  
 
Una vez se define el nivel de seguridad apropiado (sólo se debe hacer una vez en el equipo siempre y 
cuando luego no se cambie esta configuración) se puede proceder a crear el proyecto en VBA. Para esto 
Se selecciona Herramientas – macro – Editor de Visual Basic como se muestra en la Figura 1.8. Una forma 
abreviada de hacer esto, al igual que en Excel 2007 es oprimir las teclas Alt + F11. 
 

 
 
 
Luego  de  entrar  al  entorno  de  programación  VBA  se  puede  iniciar  diseñando  la  Interfaz  del  Usuario 
dando clic derecho en el proyecto y seleccionando Insertar – UserForm, como se muestra en la Figura 
1.9. 
 

 
 
Una vez hecho esto aparecerá una ventana (form o formulario) en blanco como se muestra en la parte 
derecha de la Figura 1.10. También debe aparecer el cuadro de herramientas (que se muestra en la parte 
izquierda de la misma figura) donde se encuentran los controles típicos para desarrollar una interfaz. La 
explicación de cada uno se presenta a continuación.  
 
Control  Descripción 
Formulario (form)  Corresponde al formulario (ventana) en sí 
Etiqueta (label)  Sirve  generalmente  para  agregar  texto  a  manera  de  títulos, 
anotaciones, etc. 
Cuadro  de  texto  Sirve  generalmente  para  las  operaciones  de  lectura/escritura  de  las 
(textbox)  variables de entrada y salida respectivamente 
Botón  (command  Sirve para realizar alguna operación bien sea de lectura o escritura de 
button)  datos, de transformación, o cualquier combinación de estas 
Marco (frame)  Puede  servir  para  diseñar  el  formulario  de  manera  ordenada 
subdividiendo la ventana total en diferentes secciones. Por ejemplo: 
sección  de  lectura  de  variables  de  entrada,  sección  de  escritura  de 
variables  de  salida,  sección  de  operaciones  (botones).  La  utilización 
de este control es opcional. 
 
 
 
 
 
Téngase  en  cuenta  que  cualquiera  de  estos  controles  tiene  una  serie  de  propiedades  que  pueden  ser 
modificadas usando la ventana de propiedades que sale al darle clic derecho al control que se agregue al 
formulario  y  seleccionando  propiedades,  o  mediante  la  opción  Ver‐  Ventana  de  propiedades  (o 
abreviado  como  F4)  y  señalando  el  control  correspondiente  (el  formulario  en  sí  mismo  es  también  un 
control  con  propiedades  propias).  De  cualquiera  de  las  dos  formas  debe  aparecer  la  ventana  de 
propiedades  para  el  control  seleccionado  como  se  muestra  en  la  Figura  1.11  (en  este  caso  las 
propiedades corresponden a un control tipo “label” que se describirá a continuación). 
 
Propiedad  Descripción 
(Name)  Identificador  único  que  tendrá  el  control  dentro  del  proyecto.  Se 
recomienda  utilizar  nombres  mnemotécnicos  que  consideren  tanto  el  tipo 
de  control  como  la  función  asociada  (por  ejemplo  botonAceptar, 
textoResultados, etiquetaTitulo, etc.) 
Backcolor  Color de fondo 
Caption  Texto del control, aplica para todos los controles excepto para el cuadro de 
texto 
Font  Propiedades del texto: tipo de letra, tamaño, estilos y efectos 
Forecolor  Color del texto 
Text  Texto que aparece en el control cuadro de texto 
 
*Nota: Estas propiedades pueden ser definidas tanto en tiempo de diseño (como en estos ejemplos) o en 
tiempo de ejecución (de manera dinámica) al interactuar con el usuario. 
 
 
 
 
Teniendo en cuenta lo anterior es fácil diseñar una interfaz para el problema planteado como se muestra 
en la Figura 1.12. 
 
 
 
 
 
 
 
marcoEntrada

textoPeso 
etiquetaPeso
textoEstatura 
etiquetaEstatura

marcoResultados
textoIMC 
etiquetaIMC 

marcoOpciones

botonCalcular botonSalir  
 
 
Una  vez  definida  la  interfaz  se  procede  a  pasar  el  algoritmo  al  código  correspondiente  en  VBA.  Para 
hacer  esto  se  puede  seleccionar  Ver  –  Código  (o  abreviado  como  F7)  o  dando  doble  clic  en  cualquier 
parte del formulario. 
 

 
 
 
Como  el  VBA  es  un  entorno  de  programación  estructurado  basado  en  eventos  (ciertas  operaciones  se 
llevan a cabo cuando cierto evento ocurre sobre un control) el código se distribuye como se muestra en 
la figura 1.13. Así por ejemplo, al dar doble clic en el control botonCalcular aparecería en el entorno de 
programación el cursor situado al interior de:  
 
Private Sub botonCalcular_Clic() 
   
End Sub 
 
Esto significa que lo que se escriba al interior de esas instrucciones será lo que se ejecutaría cuando al 
correr  el  programa  se  de  clic  sobre  el  botón  Calcular.  Nótese  que  en  esa  instrucción  aparece 
“botonCalcular_Clic()” y no “Calcular_Clic()” pues el nombre del control (que se definió con la propiedad 
Name) es “botonCalcular” mientras que “Calcular” es simplemente lo que aparece en pantalla. En este 
caso  lo  que  se  debe  ejecutar  es  precisamente  lo  que  estamos  buscando  con  este  algoritmo  que  es 
calcular el IMC de una persona. Si hiciéramos el diagrama de caja respectivo de este problema sería algo 
como: 
 
Leer peso 

Leer estatura 

IMC = peso / estarura2 

Mostar IMC 
 
 
Que  traducido  a  VBA  es  precisamente  lo  que  aparece  en  la  parte  superior  de  la  Figura  1.13  para 
botonCalcular.  Es  necesario  recordar  que  TODAS  las  variables  (las  de  entrada,  las  de  salida  y  las 
intermedias)  que  se  utilicen  en  el  código  deben  ser  declaradas,  esto  con  el  fin  que  el  lenguaje  de 
programación sepa de qué tipo de datos es cada una. Un listado de cómo se declaran en VBA los tipos de 
datos más importantes vistos en la clase teórica se presenta a continuación: 
 
Tipo de dato  Sintaxis en VBA 
Entero Corto  Integer 
Entero Largo  Long 
Real Simple  Single 
Real Doble  Double 
Cadena de texto  String 
Lógico  Boolean 
 
Luego de la declaración de variables aparece:  
 
peso = Val(textoPeso.Text) 
estatura = Val(textoEstatura.Text) 
 
Las cuales asignan valores a las variables peso y estatura respectivamente, a partir de lo digitado en las 
correspondientes  cuadros  de  texto  en  tiempo  de  ejecución.  Con  la  función  Val()  se  asigna  el  valor 
numérico  de  lo  digitado;  si  se  digitan  números  obviamente  los  valores  asignados  corresponden  a  esos 
números; si se digitan letras y otros caracteres, se asignará cero. 
 
Luego aparece el cálculo de la variable de salida: IMC = peso / (estatura ^ 2) 
 
Y por último aparece la instrucción: textoIMC.Text = IMC, que lo que hace es precisamente poner en la 
caja de texto textoIMC el valor calculado. 
 
Como  en  la  interfaz  diseñada  también  aparece  un  botón  para  salir,  es  necesario  agregar  el  código 
correspondiente.  En  VBA  la  instrucción  que  se  emplea  para  terminar  un  programa  es  End  como  se 
muestra  en  la  parte  inferior  de  la  figura  1.13.  En  este  caso  como  dicha  instrucción  se  encuentra  al 
interior  de  Private  Sub  botonSalir_Clic(),  esto  significa  que  cuando  al  ejecutar  el  programa  se  de  clic 
sobre ese boton el programa terminaría (se cerraría la ventana). 
 
EJERCICIO 2: 
 
Teniendo en cuanta lo aprendido hasta el momento, realice un proyecto en VBA para leer dos valores 
numéricos  y  tener  la  opción  de  realizar  sobre  ellos  las  operaciones  aritméticas  básicas.  Una  posible 
interfaz se muestra en la Figura 1.14. 
 

 
 
 
Nótese que además de los botones para las 4 operaciones aritméticas básicas y el botón de salir, hay dos 
botones adicionales: “Leer Datos” y “Borrar” para hacer el programa un poco más completo. Como se 
muestra en la parte media de la figura 1.15 el botonBorrar lo único que hace es poner el contenido de 
los cuadros de texto vacíos. 
 
Para este problema como se tienen varias y no solo una operación (a diferencia del ejercicio anterior) es 
conveniente hacer dos cosas: 
 
• Primero, las variables (tanto de entrada como de salida) no se definen al interior del código de 
cada operación si no de manera general como se muestra en la parte superior figura 1.15. Para 
hacer  esto  solo  es  necesario  seleccionar  en  la  ventana  del  código  la  opción  “General”  que 
aparece de primera en la lengüeta que sale en la parte superior izquierda de esa ventana. Lo que 
se  escriba  allí  aparecerá  aparte  de  la  programación  de  los  controles  y  será  general  para  todos 
ellos. Esto significa que las variables que se declaren allí (al igual que como lo estamos haciendo 
para  este  ejercicio)  serán  “comunes”  para  todos  los  controles  y  por  tanto  no  es  necesario 
declararlas en cada uno. 
• Segundo,  y  tendiendo  en  cuenta  lo  anterior,  la  lectura  de  los  datos  de  entrada  no  se  hace  en 
cada  operación,  si  no  que  se  tiene  un  botón  específico  (botonLeer)  para  hacerlo  como  se 
muestra en el segundo bloque presentado en la figura 1.15. Esto sirve para no tener que copiar 
el mismo código en todos los botones de operaciones. Nótese que al final aparece la instrucción 
Msgbox  “Datos  leidos”.  Esta  sirve  para  que  aparezca  una  ventana  de  información  con  el  texto 
correspondiente. 
 

 
 
Nota: Un apóstrofe (o comilla simple) indica un comentario. Los comentarios son ignorados a tiempo de 
ejecución;  sólo  sirven  para  explicar  (documentar)  ciertas  partes  de  un  código  como  se  muestra  en  la 
parte  final  de  la  figura  1.15  (en  botonSalir).  Normalmente  en  VBA  tales  comentarios  se  muestran  en 
verde (salvo que se cambie la convención de colores del editor). 
 
Aparte  de  la  definición  (general)  de  variables  y  de  los  botones  de  “Leer  Datos”,  “Borrar”  y  “Salir”  se 
encuentran los botones para las 4 operaciones básicas. Cada uno tendrá un código muy simple como el 
que se muestra a manera de ejemplo para botonSumar en la figura 1.15. LA única operación que tiene 
una restricción especial es la de dividir, puesto que si B toma el valor de 0 no se puede realizar (división 
indefinida). Para tener en cuenta esta situación es posible emplear la instrucción SI … DE LO CONTRARIO 
… FIN SI, cuya traducción a VBA se presenta en la figura 1.16 
 
 
 
 
Nótese en este código que si B es diferente de 0, la operación se realiza normalmente y el resultado se 
imprime, mientras que en caso contrario (si B es cero) se mostraría un mensaje de información indicando 
la situación. 
 

También podría gustarte