taller 1 macros excel renee gonzalez martinez

39
Maracaibo, Venezuela , Septiembre 2010 Macros en Excel. Taller N1 Por: Ing. Reneé González Martínez C.I.: 11.888.960 Prof. La Universidad del Zulia Email: [email protected]

Upload: renee-gonzalez

Post on 30-May-2015

17.473 views

Category:

Education


6 download

DESCRIPTION

To learn a little bit about VB for Excel

TRANSCRIPT

Maracaibo, Venezuela , Septiembre 2010

Macros en Excel.Taller N⁰ 1

Por: Ing. Reneé González MartínezC.I.: 11.888.960

Prof. La Universidad del ZuliaEmail: [email protected]

Objetivos Especificos de los cursos

Reconocer el entorno de desarrollo de VBA en Excel.

Identificar los objetos de control básicos, a partir de ejercicios

prácticos.

Diferenciar las estructuras de control : If, Case, For, While.

Construir distribuciones probabilísticas usando funciones definidas

por otros usuarios.

Ejecutar simulaciones y pronósticos en Crystal Ball a partir de

macros

Construir gráficos a partir de los resultados de los pronósticos

Alcance del taller

Está orientado a facilitar el desarrollo de habilidades para la

programación de macros en Excel a partir de 4 sesiones.

Lo que no es el taller…

No es una clase magistral que presenta teorias o discute tesis.

Contenido de Clase 1

1.1. Definiciones Básicas: Macro, Entorno de Desarrollo Integrado,Variables,

Procedimientos, Estructuras de Control.

1.2. Configuración para el entorno de desarrollo de VBA para Excel.

1.3. Entorno de Desarrollo (IDE): Menu, Objetos de Control, Modo Diseño y

Modo de Ejecución, Editor de VBA.

1.4. Objetos de Control: De Formulario y ActiveX

Contenido (Continuación)

1.4.1. El Botón de Comando (Command Button)

1.4.2. El Botón de Opción (Option Button)

1.4.3. La Lista (Listbox)

1.4.4. La Lista Desplegable (Combobox)

1.4.5. El Contenedor (Frame)

1.5. Sintaxis Básicas de VBA: Dim, Sheets, Cells,

Activate, ClearContents, Msgbox, Range.

¿Qué es una macro?:

Es una serie de instrucciones almacenadas para ser ejecutadas

posteriormente a partir de una llamada. El uso de macros permite la

automatización de tareas repetitivas.

¿Con qué lenguaje de programación vamos a trabajar?

VBA (Visual Basic for Applications) es un lenguaje de macros de Microsoft

Visual Basic usado para programar aplicaciones bajo Windows, incluidas en

varias aplicaciones Microsoft. VBA es un subconjunto de Visual Basic 6.0.

1.1. DEFINICIONES BÁSICAS

Algoritmo

Es una secuencia de instrucciones que conforman un

modelo de solución para resolver un problema o ejecutar

una actividad. El algoritmo puede ser escrito

(pseudocódigo) representado en forma gráfica

(diagrama de flujo)

Un programa

Es un algoritmo escrito en un lenguaje de programación.

Por ello, se debe respetar la sintaxis y enmarcar la

solución del problema dentro de las características del

lenguaje de programación.

Ejemplos de Lenguajes de Programación: Lenguaje C,

Pascal, Fortran, Basic, html, Java.

Entorno de Desarrollo Integrado o IDE(Integrated Development Environment)

Es una aplicación, que consta de un editor de código, un traductor, un

depurador y un constructor de interfaz gráfica (GUI). Los IDE’s pueden

ser aplicaciones por sí solas o pueden ser parte de aplicaciones

existentes.

El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las

aplicaciones de Microsoft Office, lo que hace posible escribir sentencias

Visual Basic en forma de macros para Excel.

Los IDE proveen un marco de trabajo amigable para la mayoría de los

lenguajes de programación tales como: C++, Java, C#, Delphi, Visual

Basic , etc.

Entorno de Desarrollo Integrado o IDE(Integrated Development Environment)

El editor es un programa como “un procesador de textos” que

permite la escritura del código fuente (para lo cual debe

conocerse la sintaxis del lenguaje de programación).

El traductor es un programa que convierte el código fuente a

un código objeto y luego a un código ejecutable. El traductor

puede ser un compilador o un intérprete. El primero de ellos

