Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Colección
Objetivo: Soluciones
A. Introducción
Como vimos en el capítulo Primer programa, la Grabadora de macros convierte cada una de
las selecciones de celda, de rango de celdas, en referencias fijas:
Range("A3:B5").Select
Range("C8").Select
Columns("D").Select
Este tipo de escritura del código tiende a desaparecer ya que las referencias serán invaria-
blemente las mismas. Es decir, el interés de hacer un programa es aplicar una instrucción
a un elemento (una celda, una hoja de cálculo, un libro, un gráfico, etc.) y después reprodu-
cir esta instrucción en otros elementos.
Este es el motivo por el que no deben escribirse las referencias de una celda directamente
en el código, sino que deberá usarse una variable que, como su propio nombre indica, per-
mitirá hacer variar las coordenadas de la celda.
n Para lograr mayor eficacia en la gestión de las variables es preferible optar por
nombres comprensibles (Núm_Fila, Nombre_Libro, Nombre_Hoja, etc.), en lugar de
elegir nombres compuestos de una sola letra (i, j, k, etc.).
C. El método MsgBox
El método MsgBox es una función importante para comprender programas en Visual Basic
ya que permite mostrar en todo momento mensajes personalizados. Pero MsgBox no solo
muestra mensajes personalizados, sino que también bloquea la ejecución del resto del códi-
go.
Sub Test_Vista()
MsgBox "Mensaje personalizado"
End Sub
Como podrá observar, la instrucción para mostrar un mensaje es muy sencilla, pero lo que
es importante comprender es que mientras no pulse el botón Aceptar, la ejecución del códi-
go permanece bloqueada en la línea MsgBox.
Ahora podrá mostrar más de un mensaje personalizado y también reagrupar texto persona-
lizado con el contenido de una variable al mismo tiempo.
56
Macros y lenguaje VBA - aprender a programar con Excel
3. Personalizar el mensaje
Puede personalizar la configuración del cuadro de diálogo MsgBox, el título de la ventana,
el número de botones, los iconos, etc. De esta forma los usuarios tendrán la impresión de
que el mensaje es propio del programa y no un mensaje de Excel.
El método MsgBox, además del mensaje que se quiere comunicar, posee las siguientes
opciones:
La opción Botón permite cambiar el nombre de los botones que aparecen (Cancelar, Sí, No,
etc.) y también cambiar el icono que aparece a la izquierda del cuadro de diálogo. Para ello,
es necesario seleccionar una de las constantes que aparecen después de escribir una
coma tras el mensaje personalizado.
Capítulo 5: Las variables 57
Si selecciona la constante vbYesNo, el cuadro de diálogo mostrará los botones Sí y No, pero
el texto de la línea será ligeramente distinto ya que hay que indicar que la respuesta del
usuario (Sí o No) se incluirá en una variable.
Sub Macro1()
Dim LaRespuesta As Long
LaRespuesta = MsgBox("¿Estás contento?", vbYesNo)
End Sub
© Editions ENI - All rights reserved
58
Macros y lenguaje VBA - aprender a programar con Excel
n Más adelante, en el capítulo Las condiciones, estudiaremos cómo tratar las respues-
tas y cómo conocer el valor de la respuesta en el capítulo Depuración.
Por otro lado, al declarar las variables, es muy fácil recordar sus nombres haciendo uso de
la combinación de teclas CO.
n Basta con introducir los primeros caracteres del nombre de una variable declarada y
usar el método abreviado CO para que el nombre de la variable se complete al
instante.
Excel
Macros y programación con VBA
Colección
Avanza ejercicio a ejercicio
ENUNCIADO 2
FUNCIONES PERSONALIZADAS
PROPRIEDADES/FUNCIONES/PALABRAS CLAVE UTILIZADAS . . . . . . . . . . . . . . 12
1. Funciones personalizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
FUNCIONES PERSONALIZADAS
FUN CI ONES PERSON A LI ZAD AS
EJERCICIO N°
FUNCIONES 1 2 3 4 5 6 7 8 9 10 11 12 13
PERSONALIZADAS
Application.Volatile
Asc
CDate
Cells
Chr
ColorIndex
Column
CountIf
Currency
Date
Double
For Each
For…Next
If
Int
Integer
Item
Left
Len
Match
Max
Mid
Range
Right
FUNCIONES PERSONALIZADAS
EJERCICIO N°
FUNCIONES 1 2 3 4 5 6 7 8 9 10 11 12 13
PERSONALIZADAS
Select case
Single
String
Sum
Variant
WeekDay
WorksheetFunction
FUNCIONES PERSONALIZADAS
1. Funciones personalizadas
FuncionesPerso.xls
EJERCICIO N°1
Cree una función que permita calcular el importe de IVA cuando se introduzca el im-
porte con IVA y porcentaje de IVA expresado en %.
EJERCICIO N°2
Cree una función que permita calcular el coste de carburante de un coche en
función de la distancia, el precio del litro de carburante y el consumo medio del vehí-
culo L/100 Km.
EJERCICIO N°3
Cree una función que permita calcular un importe en función de la cantidad y del
baremo mostrado abajo.
FUNCIONES PERSONALIZADAS
EJERCICIO N°4
Cree dos funciones que permitan calcular el total y el número de valores formateados
con fondo amarillo.
EJERCICIO N°5
Cree una función que permita calcular el número de celdas que contienen un texto
concreto.
FUNCIONES PERSONALIZADAS
EJERCICIO N°6
Cree una función que permita calcular el número de valores comprendidos entre dos
márgenes.
EJERCICIO N°7
Cree una función que permita calcular el rendimiento por minutos en la fabricación de
piezas.