Taller No.2 Funciones y Macros Con Excel
Taller No.2 Funciones y Macros Con Excel
Taller No.2 Funciones y Macros Con Excel
Duración: 5hrs.
CONTENIDO
Tema Página
1.1 Introducción 2
1.2 Objetivo 2
1.3 Evaluación de funciones 2
1.3.1 Funciones definidas por el usuario 2
1.3.2 Errores comunes 3
1.3.3 Evaluando una función con varios tipos de parámetro 4
1.3.3.1 Evaluación con argumentos variables 4
1.3.3.2 Evaluación con argumentos variables y/o constantes 5
1.3.3.3 Constituyendo rangos con un incremento fijo 7
Bibliografía 33
[1]
1.1 Introducción
1.2 Objetivo
1. Como al evaluar ( ) se debe recurrir a varias funciones básicas predeterminadas de Excel, se puede tener acceso a su sintaxis,
[2]
Figura 1.1 Evaluación de fórmulas.
Conforme nos vamos familiarizando con el uso de las formulas, van surgiendo
algunos errores que usualmente son causados por un manejo inadecuado de la
sintaxis o la incompatibilidad con la configuración de la computadora.
[3]
6. Dependiendo de la forma en la que se encuentre configurado el sistema
Windows, debe usarse punto o coma para separar la parte decimal de
los números a evaluar. Para personalizarlo, se debe entrar al panel de
control y en la Configuración regional se selecciona `Números'. En la
primera cejilla, „Símbolo Decimal' se selecciona el punto o la coma,
según sea el caso. Finalmente, se presiona el botón „Aplicar‟ y luego
„Aceptar„.
() () ()
Que en este caso es el conjunto de los números reales positivos. Una vez hecho esto, se evalúa la función ( )
en la celda C3, como se hizo previamente. Posteriormente, seleccionamos esta misma celda y ubicamos el
puntero del mouse en la esquina inferior derecha, arrastrándolo hasta la celda deseada.
[4]
Otra opción es hacer un doble clic en la esquina inferior derecha de la celda a
copiar y esto realiza la copia automáticamente, Figura 1.2.
Es una práctica bastante común el tener que evaluar funciones o fórmulas que
dependen de varios parámetros, algunos de los cuales se mantienen fijos mientras
que otros son variables.
Ejemplo1.
El siguiente ejemplo describe una función con dos parámetros y una variable.
Dónde:
- P0 es la población inicial y
Si queremos evaluar P(t) para diferentes valores de tiempo t en días, seguimos los
siguientes pasos:
[5]
P0 K k t P(t)
[6]
1.3.3.3 Construyendo rangos con un incremento fijo
[7]
1.4 Creación de macros empleando VBA
1.4.1 ¿Qué es una macro?
A la hora de trabajar con macros en Excel, deben tenerse claros ciertos conceptos
de lo que se llama programación orientada a objetos (OOP). No nos extenderemos
demasiado sobre la OOP, pero si definiremos a continuación los conceptos de
Objeto, Propiedades y Métodos.
Objeto.
Cuando en el mundo real nos referimos a objeto significa que hablamos de algo
abstracto que puede ser cualquier cosa. Por ejemplo podemos referirnos a objetos
como coche, silla, casa, etc.
Cuando decimos que la clase coche representa a todos los coches del mundo
significa que define como es un coche, cualquier coche. Dicho de otra forma y
para aproximarnos a la definición informática, la clase coche define algo que tiene
cuatro ruedas, un motor, un chasis,... entonces, cualquier objeto real de cuatro
ruedas, un motor, un chasis,... es un objeto de la clase coche.
Propiedades.
Cualquier objeto tiene características o propiedades como por ejemplo el color, la
forma, peso, medidas, etc. Estas propiedades se definen en la clase y luego se
particularizan en cada objeto. Así, en la clase coche se podrían definir las
propiedades Color, Ancho y Largo, luego al definir un objeto concreto como coche
ya se particularizarían estas propiedades a, por ejemplo, Color = Rojo, Ancho = 2
metros y Largo = 3,5 metros.
Métodos.
La mayoría de objetos tienen comportamientos o realizan acciones, por ejemplo,
una acción evidente de un objeto coche es el de moverse o lo que es lo mismo,
trasladarse de un punto inicial a un punto final.
[8]
1.4.3 Conceptos útiles para trabajar con macros en Excel
Un objeto Range está definido por una clase donde se definen sus propiedades,
recordemos que una propiedad es una característica, modificable o no, de un
objeto. Entre las propiedades de un objeto Range están Value, que contiene el
valor de la celda, Column y Row que contienen respectivamente la fila y la
columna de la celda, Font que contiene la fuente de los caracteres que muestra la
celda, etc.
Range, como objeto, también tiene métodos, recordemos que los métodos sirven
llevar a cabo una acción sobre un objeto. Por ejemplo el método Activate, hace
activa una celda determinada, Clear, borra el contenido de una celda o rango de
celdas, Copy, copia el contenido de la celda o rango de celdas en el portapapeles.
- Conjuntos.
Una conjunto es una colección de objetos del mismo tipo . Por ejemplo, dentro de
un libro de trabajo puede existir más de una hoja (WorkSheet), todas las hojas de
un libro de trabajo forman un conjunto, el conjunto WorkSheets.
Cada elemento individual de un conjunto se referencia por un índice, de esta
forma, la primera, segunda y tercera hoja de un libro de trabajo, se referenciarán
por WorkSheets(1), WorkSheets(2) y WorkSheets(3).
- Objetos de Objetos.
Es muy habitual que una propiedad de un objeto sea otro objeto. Siguiendo con el
coche, una de las propiedades del coche es el motor, y el motor es un objeto con
propiedades como caballos, número de válvulas, etc. y métodos, como
aumentar_revoluciones, coger_combustible, mover_pistones, etc.
En Excel, el objeto WorkSheets tiene la propiedad Range que es un objeto, Range
tiene la propiedad Font que es también un objeto y Font tiene la propiedad Bold
(negrita). Tenga esto muy presente ya que utilizaremos frecuentemente
Propiedades de un objeto que serán también Objetos.
Dicho de otra forma, hay propiedades que devuelven objetos, por ejemplo, la
propiedad Range de un objeto WorkSheet devuelve un objeto de tipo Range.
[9]
- Programación Orientada a Objetos o Programación Basada en
Objetos.
Hay una sutil diferencia entre las definiciones del título. Programación orientada a
Objetos, significa que el programador trabaja con objetos fabricados por él mismo,
es decir, el programador es quien implementa las clases para luego crear objetos
a partir de ellas. Lo que haremos nosotros, por el momento, será utilizar objetos ya
definidos por la aplicación Excel (WorkSheets, Range,...) sin implementar ninguno
de nuevo, por lo que en nuestro caso es más correcto hablar de programación
basada en objetos. Observe que esta es una de las grandes ventajas de la OOP,
utilizar objetos definidos por alguien sin tener que conocer nada sobre su
implementación, sólo debemos conocer sus propiedades y métodos y utilizarlos de
forma correcta.
[10]
Figura 1.6 Menú opciones.
[11]
Posteriormente en la barra de herramientas aparecerá la pestaña de Programador
Figura 1.8.
Este ejemplo ilustra como grabar una macro que permite escribir texto en una
celda.
1. Abra Excel y cree un nuevo documento con el nombre “ejercicio01”.
2. Elija la celda en la que quiera insertar algún fragmento de texto, por
ejemplo su nombre.
3. Seleccione en la barra Programador y el icono
4. En el cuadro de diálogo en la caja de texto de Nombre de la
macro2 escriba: “miPrimerMacro”, seguido en el cuadro de texto para
Método Abreviado escriba “m”.
[12]
6. Presione el botón detener (el cuadro azul de la Figura 2.0). Se ha
acabado de grabar su primer macro.
Para ejecutar una macro existen varias formas, la primera es ir a la barra de menú
<Programador/ Macros…> dar clic en Macros… y aparecerá un cuadro de diálogo
como la Figura 2.1 en seguida seleccione la macro que desea ejecutar y haga clic
en el botón <Ejecutar>.
La otra forma es, usar el método abreviado asignado sólo es necesario presionar
la tecla “ctrl” y sin dejar de presionarla la letra “m”, esta acción se denotará en lo
siguiente con “ctrl+m”.
[13]
Practica 1 “Grabar Macros”
Objetivo: Que el participante tenga nociones claras del uso de las macros,
empleando algunas de las herramientas que brinda el menú Programador de
Excel.
[14]
1.4.5 Manipulación de macros
Tras grabar una macro, se puede ver el código de macro con el Editor de Visual
Basic para corregir errores o modificar lo que hace la macro. Por ejemplo, si la
macro de ajuste de texto también tiene que aplicar el formato de negrita al texto,
se puede grabar otra macro para aplicar el formato de negrita a una celda y, a
continuación, copiar las instrucciones de esa macro a la macro de ajuste de texto.
El Editor de Visual Basic es un programa diseñado para que los usuarios
principiantes puedan escribir y editar fácilmente código de macro, y proporciona
mucha Ayuda en pantalla. No es preciso saber cómo se programa o se utiliza el
lenguaje de Visual Basic para realizar cambios sencillos en las macros. El Editor
de Visual Basic permite modificar macros, copiarlas de un módulo a otro, copiarlas
entre diferentes libros, cambiar el nombre de los módulos que almacenan las
macros o cambiar el nombre de las macros.
[15]
Figura 2.3 Editor de VBA.
[16]
Figura 2.5 Editor VBA.
Insertar procedimientos
Sub Nombre_Procedimiento
End Sub.
[17]
A continuación crearemos un procedimiento para poner el texto "Hola" en la
casilla A1.
Ejemplo 1
Sub Primero
Range("A1").Value = "Hola"
End Sub
Observe el código.
Range("A1").Value="Hola"
En esta línea se indica que trabajamos con un objeto Range. Para indicarle que
nos referimos a la casilla A1, encerramos entre paréntesis esta referencia.
De este objeto, indicamos que se quiere establecer un nuevo valor para la
propiedad Value, observe que para separar el objeto de su propiedad utilizamos la
notación punto.
Recuerde que el conjunto Range es un objeto que pende del objeto WorkSheets,
así por ejemplo el siguiente código haría lo mismo que el anterior.
WorkSheets(1).Range("A1").Value = "Hola"
Sub Primero
ActiveSheet.Range("A1").Value = "Hola"
End Sub
[18]
Si desea poner "Hola" (o cualquier valor) en la casilla activa, puede utilizar la
propiedad (objeto) Activecell de WorkSheets. Así para poner "Hola" en la casilla
activa de la hoja activa seria
Sub Primero
ActiveSheet.ActiveCell.Value = "Hola"
End Sub
Para terminar con este primer ejemplo. WorkSheets están dentro del Objeto
WorkBooks (libros de trabajo) y WorkBooks están dentro de Application.
Application es el objeto superior, es el que representa la aplicación Excel. Así, el
primer ejemplo, siguiendo toda la jerarquía de objetos quedaría de la forma
siguiente.
Sub Primero
Application.WorkBooks(1).WorkSheets(1).Range("A1").
Value = "Hola"
End Sub
[19]
Practica 2 “Observando los códigos de una macro en
Excel”
4) Generar una macro que ejecute a todas las anteriores y observe el código.
[20]
Códigos más comunes
Letra Negrita
Selection.Font.Bold = True
Letra Cursiva
Selection.Font.Italic = True
Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight
End With
Copiar
Selection.Copy
Pegar
ActiveSheet.Paste
[21]
Cortar
Selection.Cut
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess,
_ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar
Cells.Find(What:="Paty", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Insertar Fila
Selection.EntireRow.Insert
Eliminar Fila
Selection.EntireRow.Delete
Insertar Columna
Selection.EntireColumn.Insert
Eliminar Columna
Selection.EntireColumn.Delete
Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\video safe 3.xls"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\piscis.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
Una de las opciones más interesantes que tiene el Excel es la de utilizar los
“cuadros de control”.
Los cuadros de control se usan para crear verdaderos programas en Excel y
pueden ser de mucha utilidad.
Para poder visualizar esta barra es necesario dirigirse a Programador > Insertar
mostrando el contenido de la Figura 2.6.
[22]
Figura 2.6 Cuadro de control.
• Modo diseño
• Propiedades
• Ver código
Control numérico.
Seleccione propiedades
Aquí podemos cambiar entre otras cosas.
[23]
Una de las partes más fundamentales es “Modo Diseño” es la posibilidad de
cambiar cualquier cosa del Control, por ejemplo tamaño, ubicación, etc. Y para
poder probar su funcionamiento se debe salir de “Modo Diseño”.
Ejemplo 2
Otro de los botones más útiles que tiene la Barra de herramientas de “Cuadro de
Controles” es el “Cuadro Combinado”.
Primera Sección:
-Televisor
-Heladera
-Licuadora
-Monitor
-Teclado
Nombre a este rango de datos como “datos” (sin comillas) (Para nombrar un rango
de datos marque los datos y escriba el nombre en el “Cuadro de nombres”)
Segunda parte:
Seleccione propiedades
[24]
Podrá comprobar que en el “Cuadro combinado” se encuentran los datos
ingresados en la hoja3 y que cuando elige uno, éste se muestra en la celda A1.
Ejemplo 3
Esta vez haremos un botón que cuando se presione pase a otra hoja del Excel.
Por ejemplo se puede hacer un menú con varios botones que al presionarlos
pasen a las distintas opciones.
Por Ejemplo:
[25]
Seleccione el primer botón y haga clic en ver código
Hoja2.activate
Cierre el editor de Visual Basic y seleccione el segundo botón, haga clic en ver
código y escriba:
Hoja3.activate
Ejemplo 4
[26]
5. Elegir del Cuadro de Herramientas el control Cuadro de Texto y arrastrar
dibujando en el formulario UserForm1 el cuadro de texto a un lado de la
etiqueta Nombre. El cuadro de texto debe de estar vacío y su nombre será
Textbox1, el nombre solo aparecerá en el control.
[27]
10. Ahora de doble clic sobre el control Textbox2 para programarlo y
después se inserta el siguiente código:
[28]
Empleando formulas
Ejemplo 5.
Los datos que se preguntaran serán Nombre y Edad, los Días Vividos
se generaran automáticamente cuando insertes la edad. A continuación
se muestra como se deben de programar estos Controles:
Botón.
Private Sub CommandButton1_Click()
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox1.SetFocus
End Sub
Nombre.
Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
Edad.
Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
Rem aquí se crea la Formula
TextBox3 = Val(TextBox2) * 365
Rem El Textbox3 guardara el total de la multiplicación del Textbox2 por 365 Rem
El Comando Val permite convertir un valor de Texto a un Valor Numérico Rem
Esto se debe a que los Textbox no son Numéricos y debemos de Convertirlos
End Sub
[29]
Dias vividos.
Private Sub TextBox3_Change()
Range("C9").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub
Ejemplo 6.
Generaremos otro ejemplo, Crea el Siguiente Formulario con los siguientes datos:
• 5 Etiquetas
• 5 Textbox
• 1 Botón de Comando
Los datos que se preguntaran serán Nombre, Días Trabajados, Pago por Día,
Bonos y Sueldo Neto.
[30]
Private Sub TextBox2_Change()
Range("B9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Buscando información
[31]
Practica 3 “Formulario”
1) Dibujar un UserForm
2) Colocar una etiqueta para cada uno de los siguiente rubros, con su
respectivo Textbox y un Botón de Comando en el UseForm.
[32]
Bibliografía
[33]