revisa la sintaxis y si no se detectan errores hace la

traducción del código fuente a un lenguaje de bajo nivel

mientras que el intérprete hace la revisión línea por línea.

El depurador es un programa que facilita la revisión del

código.

El constructor de Interfaz gráfica facilita la construcción del

entorno gráfico.

Entorno de Desarrollo Integrado o IDE(Integrated Development Environment)

¿A qué programa del IDE corresponde la siguiente figura?

Una Variable

Es un espacio de memoria reservado para el almacenamiento de valores

que pueden cambiar durante la ejecución de un programa. Requiere de

un identificador o nombre y de un tipo de datos.

Ejemplo: Dim v as Integer, Dim x as Double, Dim p as String,

Public v1 as Integer, Public v2 as Double.

Un Procedimiento en VBA

Es un bloque de instrucciones que ejecuta una tarea específica.

Tiene un nombre o identificador y puede recibir o no parámetros.

Se puede llamar a un procedimiento desde distintos lugares del código.

Luego de su ejecución, el control del flujo del programa regresa al punto

que llamó al procedimiento.

Hacer click en un botón de comando se traduce en un procedimiento,

hacer un click en una lista se traduce en un procedimiento, una macro …

Los procedimientos private sub o sub son comunes en VBA.

Private Sub BotonDeComando _Click()

InputBox (“Ingrese el Valor de …”)

End Sub

1.2. Settings para el Programador de VBA.

Instalar Crystal Ball y Office 2007 (preferiblemente)

En Excel, ir a botón de Office y hacer click en el botón “Opciones de

Excel”

Hacer click en la casilla de verificación “Mostrar ficha Programador

En la cinta de opciones” y luego presionar “Aceptar”

1.2. Settings para el Programador de VBA.

En Excel, en la etiqueta “Programador”, ir a botón de “Visual Basic y

hacer click (con ello se muestra el editor de Visual Basic)

Hacer click en la etiqueta “Herramientas” y Seleccionar “Referencias”

Seleccionar los item mostrados y presionar “Aceptar”

1.3. Entorno de Desarrollo de VBA .

1.3. Entorno de Desarrollo de VBA .

Seleccione todas las filas y columnas del libro activo .

Presione botón derecho y seleccione “Formato de Celdas”

Seleccionar el color de fondo blanco

Haga click en el color blanco y presione “Aceptar”

1.4. Controles de Formularios Versus Controles Activex.

Ejercicio:

Crear dos botones de comando: Un botón de comando de los controles de

formulario y un botón de comando de los controles ActiveX .

Para cada botón escribir el siguiente código:

MsgBox "Hola. Soy el Prompt", vbOKOnly, "Soy el titulo“

1.4. Controles de Formularios Versus Controles Activex.

Propósito:

Establecer comparaciones en cuanto a nombre del control, forma de codificar y

alcance del código.

Analizar: ¿Cómo se puede reutilizar el código usando un control Activex?

Pasos para construir el 1er botón

1.4. Controles de Formularios Versus Controles Activex.

1. Hacer click en “Modo Diseňo”

2. Hacer click en el menu “Insertar”

y luego en el control de botón de

“ Controles de formulario”

3. Escribir el nombre de la macro y

presionar el boton “Nuevo”

Pasos para construir el 1er botón

4. Escribir el código en el editor

Para modificar el texto del botón

En Modo Diseňo, hace click con el

botón derecho

Hacer click en “Modificar texto” y

cambiar el nombre del texto: “Control de

Formulario”

Para ejecutar la macro, haga el clic en

el botón creado

1.4. Controles de Formularios Versus Controles Activex.

Para recordar lo que se quiere…

Pasos para construir el 2do botón

1.4. Controles de Formularios Versus Controles Activex.

1. Hacer click en “Modo Diseňo”

2. Hacer click en el menu “Insertar”

y luego en el control de botón de

“ Controles ActiveX”

Pasos para construir el 2do botón

1.4. Controles de Formularios Versus Controles Activex.

Para las propiedades del botón, haga click

derecho en el botón.

Aparece un menu emergente y haga click

en “Propiedades”

Pasos para construir el 2do botón

En la propiedad “Caption” escriba

“Control ActiveX”

En la propiedad “Name” escriba

“cmdMensaje”

Cierre la ventana “Propiedades”

