You are on page 1of 5

Escuela de Educación Técnica Nº2 – Asistencia sobre la utilización de Aplicaciones Generales

MACROS EN EXCEL
Para crear una macro de forma manual es necesario tener conocimientos de programación en general y de Visual Basic en particular, ya que es el lenguaje de programación en el que se basa el VBA de Excel. Si no tienes esta base puedes saltarte este punto del tema. Primero debemos abrir el editor Visual Basic, y para eso accedemos al menú Herramientas Macro - Editor de Visual Basic o presionamos la combinación de teclas Alt + F11. Una vez abierto el editor de Visual Basic debemos insertar un módulo de trabajo que es donde se almacena el código de las funciones o procedimientos de las macros. Para insertar un módulo accedemos al menú Insertar - Módulo. A continuación debemos plantearnos si lo que vamos a crear es una función (en el caso que devuelva algún valor), o si por el contrario es un procedimiento (si no devuelve ningún valor). Una vez concretado que es lo que vamos a crear, accedemos al menú Insertar Procedimiento... Nos aparece un cuadro de diálogo como vemos en la imagen donde le damos el Nombre: al procedimiento/función sin insertar espacios en su nombre. También escogemos de qué Tipo es, si es un Procedimiento, Función o es una Propiedad. Además podemos seleccionar el Ámbito de ejecución. Si lo ponemos como Público podremos utilizar el procedimiento/función desde cualquier otro módulo, pero si lo creamos como Privado solo podremos utilizarlo dentro de ese módulo. Una vez seleccionado el tipo de procedimiento y el ámbito presionamos sobre Aceptar y se abre el editor de Visual Basic donde escribimos las instrucciones necesarias para definir la macro. Para comprobar si funciona correctamente la macro creada: - Se accede al menú Herramientas -- Macro. - Se Elige la opción Macros... - Se Selecciona la macro creada y se pulsa sobre Ejecutar.

5 Next End Sub 4) Convertir de moneda peso a moneda dólar Public Sub peso_a_dolares() For Each c In Selection.00" Next End Sub .05 c.Value = c.Cells c.Value = c. 6) + Cells(i.6) es la celda de fila=10 y columna=6. 2)** Next End Sub * la celda (10. 6) = Cells(10.NumberFormat = "#.00" Next End Sub 5) Convertir de moneda dólar a moneda peso Public Sub dolar_a_peso() For Each c In Selection.Value / 3.##0.Escuela de Educación Técnica Nº2 – Asistencia sobre la utilización de Aplicaciones Generales Ejercicios de FUNCIONES (EXCEL) – MACROS CON VISUAL BASIC Crear las funciones específicas que permitan… PROCEDIMIENTOS 1) Inicializar con cero u otorgar un valor a celdas seleccionadas Public Sub inicializar() For Each c In Selection. celda F10 ** en la celda F10 coloca el resultado de la suma de las celdas B1+B2+B3 3) Multiplicar el valor de varias celdas seleccionadas por un número Public Sub aumentar() For Each c In Selection.##0.Cells c.Value = c.NumberFormat = "#. 6)* = 0 For i = 1 To 3 Cells(10.Value * 1.05 c.Cells c.Cells c.Value * 3. es decir.Value = 0 Next End Sub 2) Sumar el valor de varias celdas Public Sub sumar() Cells(10.

8) Pasar a letra minúscula el contenido celdas seleccionadas discriminando tipo de dato Public Sub minuscula() For Each a In Selection x = a.Value = UCase(Left(a.Left: toma la parte izquierda de un texto. discriminando tipo de dato Public Sub mayusculas() pag 67 For Each a In Selection x = a.Value = UCase(x) End If Next End Sub * la función VarType devuelve un número que indica que tipo de dato contenido es el contenido en el argumento.3.Value = UCase(a.Value. 1))* & LCase(Mid(a.4) devuelve el texto LOCO . es decir. Ej: Mid(“LOCOMOTORA”.4) devuelve el texto TORA .Escuela de Educación Técnica Nº2 – Asistencia sobre la utilización de Aplicaciones Generales 6) Pasar el contenido de celdas seleccionadas a letra mayúscula Public Sub mayusculas() pag 66 For Each a In Selection a.Value If VarType(a.4) devuelve el texto COMO . Ej: Left(“LOCOMOTORA”.Value) Next End Sub 7) Pasar el contenido de una celda a letra mayúscula analizando si el mismo es un texto. Ej: Right(“LOCOMOTORA”.Value = LCase(x) End If Next End Sub 9) Dar formato tipo oración al contenido de las celdas seleccionadas Public Sub frase() For Each a In Selection x = a.Value If VarType(x)* = 8 Then a.Value.Value) = 8 Then a.Value If VarType(x) = 8 Then a.Right: toma la parte derecha de un texto. 2)) End If Next End Sub * Funciones de visual Basic: .Mid: toma la parte central de un texto. En este caso el número 8 corresponde a tipo texto.

05 End Function Seleccionar la celda donde se quiere colocar el resultado de la función y escribir por ejemplo: = function(A2) Donde en la celda A2 esta el valor que se quiere cambiar 11) Pasar de moneda dólar a moneda peso Function DOLARaPESO(i) DOLARaPESO = i * 3.Escuela de Educación Técnica Nº2 – Asistencia sobre la utilización de Aplicaciones Generales FUNCIONES SENCILLAS 10) Pasar de moneda peso a moneda dólar Function PESOaDOLAR(i) PESOaDOLAR = i / 3.05 End Function 12) Cambiar los registros de temperaturas de Grados Centígrados (°C) a Grados Fahrenheit (°F) y viceversa sabiendo que las fórmulas para realizar los pasajes son:  T °C = (T °F – 32) * 5/9  T °F = (T °C * 9/5) + 32 Function GRADOSF(g) GRADOSF = (g * 9 / 5) + 32 End Function Function GRADOSC(g) GRADOSC = 5 / 9 * (g .32) End Function 13) Calcular el factorial de un número Public Function factorial(n) factorial = 1 For i = 1 To n factorial = factorial * i Next End Function .

Escuela de Educación Técnica Nº2 – Asistencia sobre la utilización de Aplicaciones Generales .