Haga dobleclick en el botón en

estudio

Pasos para construir el 2do botón

Cierre la ventana para pasar a la interfaz

Escriba el siguiente código dentro del Private - End Sub

MsgBox "Hola. Soy el Prompt", vbOKOnly, "Soy el titulo“

Comparaciones

1.4. Diferencias entre Controles de Formularios Vs Controles Activex.

Controles Activex Controles de Formulario

Se codifican ante eventospromovidos por el usuario (Click,DobleClick, Cambios, etc.)

Se Codifican en macros(procedimientos)

El alcance del código es local a lahoja donde se halla el control

El alcance del código es globaldentro del libro

El código se halla dentro de unprivate sub /- end sub

El código se halla dentro del parsub – end sub

Para tener acceso al código bastacon hacer doble click en el objeto

Para tener acceso al código debeentrar al menu “Ver macro”

¿Con qué tipo de controles programamos ?

1.4.1. El Botón de Comando.

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Sub sumar()

„Ojo: Discutir Suma y sumar

Cells(7, 5) = Cells(7, 3) + Cells(7, 4)

End Sub

Sub Limpiar()

Range(Cells(7, 5), Cells(7, 3)).Select

Selection.ClearContents

End Sub

Sub Limpiar2()

ActiveSheet.Range("c7:e7").Select

Selection.ClearContents

End Sub

1.4.2. El Botón de Opción y el Control Contenedor.

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Private Sub CmdIraModelo_Click()

„ Si se selecciona la declinación exponencial

If OptDecExp = True Then

Sheets("Exponencial").Select

End If

„Si se selecciona la declinación hiperbólica

If OptDecHip = True Then

Sheets("Hiperbolica").Select

End If

End Sub

De acuerdo al código y a la interfaz,

identifique:

1. Tipo de controles son usados y nombre

de los controles

2. Acción de los botones

3. Número y nombre de las hojas del Libro

1.4.3. La Lista.

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Private Sub cmdOk_Click()

If ListBox1.ListIndex = 0 Then

MsgBox "PEMEX"

End If

If ListBox1.ListIndex = 1 Then

MsgBox "ECOPETROL"

End If

If ListBox1.ListIndex = 2 Then

MsgBox "PDVSA"

End If

If ListBox1.ListIndex = 3 Then

MsgBox "CHEVRON"

End If

End Sub

1.4.3. La Lista.

Pasos sugeridos:

1. Construya la Interfaz Gráfica 2. Construya una lista en excel, sombre la lista y

En el cuadro de nombre coloque Empresas

1.4.3. La Lista.

Ejercicio. 3. Haga click derecho en el objeto lista y en la

propiedad ListfFillRange asigne Empresas .

4. Escriba el código

Private Sub cmdOk_Click()

If ListBox1.ListIndex = 0 Then

MsgBox "PEMEX"

End If

If ListBox1.ListIndex = 1 Then

MsgBox "ECOPETROL"

End If

If ListBox1.ListIndex = 2 Then

MsgBox "PDVSA"

End If

If ListBox1.ListIndex = 3 Then

MsgBox "CHEVRON"

End If

End Sub

1.4.3. La Lista.

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Private Sub cmdOk_Click()

Select Case ListBox1.ListIndex

Case 0

MsgBox "PEMEX"

Case 2

MsgBox "ECOPETROL"

Case 3

MsgBox "PDVSA"

Case 4

MsgBox "CHEVRON"

End Select

End Sub

1.4.3. La Lista.

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Consideraciones:

1. ¿ Qué funciones o métodos corresponden

al control Lista? (Usar el editor para identificar

los métodos)

Private Sub cmdOk_Click()

txt1 = ListBox1.Text

End Sub

1.4.4. La Lista Desplegable.

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Consideraciones:

1. Cree una lista con dos elementos: Cuadrado y Cubo

2. Use la propiedad ListfillRange. Oculte la lista (en este caso

se halla oculta en “F”)

Private Sub cmdCalcular_Click()

Dim base As Double

Dim resultado As Double

base = Cells(7, 4)

If ComboBox1.ListIndex = 0 Then

resultado = base ^ 2

End If

If ComboBox1.ListIndex = 1 Then

resultado = base ^ 3

End If

ActiveSheet.Range("d8").Select

Cells(8, 4) = resultado

End Sub