excel manualvba

122
MANUAL DE CURSO: MS-EXCEL 2000 NIVEL III Authorized Technical Education Center Microsoft Microsoft Microsoft Microsoft

Upload: andrescortes

Post on 17-Dec-2015

15 views

Category:

Documents


2 download

TRANSCRIPT

  • MANUAL DE CURSO:

    MS-EXCEL 2000

    NIVEL III

    Authorized

    Technical Education

    Center Microsoft Microsoft Microsoft Microsoft

  • Excel nivel III Indice

    Indice Introduccin Que son las macros y qu es el lenguaje Visual Basic Cmo se comunica Visual Basic Aplication con Excel

    Introduccin a los modelos de objetos de Excel y VBA Objetos, Propiedades y Mtodos

    1- Trabajo con macros automticas. Grabacin de una macro sencilla. Asignacin de una macro a un botn en una hoja de clculo. Asignacin de una macro a un icono, a un objeto grfico, al men herramientas, a un mtodo abreviado del teclado

    2- Editor de Visual Basic para Excel. Descripcin de la Interfaz Que es un proyecto en Visual Basic; Explorador de Proyectos Que son controles Active X, Cuadro de Herramientas Editor de Cdigo Diseador de Formularios Ventana de Propiedades Barra de Herramientas estndar Modo de Ejecucin y de Diseo Programacin Orientada a Eventos Edicin de macros, visualizacin de Eventos, Mtodos y Propiedades. Impresin de un mdulo Visual Basic. 3- Procedimientos en Visual Basic. Conceptos bsicos sobre procedimientos. Cmo trabajan juntos los procedimientos para realizar una tarea completa. Cmo invocar a un procedimiento. Cmo organizar mdulos y procedimientos en un libro de trabajo. Cmo proteger procedimientos para que no sea utilizado por otro. Depuracin de errores en los procedimientos y tipos de errores posibles. Ejecucin paso a paso. Alternar puntos de interrupcin. 4- Creacin de Funciones personalizadas. Conceptos sobre las partes que componen una funcin. Variables en VBA. Utilizar y Combinar funciones de VBA y Excel. Creacin de funciones personalizadas para utilizar en el asistente de funciones.

  • Excel nivel III Indice

    5- Objetos, Propiedades y Mtodos en Visual Basic. Concepto de objetos como contenedores de otros objetos. Uso de controles en una hoja de clculo. Uso de objetos, propiedades y mtodos, en cdigo Visual Basic. Objetos Grficos. 6- Trabajo con Mens Personalizados. Conceptos sobre Mens. Creacin de una barra de men. Creacin de un men. Creacin de un tem de men. 7- Trabajando con cdigo Visual Basic en procedimientos. Utilizacin de la ventana local. Definicin de constantes. Estructuras de control en Visual Basic. 8- Trabajando con Custom Form. Desarrollo de aplicaciones con boxes de dilogo. Visualizacin de informacin, utilizando la funcin Msgbox. Creacin de un box de dilogo. Nuevos formularios modales y no modales. Visualizacin de un box de dilogo personalizado. Obteniendo informacin desde un box de dilogo personalizado. Ocultando un box de dilogo.

  • Excel nivel III Introduccin

    Pgina 1

    Introduccin

    Que son las macros y que es el lenguaje Visual Basic Una macro consiste en una serie de comandos y funciones que se almacenan en un mdulo de Visual Basic y que puede ejecutarse cuando uno quiera. Los primeros lenguajes de macros para hojas de clculos consistan en una serie de comandos que imitaban la interfaz del usuario, de esta manera solo se podan realizar tareas repetitivas. A partir de la Versin 5.0 de Excel se incorpora Visual Basic Aplication (VBA) como lenguaje de programacin de la librera de objetos de Excel. Visual Basic es un dialecto estructurado avanzado de Basic desarrollado por Microsoft, y previsto para el desarrollo de la aplicacin. La sintaxis de Visual Basic es similar a otros dialectos modernos de Basic, pero con muchas caractersticas adicionales. Se utilizan los tipos de datos siguientes: nmeros enteros, reales, strings, booleans, currency, fechas, y referencias del objeto. Entonces Visual Basic es el lenguaje con el cual se escriben las macros en Excel. Cmo se comunica Visual Basic Aplication con Excel Microsoft ofrece los objetos de sus distintas aplicaciones para ser automatizados a partir de VBA en cualquier aplicacin que comparta este tipo de tecnologa. Con VBA, los desarrolladores pueden combinar objetos Excel para la creacin de potentes sistemas de informacin. Excel tambin soporta OLE, as como un objeto de automatizacin y un controlador OLE. Este soporte OLE permite a los desarrolladores integrar fcilmente objetos de Excel en sistemas basados en otros entornos de desarrollo. Si bien Excel es la primera aplicacin que ofrece este tipo de tecnologa tambin, cada vez son mas las empresas que incorporan VBA como lenguaje y entorno de desarrollo a sus productos. Entonces no solo podemos encontrar VBA en Word, Excel, Power Point, Outlook, Proyect (miembros de la familia Office) sino tambin Corel Draw, Visio, AutoCad entre otros. Se pueden crear desarrollos que compartan las libreras de objetos de distintas aplicaciones siempre y cuando posean VBA. Y las aplicaciones estn instaladas en la maquina del usuario, con la licencia de uso correspondiente Por ejemplo podemos hacer una base de datos en Excel que se convine con tablas de Acces y recepcionar y enviar Mails por Outlook o a partir de las especificaciones ordenadas en una hoja de calculo crear un dibujo en Corel Draw o AutoCad

  • Excel nivel III Introduccin

    Pgina 2

    Dentro de Excel tenemos entonces adems de la interfase de Hoja de Calculo un editor de VBA donde podemos desarrollar nuestras aplicaciones, este editor es muy parecido al que viene con el lenguaje de programacin Visual Basic Este editor no es el nico lenguaje con el cual podemos controlar los objetos de Excel. Cualquier lenguaje que acepte automatizacin sirve para este propsito como ser Visual Basic (como aplicacin independiente), Delphi, C++ entre otros. VBA, no nos permite crear desarrollos independientes de las aplicaciones, o sea no se puede crear ejecutables independientemente del entorno donde fue creado. Por ejemplo si hacemos una sistema en Excel el mismo quedara grabado en el archivo .xls y no podr ser ejecutado desde fuera de Excel Esto abre un panorama inmenso a programadores y usuarios avanzados, ya que permite combinar la potencialidad de los distintos programas que comparten este tipo de tecnologa. Todas estas maravillas tienen un pequeo inconveniente para poder usar las macros de Excel de manera eficiente antes hay que aprender a programar en Visual Basic, por lo tanto las personas que tengan conocimientos de programacin van a sacar provecho rpidamente de estas utilidades. Los que no, precisarn una cuota importante de dedicacin para explotar VBA. Por suerte es un muy buen momento para aprender a programar porque las cosas son mucho ms fciles ahora que hace unos aos. Introduccin a los modelos de objetos de Excel y VBA El modelo de objetos de determinada Librera es la forma que estn diseados los objetos. Como adems de la Librera de Objetos nosotros estamos acostumbrados a usar el Excel nos va a ser muy fcil reconocer las distintas clases que conforman el modulo de objetos. La clase mas general es Application que representa a Excel en si mismo dentro de esta clase estn los libros, las hojas, las celdas, los grficos etc cada una ellas con sus propiedades y mtodos

  • Excel nivel III Introduccin

    Pgina 3

    Por otro lado tenemos tambin la librera de VBA donde estn todas las clases de Visual Basic como lenguaje.

    Por ejemplo dentro de la clase conversin de VBA se encuentran todas las funciones que nos permiten convertir datos. Por ahora resulta un poco confuso pero es bueno tenerlo como referente a medida que vayas avanzando le vas a ir encontrando sentido.

  • Excel nivel III Introduccin

    Pgina 4

    Objetos, Propiedades y Mtodos Un objeto es una entidad que tiene asociado un conjunto de mtodos, eventos y propiedades. Todos los objetos de Excel tienen Propiedades, Mtodos y Eventos, VBA es una herramienta con la que puede controlar los objetos Excel manipulando sus propiedades y mtodos en los distintos eventos Hagamos una analoga con la vida real que viene al caso. Pensemos en un objeto cualquiera digamos una bicicleta, esta bicicleta tendra propiedades. Una Propiedad es un atributo de un objeto que define una de las caractersticas del objeto, tal como su tamao, o un aspecto de su comportamiento, por ejemplo si est visible. Para cambiar las caractersticas de un objeto, se cambia el valor de sus propiedades, en nuestro ejemplo de la bicicleta estos serian algunos de sus Eventos Propiedades y Mtodos Eventos Objeto Propiedades

    Color = Cant. de cambios = Portaequipaje = Peso =

    Rojo 16 Si 10 Kl.

    Mtodos

    Al arrancar Al detenerse Al subirse Al frenar

    Pedalear Detenerse Tocar la bocina

    Rpido En 5 min Tres veces

    Hay propiedades a las que no se puede dar valor. En la ayuda de cada propiedad con F1 se indica si es posible leer y dar valores a la propiedad (lectura/escritura), leer slo el valor de la propiedad (slo lectura) o slo dar valor a la propiedad (slo escritura). Los mtodos son acciones (procedimientos asociados a un objeto) a diferencia de las propiedades no se modifican con = sino que se le pasan parmetros Los eventos son toda accin que puede ser reconocida por un objeto, dependiendo el tipo de objetos va haber distintos eventos. Los eventos pueden ocurrir como resultado de una accin del usuario o del cdigo del programa, tambin pueden ser originados por el sistema. Puede ser que el usuario detenga la bicicleta y ah se desencadenara el evento donde puede estar escrito nuestro cdigo por ejemplo podemos escribir que cuando se detenga se levante una banderita. Pero tambin puede ser que la

  • Excel nivel III Introduccin

    Pgina 5

    bicicleta choque con un rbol y tambin se detenga con lo cual tambin se levantara la banderita. Vamos ahora a un ejemplo de Excel Eventos Objeto (Sheets) Propiedades

    Sheets.Count Sheets.Application

    3

    Mtodos

    BeforeDoubleClick Activate Desactivate SelectionChange

    Sheets.Add Sheets.Copy Sheets.Delete

    Destino

    Cuando alguien hace doble Clic antes de generar una accin sobre Excel se va a ejecutar el cdigo que escribamos dentro Por ejemplo el usuario hace Doble Clic en la hoja que fue definido el evento, dentro del evento se le pregunta a la propiedad count cuantas hojas hay en total en este libro y se muestra un cuadro de dialogo. Entonces programar o hacer macros ser ir escribiendo en los distintos eventos de los objetos de Excel los cambios en las propiedades y eventos que queramos hacer. Suena fcil, claro porque es fcil pero requiere paciencia.

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 6

    Trabajo con macros automticas. Una gran ventaja que tenemos al aprender a programar en Excel con VBA es que podemos hacer una grabacin automtica de una macro y ver los comandos de Visual Basic que gener.

    En este capitulo aprenders a: Grabar una macro sencilla. Asignar una macro a un botn en una hoja de clculo. Asignar una macro a un icono, a un objeto grfico, al men herramientas, a un mtodo abreviado del teclado

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 7

    Grabacin de una macro sencilla. Vamos a empezar con un ejemplo muy sencillo que solo tiene el objetivo de adentrarnos en el mundo de las macros. Como vamos a trabajar con VBA durante todo el libro podemos hacer visible la barrita de herramientas de Visual Basic en Excel, sino podramos ir a Herramientas/Macros/Grabar nueva macro 1. Puls el Botn derecho del mouse sobre cualquier barrita de herramientas

    2. Esta barrita nos ser de mucha utilidad

    3. Para comenzar a grabar la macro vamos a cliequear el circulo azul (Grabar

    Macro). 4. Aparecer un cuadro de dialogo que es de suma importancia: 5.

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 8

    En el nombre de la macro escribiremos un nombre descriptivo sin espacios en blanco (por ej. PrimerMacro) y en el ComboBox que dice Guardar macro en elegiremos una de las tres opciones

    Libro de Macros Personales si queremos que la macro este disponible siempre que abramos Excel sin importar cual es el libro que este abierto. La macro se grabara en el archivo Personal.xls que est dentro de la carpeta Inicio en la carpeta de Office.

    Este libro si esta macro se usara nicamente cuando este abierto

    este libro.

    Libro Nuevo para que se grabe en un libro Nuevo obviamente elegimos Libro nuevo.

    La descripcin es simplemente un comentario que aparecer en la parte superior del cdigo generado por la grabadora de macros. El mtodo abreviado permitir ejecutar la macro con teclas rpidas.

    6. A partir de ahora todo lo que hagamos con el mouse o el teclado ser

    transformado en comandos de VBA, menos algunas cosas bsicas como mover el mouse de un lado para otro sin hacer clic. Entonces, vamos a seleccionar una celda cualquiera y vamos a escribir unas palabras, (por ej. Bienvenidos) luego le cambiaremos el color a la celda y detendremos la macro.

    7. Tenemos tres formas de detener una macro desde la barrita de detener

    macro que suele aparecer automticamente cuando comenzamos a grabar (si es que alguien no la cerro)

    8.

    Desde la barrita de visual Basic que activamos hace unos minutos (ntese que ahora el triangulo se convirti en un cuadradito). O desde Herramientas/macros/Detener macro Listo ya tenemos la macro creada para usarla basta con ir a Herramientas/macros o clickear en el boton de ejecutar macros de la barra de Visual Basic.

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 9

    Asignacin de una macro a un botn en una hoja de clculo. Para asignar la macro que creamos a un botn de comando dentro de una hoja de calculo primero tendremos que crear el botn y luego asignarle la macro que ya tenemos creada. Existen dos grupos de controles aparentemente iguales pero con propiedades y funcionamiento distintos. Los ms profesionales (bueno, con mas propiedades) se pueden usar haciendo clic el martillito y la llave inglesa de la barrita de herramientas de Visual Basic

    Los ms fciles de usar estn con botn derecho sobre cualquier barrita eligiendo Formularios

    Aparecer esta barrita

    Usaremos por ahora la el botn de comandos de la barra de formularios. Para esto simplemente dibujamos el botn de comandos y un cuadro de dilogo nos preguntara cual es la macro que queremos asociar al botn. Si la queremos definir otra macro botn derecho sobre el botn modificar macro.

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 10

    Asignacin de una macro a un icono, a un objeto grfico, al men herramientas, a un mtodo abreviado del teclado Para asignar una macro a un icono de una barra de herramientas debemos clickear botn derecho sobre cualquier barrita de herramientas y un clic en Personalizar.

    Una vez que esta abierto el cuadro de dilogo se pueden hacer todas las modificaciones que se necesiten del men y de las barritas de herramientas.

    Podemos crear una barrita nueva para usar con todas nuestras macros y los comandos que utilizamos con mas frecuencia, para eso hacemos un clic en nueva...

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 11

    Luego pondremos un nombre descriptivo, al aceptar la barrita esta creada. Este nombre es importante porque por medio de l podremos mas adelante ocultar o mostrar nuestros comandos desde VBA.

    Ahora podemos arrastrar nuestra macro desde la ficha comandos del cuadro de dialogo Personalizar

    Una vez arrastrado a la nueva barrita podemos hacer clic en modificar seleccin de la ficha de comandos o bien botn derecho sobre la carita feliz.

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 12

    A partir de este cuadro de dilogo podremos cambiar varias propiedades relevantes. El nombre del botn: (esto sirve para cambiar la ayuda rpida del botn)

    Cambiar la imagen del botn:

    Definir si queremos que se vea siempre el nombre o solo el nombre. Asignarle un hipervnculo.(con referencias al libro otros libros o direcciones de Internet) Asignarle la macro que hallamos creado con anterioridad. Para crear un nuevo elemento de men, primero podemos crear un nuevo grupo por ejemplo que este situado despus de la ayuda. Para crearlo arrastraremos desde la ficha de comandos de la categora Nuevo men, un nuevo men

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 13

    De la misma manera que hicimos con el botoncito podemos cambiar sus propiedades clickeando el botn derecho sobre el nuevo elemento del botn. Si queremos que este separado del resto del men podemos hacer un clic en iniciar grupo.

    No le asignaremos la macro al titulo para sino que la agregaremos abajo del mismo. Podemos elegir arrastrar un elemento de men bajo este titulo para solo tener solo texto o bien directamente la carita feliz para tener texto e imagen. Para hacer esto Simplemente vamos nuevamente a la categora macros del cuadro de dialogo personalizar y elegimos el elemento deseado.

  • Excel nivel III Captulo 1 Trabajo con macros automticas

    Pgina 14

    Esta operacin suele complicarse presta atencin antes de soltar el mouse que el cursor este en el cuadrado gris que aparece al llevar el elemento de men al lugar deseado . Una vez creado podemos cambiarle las propiedades (nombre, icono, macro etc) de la misma forma que lo hicimos anteriormente con el icono sobre la barra de herramientas. Podemos asignar macros a cualquier objeto grafico que insertemos sobre la hoja con el botn derecho en el objeto deseado por ejemplo en una imagen del clipart

    Para reasignar una combinacin de teclas (recordemos que al grabar una nueva macro nos ofreca la opcin de hacerlo), Clikeamos como si furamos a ejecutar una macro y elegimos Opciones y ah definimos la combinacin, ten en cuenta que si usas una combinacin que se usa en Excel, quedar la macro asignada

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 15

    Editor de Visual Basic para Excel.

    Dijimos en el capitulo anterior que Excel venia con un editor de VBA, en realidad es un programa independiente que nos permite ver los mismos archivos xls de Excel pero desde una ptica diferente. En este Captulo aprenders a:

    Conocer la Interfaz del Editor Saber que es un proyecto en Visual Basic. Usar el Explorador de Proyectos Saber que son controles Active X Usar el Cuadro de Herramientas Usar el Editor de Cdigo Disear Formularios Usar la Ventana de Propiedades Entender la Barra de Herramientas estndar Que es el Modo de Ejecucin y de Diseo Acerca de la Programacin Orientada a Eventos Editar macros, visualizacin de Eventos, Mtodos y Propiedades. Imprimir un mdulo Visual Basic.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 16

    Descripcin de la Interfaz. En el editor vamos a considerar a los Libros como Proyectos de desarrollo viendo a los libros como objetos contenedores de otros objetos con Propiedades Mtodos y Eventos.

    Visual Basic 6.0 (Como aplicacin independiente)

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 17

    Este editor es muy parecido al programa Visual Basic, esto es muy ventajoso porque nos vamos a acostumbrar a trabajar en un entorno que podremos aprovechar eventualmente en el futuro.

    Visual Basic Aplication (Dentro de Excel 2000)

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 18

    Descripcin de la Interfaz Podemos abrir el editor desde Herramientas/Macro/Editor de Visual Basic, tecleando las teclas rpidas Atl+F11

    o bien haciendo un clic en la barrita de Visual Basic El Editor es una aplicacin independiente de Excel lo puede notar al ver que en la barra de tareas de Windows presenta un icono separado

    Es muy parecido a la interfase del programa del lenguaje Visual Basic como podrn notar quienes ya han trabajado con ese producto. Al comienzo se suele complicar para organizarse dentro del editor por eso primero vamos a cerrar todas las ventanas y dejaremos solo la barra de men Estndar que viene por defecto.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 19

    Que es un proyecto en Visual Basic; Explorador de Proyectos Abr el explorador de proyectos y vers todos los libros que tengas abiertos, y los archivos ocultos (como por ejemplo el personal.xls o Eurotool.xla que suele venir con Office). Siempre que quieras encontrar algn objeto como ser un formulario o una macro que hiciste con anterioridad tens que abrir el explorador de proyectos.

    El explorador te muestra los mismos archivos de Excel que estn abiertos, con todos los objetos que lo componen, en la figura de arriba podes ver que hay varios archivos abiertos algunos tienen terminacin .xla y por ej. el acrobat PDFWriter es un archivo que contiene macros que se agreg en esta computadora al instalarse el Acrobat Writer. El archivo ejemplo.xls es el que se esta usando y esta visible desde la interface de Excel, dentro de la carpeta Microsoft Excel Objetos vemos las hojas que tiene el libro con sus nombres respectivos. Entre parntesis figura el nombre que se le dio a la etiqueta de la hoja, si lo cambiamos cambiar tambin en Visual Basic.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 20

    Editor de Cdigo Utilizamos la ventana Cdigo para escribir, mostrar y editar cdigo de Visual Basic. Es posible abrir tantas ventanas de Cdigo como mdulos tengas, por lo que pods ver fcilmente el cdigo en diferentes formularios o mdulos y copiarlo y pegarlo entre ellos. Para abrir la ventana de cdigo simplemente tenes que hacer doble clic en el modulo que queres editar. Si todava no tenes ningn modulo creado entonces sobre tu proyecto con el botn derecho elegs insertar mdulo y luego doble clic.

    El editor de cdigo tiene las facilidades de copiar y mover que tiene Word podes usar el mouse con la tecla control para copiar o cualquiera de tus formas preferidas.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 21

    El Cuadro Objeto Muestra el nombre del objeto seleccionado. Haga clic en la flecha situada a la derecha del cuadro de lista para mostrar una lista de todos los objetos asociados con el formulario. El Cuadro Procedimiento/Evento Presenta una relacin de todos los eventos reconocidos por Visual Basic para un formulario o control mostrado en el cuadro Objeto. Cuando selecciones un evento, el procedimiento de evento asociado con ese nombre de evento se muestra en la ventana Cdigo. Si aparece (General) en el cuadro Objeto, el cuadro Procedimiento presenta una relacin de todas las declaraciones y todos los procedimientos generales que se han creado para el formulario. Si ests editando cdigo del mdulo, el cuadro Procedimiento enumera todos los procedimientos generales del mdulo. En cualquier caso, el procedimiento seleccionado en el cuadro Procedimiento se muestra en la ventana Cdigo. Todos los procedimientos de un mdulo aparecen en una sola lista por la que se puede desplazar y que est ordenada alfabticamente por nombre. Si se selecciona un procedimiento utilizando los cuadros de lista desplegables de la parte superior de la ventana Cdigo, se mueve el cursor a la primera lnea del cdigo en el procedimiento seleccionado. Ya s que esto es complicado, lo iremos viendo a lo largo del libro.

    Barra de divisin Si se arrastra esta barra hacia abajo, se divide la ventana Cdigo en dos paneles horizontales, cada uno de los cuales tienen sus propias barras de desplazamiento. Pods ver diferentes partes del cdigo a la vez. La informacin que aparece en los cuadros Objeto y Procedimientos/Eventos se aplica al cdigo del panel que tiene el enfoque. Si se arrastra la barra a la parte superior o inferior de la ventana o se hace doble clic sobre ella, se cierra un panel.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 22

    Icono Ver procedimiento Muestra el procedimiento seleccionado. Slo se muestra un procedimiento cada vez en la ventana Cdigo. Icono Ver mdulo completo Muestra todo el cdigo del mdulo.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 23

    Diseador de Formularios Un Formulario es una ventana o cuadro de dialogo, es un control contenedor de otros controles con esto quiero decir que dentro de l se pueden dibujar controles Active x. Cuando hablamos de programas o aplicaciones habla comandos dispuestos para realizar determinada tarea, la forma que ese programa se comunica con el usuario es por medio de formularios. Para crear un formulario dentro de VBA, Clikeamos botn derecho sobre el explorador de proyectos y elegimos insertar formulario.

    Se abre el diseador de formularios y se agrega una carpeta nueva a nuestro proyecto con un nuevo formulario (user form).

    Podemos cambiar algunas opciones para modificar el editor, para cambiarlas vamos a Herramientas/Opciones .

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 24

    Comprobacin automtica de sintaxis: determina si Visual Basic debera verificar automticamente la sintaxis correcta despus de introducir una lnea de cdigo. Requerir declaracin de variables: determina si se necesitan declaraciones de variables explcitas en los mdulos. Al seleccionar esto, se agrega la instruccin Opcin explcit a las declaraciones generales de cualquier mdulo nuevo. Lista de miembros automtica: muestra una lista que contiene informacin que completara de forma lgica la instruccin en el punto actual de insercin. Informacin rpida automtica: muestra informacin sobre funciones y sus parmetros segn escribe. Sugerencia de datos automtica: muestra el valor de la variable sobre la que se sita el puntero. Slo est disponible en modo de interrupcin. Sangra automtica: permite tabular la primera lnea de cdigo; todas las lneas posteriores comenzarn en la ubicacin del tabulador. Ancho del tabulador: establece la anchura del tabulador, que puede variar de 1 a 32 espacios; el valor predeterminado es 4 espacios. Modificar texto con arrastrar y colocar: permite arrastrar y colocar elementos dentro del cdigo actual y de la ventana de Cdigo a la ventana Inmediato o Inspeccin. Vista completa predeterminada del mdulo: establece el estado predeterminado de mdulos nuevos para permitirle mirar en los procedimientos en la ventana de Cdigo como lista desplazable nica o slo como un procedimiento a la vez. No afecta a la forma en que se ven los mdulos abiertos actuales. Separador de procedimientos: permite mostrar u ocultar barras separadoras que aparecen al final de cada procedimiento en la ventana de Cdigo..

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 25

    Que son controles Active X, Cuadro de Herramientas Un control Active x es un programa compilado de manera de poder ser utilizado en un contenedor. Por ejemplo para poner una imagen en un formulario o una hoja de Excel necesitamos un control que tenga dentro de sus propiedades la capacidad de buscar un archivo de imagen y mostrarlo, todas las herramientas que estamos acostumbrados a ver, como ser el cuadro de texto para escribir

    , o el Combo Box para elegir

    una palabra o el option buttom para elegir una opcin, son todos controles Active x. No necesariamente los controles tienen que ser visibles, hay algunos controles como por ejemplo el mscomm32 que sirve para comunicarse con un MODEM o el puerto paralelo no es visible pero tiene propiedades mtodos y eventos y tambin precisa un contenedor para dibujarlo. Un contenedor puede ser un formulario (mas adelante veremos como hacer uno) o una hoja de Excel un documento de Word una diapositiva de Power Point, el Explorador de windows. Estos Active x son compilados en un archivo con extensin ocx y precisan ser registrados para que funcionen. Cuando instalamos Excel se registran algunos ocx, pero si usamos otros que nosotros tenemos registrados en nuestro sistema porque algn otro programa como Visual Basic o cualquier otra aplicacin lo hizo, e intentamos usar el libro de Excel en otra mquina dar un error. Para evitar ese error tenemos que copiar el archivo ocx correspondiente en la maquina del usuario y registrarlo desde VBA Herramientas/Controles Adicionales o con alguna otra herramienta como Regsvr32.exe El cuadro de herramientas muestra los controles estndares que vienen con Excel, cuando abrimos un formulario usualmente esta abierto pero si lo cerramos podemos volver a abrirlo con el icono desde la barra Estndar

    Pods personalizar el cuadro de herramientas agregndole pginas o agregando controles mediante el comando Controles adicionales del men Herramientas o con botn derecho sobre el mismo cuadro.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 26

    Demos un vistazo a las herramientas que tenemos aqu.

    Seleccionar objetos Seleccionar objetos es el nico elemento del cuadro de elementos que no dibuja un control. Cuando se selecciona, slo pods cambiar el tamao o mover un control que ya se haya dibujado en un formulario.

    Etiqueta Permite tener texto que no desees que cambie el usuario, como el ttulo debajo de un grfico.

    Cuadro de texto Contiene texto que el usuario puede introducir o cambiar.

    Cuadro combinado Permite dibujar un cuadro de lista combinado y un cuadro de texto. El usuario puede elegir un elemento de la lista o introducir un valor en el cuadro de texto.

    Cuadro de lista Se utiliza para mostrar una lista de elementos entre los que puede elegir el usuario. Puede desplazarse por la lista si sta contiene ms elementos de los que se pueden ver en un determinado momento.

    Casilla de verificacin Crea una casilla que el usuario puede elegir fcilmente para indicar si algo es verdadero o falso o para mostrar varias elecciones cuando el usuario puede elegir ms de una.

    Botn de opcin Permite mostrar varias elecciones entre las que el usuario slo puede elegir una.

    Botn de alternar Crea un botn que alterna entre activado y desactivado.

    Marco Permite crear una agrupacin grfica o funcional de controles. Para agrupar los controles, dibuje primero el marco y despus los controles dentro del marco.

    Botn de comando Crea un botn que el usuario puede elegir para realizar la accin de un comando.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 27

    Barra de tabulaciones Permite definir mltiples pginas para la misma rea de una ventana o cuadro de dilogo de la aplicacin.

    Pgina mltiple Presenta mltiples pantallas de informacin como un solo conjunto.

    Barra de desplazamiento Proporciona una herramienta grfica para desplazarse rpidamente por una larga lista de elementos o una gran cantidad de informacin, para indicar la posicin actual en una escala o como un dispositivo de entrada o indicador de velocidad o cantidad.

    Botn de nmero Un control de giro que se puede utilizar con otro control para aumentar o reducir los nmeros. Tambin lo puede utilizar para desplazarse hacia delante o detrs de un intervalo de valores o una lista de elementos.

    Imagen Muestra una imagen grfica de un mapa de bits, icono o metaarchivo en el formulario. Las imgenes mostradas en un control Imagen slo pueden ser decorativas y utilizan menos recursos que un Cuadro de imagen.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 28

    Ventana de Propiedades Seleccionando un objeto y presionando F4 accedemos a la ventana de propiedades de ese objeto. En esta ventana podemos cambiar las propiedades de los objetos mientras estamos en modo de Diseo o sea mientras no se este corriendo (ejecutando) el procedimiento o el formulario.

    Cada control tiene propiedades que le son propias para saber acerca de una propiedad en particular siempre podemos recurrir a la ayuda de VBA seleccionando la propiedad y apretando F1

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 29

    Es muy til el ejemplo que nos trae el help acerca de la propiedad.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 30

    Barra de Herramientas estndar Contiene botones que tienen accesos directos a algunos elementos de men utilizados con frecuencia.

    Puede hacer clic una sola vez en un botn de la barra de herramientas para realizar la accin representada por el botn. Puede seleccionar la opcin Informacin sobre herramientas de la ficha General del cuadro de dilogo Opciones si desea mostrar informacin sobre los botones de la barra de herramientas. Botones de la barra de herramientas

    Ver Alterna entre la aplicacin principal y el documento de Visual Basic activo.

    Insertar Abre un men para que se pueda insertar uno de los objetos siguientes en el proyecto activo. El icono cambia al ltimo objeto agregado. El objeto predeterminado es el formulario. Pero tambin se pueden insertar Mdulos y Mdulos de clase

    Guardar Guarda el documento principal, incluidos el proyecto y todos sus componentes: formularios y mdulos.

    Ejecutar Sub/UserForm o Ejecutar macro Ejecuta el procedimiento actual si el cursor est en un procedimiento, ejecuta el UserForm si un UserForm est activo actualmente o ejecuta una macro si no est activa la ventana Cdigo ni un UserForm.

    Interrumpir Detiene la ejecucin de un programa y cambia al modo de interrupcin.

    Restablecer Borra las variables de nivel de mdulo de la pila de ejecucin y restablece el proyecto.

    Modo de diseo Activa y desactiva el modo de diseo.

    Explorador de proyectos Abre el Explorador de proyectos que muestra una lista jerrquica de los proyectos abiertos actualmente y su contenido.

    Ventana de Propiedades

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 31

    Abre la ventana de Propiedades para que puedan verse las propiedades del control seleccionado.

    Examinador de objetos Muestra el Examinador de objetos, que presenta una lista de bibliotecas de objetos, biblioteca de tipos, clases, mtodos, propiedades, eventos y constantes que se pueden utilizar en cdigo, as como los mdulos y procedimientos definidos para el proyecto.

    Cuadro de herramientas Muestra u oculta el cuadro de herramientas que contiene todos los controles y los objetos insertables (Como un grfico de Microsoft Excel) disponibles para la aplicacin. Slo est disponible cuando est activo un UserForm.

    Asistente de Office Abre el Asistente de Office donde puede obtener ayuda sobre la ventana, el comando o el cuadro de dilogo que est activo.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 32

    Modo de Ejecucin y de Diseo Existen dos modos de ver un programa: A modo de Diseo cuando estamos escribiendo el programa, estamos dibujando el formulario cambiando sus propiedades con la ventana de propiedades y dibujando los formularios, agregando controles etc.

    A modo de ejecucin cuando el programa esta corriendo o ejecutndose eso significa que VBA interpret los comandos que escribimos y estos comandos se estn activando.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 33

    Modificar una propiedad a modo de ejecucin significa que ante determinado evento por ejemplo alguien hace un clic en un botn de comando se cambia una propiedad de un objeto por ejemplo el fondo del formulario se pone rojo. Para pasar a modo de ejecucin basta con correr la macro o el formulario y para pasar a modo de diseo basta con detener la ejecucin.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 34

    Programacin Orientada a Eventos Existen distintos tipos de programas. En los primeros tiempos de las computadoras los programas eran de tipo secuencial (tambin llamados tipo batch). Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los clculos e imprime o guarda en el disco los resultados. De ordinario, mientras un programa secuencial est ejecutndose no necesita ninguna intervencin del usuario. A este tipo de programas se les llama tambin programas basados u orientados a procedimientos o a algoritmos (procedural lenguajes). Este tipo de programas siguen utilizndose ampliamente en la actualidad, pero la difusin de los PCs ha puesto de actualidad otros tipos de programacin. Los programas interactivos exigen la intervencin del usuario en tiempo de ejecucin, bien para suministrar datos, bien para indicar al programa lo que debe hacer por medio de mens. Los programas interactivos limitan y orientan la accin del usuario. Por su parte los programas orientados a eventos son los programas tpicos de Windows, tales como Netscape, Word, Excel, PowerPoint y otros. Cuando uno de estos programas ha arrancado, lo nico que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos. El usuario dice si quiere abrir y modificar un fichero existente, o bien comenzar a crear un fichero desde el principio. Estos programas pasan la mayor parte de su tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momento determinado son variadsimas, y exigen un tipo especial de programacin: la programacin orientada a eventos. Programacin orientada a eventos o programacin orientada a objetos (en el sentido mas liviano del termino) implica que el programador no va a estar pensando en un diagrama de flujo sino que va a pensar directamente en los objetos que necesita y el comportamiento del usuario. Vamos a programar directamente sobre los eventos de los objetos. Si queremos que se grabe determinados datos de un formulario pondremos un botn y dentro del evento clic del botn escribiremos el cdigo necesario. Me parece que ya es hora que veamos la macro que hicimos en el capitulo 1 pero directamente desde el editor de VBA.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 35

    Edicin de macros, visualizacin de Eventos, Mtodos y Propiedades. Dentro de la carpeta Mdulos figura el modulo1 que se cre automticamente cuando grabaste la macro y le dijiste que la creara en Este Libro. Cuando hacemos por primera vez una macro y le decimos que la grabe en el libro de macros personales, se crea el archivo personal.xls y los comandos estarn dentro de un procedimiento con el nombre de la macro que le dimos dentro de la carpeta Mdulos en el VBAproyect personal.xls. Si haces doble clic en el modulo te va a aparecer la el editor de cdigo con los comandos de VBA que invento la grabadora de macros. Para VBA este cdigo es un procedimiento que veremos en detalle mas adelante, el cdigo que tiene un comilla simple delante es comentario que VBA no interpreta nos sirve para recordar que quisimos hacer con este procedimiento o con determinada lnea. La segunda lnea de cdigo ejecutable hace referencia cuando escribiste bienvenido en una celda recordas en el capitulo 1?, bien ah estamos cambiando la propiedad Formula R1C1 del objeto ActiveCell y estamos por la palabra Bienvenidos. En este caso este objeto no es un control Active X sino que es un objeto de la librera de Excel.

    Si queremos ver los eventos de los objetos de Excel como ser la Hoja 1 o El libro en general hacemos doble clic sobre el Explorador de Proyectos en Hoja1 o ThisWorkbok respectivamente. Vamos a ver que eventos tiene la Hoja1, doble clic en hoja1

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 36

    a la izquierda eleg Worksheet para que a la derecha te aparezcan todos los eventos que tiene la Hoja1. Por defecto trae el evento SelectionChange pero podemos elegir de la derecha cualquier evento. Vamos a elegir activate.

    Dentro del evento Activate escribimos un comando para que al activarse la hoja aparezca un cartelito de bienvenida, solo para ver el funcionamiento del evento.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 37

    Grbalo y anda a Excel para ver si funciona Simplemente activa la hoja y el evento activar el mensaje.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 38

    Impresin de un mdulo Visual Basic. Para imprimir el modulo estando abierto vas a Archivo/Imprimir

    Opciones del cuadro de dilogo

    ImpresoraImpresoraImpresoraImpresora Identifica la impresora en la que se va a imprimir. IntervaloIntervaloIntervaloIntervalo Determina el intervalo que se imprime:

    Seleccin: imprime el cdigo seleccionado actualmente. Mdulo actual: imprime los formularios y/o el cdigo del mdulo seleccionado actualmente. Proyecto actual: imprime los formularios y/o el cdigo de todo el

    proyecto. ImprimirImprimirImprimirImprimir Determina lo que se va a imprimir. Puede seleccionar todas las opciones que desee, dependiendo de lo que haya seleccionado en Intervalo.

    Imagen de formulario: imprime las imgenes del formulario. Cdigo: imprime el cdigo para el intervalo seleccionado.

    Calidad de impresinCalidad de impresinCalidad de impresinCalidad de impresin Determina si se va a imprimir con calidad alta, media, baja o borrador.

    Imprimir en un archivoImprimir en un archivoImprimir en un archivoImprimir en un archivo Si se selecciona, la impresin se enva al archivo especificado en el cuadro de dilogo Imprimir en un archivo. Este cuadro de dilogo aparece despus de elegir Aceptar en el cuadro de dilogo Imprimir.

    AceptarAceptarAceptarAceptar Imprime la seleccin.

  • Excel nivel III Captulo 2 Editor de Visual Basic para Excel

    Pgina 39

    CancelarCancelarCancelarCancelar Cierra el cuadro de dilogo sin imprimir.

    ConfigurarConfigurarConfigurarConfigurar Muestra el cuadro de dilogo Configurar Impresin.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 40

    Procedimientos en Visual Basic. En este captulo vas a aprender:

    Conceptos bsicos sobre procedimientos. Cmo trabajan juntos los procedimientos para realizar una tarea completa. Cmo invocar a un procedimiento. Cmo organizar mdulos y procedimientos en un libro de trabajo. Cmo proteger procedimientos para que no sea utilizado por otro. Depuracin de errores en los procedimientos y tipos de errores posibles. Ejecucin paso a paso. Alternar puntos de interrupcin.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 41

    Conceptos bsicos sobre procedimientos. Ya hemos estado hablando de procedimientos, al grabar la macro automtica desde Excel se cre un procedimiento en un modulo de VBA Entonces un procedimiento sera una secuencia con nombre de instrucciones que se ejecutan como una unidad Todo el cdigo ejecutable debe estar contenido en un procedimiento. Esto significa que no podemos escribir cdigo que queramos que se ejecute fuera de los procedimientos Para crear un nuevo procedimiento no hace falta crear una macro desde Excel solo tenemos que ir al modulo del libro y escribir sub y el nombre del procedimiento

    Entre los parntesis podemos definir variables de esta manera podemos pasarle parmetros a un procedimiento cuando lo invocamos Podemos crear cuantos procedimientos queramos. Pueden estar todos en el mismo modulo o estar en distintos mdulos, normalmente agrupamos todos los procedimientos que tienen algo en comn en un mismo modulo para que sea mas fcil encontrarlo y llevarlo a otro proyecto pero si el libro esta abierto no importa en que modulo se encuentre el procedimiento va a estar disponible para invocarlo.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 42

    Cmo trabajan juntos los procedimientos para realizar una tarea completa. Vamos a ver un ejemplo de importacin de archivo por medio de una macro, y veremos los siguientes puntos:

    Cmo invocar a un procedimiento. Cmo organizar mdulos y procedimientos en un libro de trabajo. Cmo proteger procedimientos para que no sea utilizado por otro. Depuracin de errores en los procedimientos y tipos de errores posibles. Ejecucin paso a paso. Alternar puntos de interrupcin.

    Excel es muy usado para formatear inteligentemente datos que vienen de un main frame o por ejemplo de un programa contable y se desea pasar a otra base de datos Imaginemos que un programa contable nos enva un archivo de texto con la facturacin del mes separada por tabulaciones y nosotros lo queremos dividir por tipo de factura y ordenar por fecha tambin vamos a buscar con el cdigo del cliente el nombre y direccin en una base de datos. Como queremos que este disponible siempre vamos a crear los procedimientos necesarios para esta tarea en el archivo personal.xls Si no tens el Personal.xls en el explorador de proyectos tendras que crear una macro automtica desde Excel y grabarla en el libro de macros personales Excel automticamente crear el libro.

    Para que sea mas fcil ubicar el modulo donde se van a grabar los procedimientos que estamos haciendo y no se confundan con otros para otros propsitos vamos a nombrar el modulo. Clickeamos en modulo1 y con F4 vemos las propiedades.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 43

    Cambiamos el nombre y cerramos la ventana de propiedades. Primero importaremos el archivo (solicitar al profesor el archivo) Vamos a crear una macro automtica para que nos facilite la escritura Como es una tarea un poco compleja lo vamos a dividir por procedimientos para que sea mas fcil interpretarlo en el futuro. Desde Excel grabamos una macro con el nombre borrame (la nombramos borrame para que no se acumulen muchas macros que solo sirven para ver los comandos, de esta manera la prxima que hagamos la va a sobre escribir) Con la macro grabando vamos a archivo abrir, elegimos seleccionamos archivo de texto

    se abrir un asistente, elegimos Delimitado porque las columnas pueden tener distinto ancho, como el titulo no nos interesa comenzamos a importar por la fila 5 y el origen de archivo Windows.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 44

    luego elegimos tabulacin como separador

    En el paso 3 hay una diferencia entre el asistente del Excel 97 y el 2000 en el 2000 se agrego avanzado para evitar los problemas cuando el separador decimal de los montos fueran distintos a la configuracin regional de la mquina

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 45

    Finalmente obtenemos el archivo, se creo una hoja con el nombre del archivo

    Para ves lo que hicimos vamos con Atl + F11 a VBA, es inevitable que si grabamos el personal.xls las nuevas macros vallan a parar a un nuevo modulo, entonces siempre nos fijamos en el ultimo modulo para encontrar la macro que acabamos de hacer. Como podemos ver todo el asistente se ve resumido en un solo comando con todos los parmetros que le fuimos dando.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 46

    Como asumimos que el archivo cambia todos los meses El parmetro que no podemos dejar fijo es el nombre del archivo porque sino todos los meses va a buscar el mismo archivo y no nos sirve

    Primero vamos a llevarnos este comando a nuestro procedimiento (ntese que al final del rengln hay un guin bajo eso significa que el comando sigue abajo). Para eso basta con seleccionar copiar ir a nuestro procedimiento y pegar. Lgicamente que bastara cambiarle el nombre al este procedimiento borrame pero como ya definimos uno antes entonces vamos al modulo modImportarArchivo y dentro del procedimiento proImportarArchivo lo pegamos

    Vamos a ponerle un comentario arriba de todo para que cuando venga otra persona a ver de que se trata esto lo entienda, en realidad en un tiempito nosotros tampoco nos vamos a acordar. Te aconsejo en tus primeros pasos con VBA comentar todo es una buena forma de aprender y clarificar lo que ya sabes.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 47

    Para escribir un comentario basta con escribir delante de la frase una comilla simple.

    Para poder cambiar el archivo que vamos a abrir vamos a necesitar definir una variable de tipo string para almacenar la ruta del archivo elegido

    Ahora cargaremos esta variable con un comando de VBA que nos proporciona a partir de una interface de windows (Abrir Archivo) la ruta elegida por el usuario. El objeto Application esta por encima del los otros objetos de Excel nos sirve para abrir libros, guardar como, encontrar un archivo, saber cual es la aplicacin activa etc. Nosotros vamos a usar getOpenfilename pero como no sabemos bien que parmetros darle vamos a escribir application luego el punto para que nos traiga las propiedades y mtodos de la clase elegimos GetOpenFilename y vamos a apretar F1 para obtener ayuda. Y clikeamos en donde dice ejemplo (para no tener que leer tanto).

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 48

    Analicemos el ejemplo.

    La variable sera fileToOpen, para mi gusto un desastre, primero porque no la definieron como nosotros o sea que es de tipo Variant porque habamos dicho que cuando no definamos una variable VBA la crea como Variant. Despus de application hay un guin bajo lo cual significa que sigue abajo. Las tres lneas de abajo validan la variable en el caso que el usuario elija cancelar desde el cuadro de dialogo que presenta GetOpenFilename (paciencia ya lo vamos a ver), por ahora copiemos todo para nuestro procedimiento. Fijate que en el ejemplo que estoy escribiendo como deje incompleta VBA lo pone rojo lo cual significa que esta mal escrito, pero no te confes porque hay veces que algunas lneas estn mal.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 49

    Despus de cargar la variable, vamos a ver si strNombreArchivo vale falso si es as nos vamos del procedimiento con exit sub sino continuamos con el procedimiento. Fijate que tambin cambiamos el signo de la validacin por un = y el parmetro del asistente por la variable esto es fundamental.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 50

    Bueno corrigiendo las cositas quedara as no?

    Que te parece si lo ejecutamos, para eso podemos ir a Excel y ejecutarlo como Macro o directamente desde ac con F5 o un clic en el triangulito azul

    La otra forma es ir paso a paso, o sea comando por comando lo cual en este caso es mucho ms didctico para eso F8. Entonces estando el cursor dentro del procedimiento apretamos la tecla F8 Se ilumino en amarillo la primer lnea, se ejecutan las lneas despus de pasar por ellas lo cual es bueno para controlar las variables ya vas a ver. F8 otra vez.

    Notaste que salteo la lnea dim, eso es porque las variables se cargan ni bien se accede al procedimiento por eso en realidad da lo mismo donde estn escritas

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 51

    pero conviene que estn todas arriba de todo por una cuestion de practicidad para leerlas. Si pasas el mouse por arriba de la variable strNombreArchivo te cuenta cuanto vale por ahora o sea nada. Esto que parece una bicoca es en realidad algo muy til y que un viejo programador de Cobol o Pascal hubiera amado.

    Bien F8 otra vez y aparece el cuadro de dialogo famoso. Buscamos el directorio y elegimos el archivo de texto que viene con el manual. Viste que abajo dice Facturacin, eso porque nos hicimos los cancheros al invocar este cuadro de dialogo. (revisa mas arriba)

    Al aceptar no se abri ningn archivo lo nico que hicimos hasta ahora es cargar en nuestra variable el path elegido por el usuario. Ves que ahora la variable vale la ruta elegida.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 52

    F8 y valida que no sea falso Opss, primer error, Felicitaciones en este momento es que varios alumnos de mis clases se levantan y se van, otros me miran y piensan este de ac no sabe nada. Bueno en realidad hasta que no te aparece un error se puede decir que no empezaste a programar uno debera ponerse contento con los errores porque es cuando mas se aprende.

    Basta de filosofar que dice ac que los tipos no coinciden o sea que estamos tratando de comparar la variable tipo string con un bolean. Lo mas fcil va a ser pasar la variable a Variant entonces cuando el usuario elija cancelar va a comparar con un bolean pero si elige un archivo compara con un string. Manos a la obra, si clikeamos finalizar es como detener sino sigue activo. En este caso podemos finalizar porque son cambios grandes los que tenemos que hacer. Vamos a cambiar str por var y string por variant

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 53

    Como ya probamos la primer parte, vamos a poner un punto de interrupcin para que corra el procedimiento hasta donde llegamos para eso hacemos un clic con el mouse en la parte Izquierda de la lnea donde queremos que se detenga Aparecer un redondelito rojo o marrn depende lo daltnico que seas.

    Ahora podemos correr el programa con F5.

    Viste que se detuvo ah donde estaba el punto que cargo la variable. Desde ac F8 nuevamente para ir paso a paso.

    Salteo el Exit Sub porque al comparar la variable con False no es igual (hubiese sido igual si el usuario elega cancelar en vez de un archivo. Ahora dos veces mas F8 y se ejecuta el asistente con la variable que acabamos de cargar.

    Al pasar por el asistente se creo un nuevo libro de excel con el archivo de texto. Tene cuidado que no quede en amarillo End Sub porque significa que todava esta corriendo el procedimiento y esto te deshabilitara muchas funciones de Excel por eso para terminar o bien haces un clic en Parar macro o apretas otra vez F8 para que termine Si volves a ejecutar la macro primero cerra el libro que acabas de abrir para no hacerte lio y ojo al cerrarlo no lo grabes para evitar que se sobre escriba y pierdas el archivo original. Ya tenemos el archivo de texto en Excel, ahora vamos a ir recorriendo las filas y de acuerdo el tipo de facturas lo vamos a agrupar. Para eso inventamos un nuevo procedimiento para que no quede todo amontonado.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 54

    Te acords no? Sub y el nombre del procedimiento debajo del end Sub. En este caso podemos escribir sub proDistribuirFacturas

    Grabemos una macro con el nombre borrame para insertar dos hojas una que se llame FacturasA y otra FacturasB. El resultado es el siguiente, por medio del objeto Sheet agregaste, nombraste y seleccionaste las hojas, facil no?

    Lo llevamos a nuestro nuevo procedimiento

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 55

    Vamos a hacer unos cambios primero borramos la seleccin de la hoja FACMAYO porque por un lado el usuario puede elegir otra hoja el mes que viene y nos dara error por otro no hace falta porque ya esta seleccionada, es la nica que hay hasta ahora. Grabemos otra macro para ponerle los ttulos a las hojas

    Esto funcionaria perfecto pero lo podemos depurar un poquito para que no quede tanto cdigo y nos quedara as:

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 56

    Ac se nos presenta un problema, tenemos que volver a la hoja que importamos para ir trayendo las filas a las distintas hojas, bien, el problema en cuestin es que no sabemos como se llama porque cambia todos los meses, adems la variable donde esta el nombre la definimos en otro procedimiento. Tenemos dos soluciones (miles pero elijo dos). Podemos definir la variable strNombreArchivo como modular pero igualmente tendramos algunas complicaciones para saber el nombre de la hoja porque en esta variable esta el path completo. Dos, cargar una variable con el nombre de la hoja al empezar este procedimiento. Entonces...

    Ahora cuando queramos ir a esta hoja usaremos la variable.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 57

    El objeto Range es muy til, nos sirve para ir dentro de la hoja a una celda determinada, en este caso vamos a la celda B2 para ver de que tipo es la primera factura. Si en la celda el valor es A entonces que vaya a la hoja con las facturas A sino a la otra. (en el capitulo 7 vamos a ver todas estas cosas raras de if else y otras yerbas en detalle.) Pero antes de ir a la otra hoja tenemos que copiar en el portapapeles los datos del primer dato que queremos llevar por eso de la celda que estamos le vamos a decir que valla uno para la izquierda. Para hacer eso usamos el mtodo offset de la siguiente manera

    Como ves tiene parmetros 0,1 el 0 corresponde a las filas y el -1 a las columnas De esta manera ahorramos varios pasos porque no nos movemos, con lo cual no tenemos que volver y no usamos variables. Ahora tenemos que ir a la hoja correspondiente y pegarlo en el ultimo rengln disponible, para eso te cuento un truco nos vamos a la fila 60000 y de ah subs con Control flechita para arriba y de ah uno para abajo para no borrar el ultimo.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 58

    Este cdigo funciona para el primer rengln de los datos importados pero no podemos repetir esto por todos los renglones por un lado porque no sabemos cuantos renglones hay adems que seria demasiado cdigo Para eso sirven los loops que vamos a ver mas adelante en el capitulo 7 pero por ahora vamos a usar la instruccin do While (hacelo mientras se cumpla una condicin) El do while repetir lo que escribamos en el medio hasta que la condicin sea falsa.

    Como veras hay varios cambios antes de entrar al do while tenemos que estar uno mas arriba para facilitar la ubicacin dentro de la hoja con los datos. (B1 en vez de B2). El do while se va ejecutar hasta que en la celda no halla nada osea que halla llegado al final de la columna La primera linea despus del Do While bajamos una (esto sirve para la segunda vuelta).

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 59

    Comparamos para saber para donde ir y copiamos. Vamos a la otra hoja y pegamos en la ultima. Funciona bien pero tendramos que agregar los datos de derecha (Monto y Proveedor) Quedaria asi:

    Como podes ver al pegar usamos pasteSpecial en ves de paste para no tener que ir hasta la celda y despus volver. Una ventaja es que cada hoja guarda el valor de la celda activa con lo cual con solo ir a la hoja el cursor queda en mismo lugar que estaba cuando nos fuimos. Vamos a crear un ultimo procedimiento para ejecutar los otros dos. Debajo de un End Sub escribimos sub proFacturacion y dentro invocamos a los otros dos procedimientos. La ultima lnea es un mensaje para avisar que todo sali bien

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 60

    Tenemos terminada la macro no te olvides de guardar el personal.xls que fue donde estuvimos haciendo todo. Para Borrar los mdulos que no necesitamos tenemos que posisionarnos sobre el explorador de proyectos con el botn derecho elegimos quitar modulo, nos va a ofrecer si lo queremos exportar, le decimos que no. Exportar es til para llevar cdigo de un lugar a otro. Al exportar un modulo se crea un archivo de texto con el cdigo y la terminacin bas. Podemos proteger el modulo para que nadie lo pueda ver. En VBA vamos a Herramientas Propiedades de VBAProject

    En las propiedades encontramos dos fichas en la primera (General),

    El Nombre de proyecto identifica un componente en el Registro de Windows y el Examinador de objetos. Es importante que tenga un nombre exclusivo.

  • Excel nivel III Captulo 3 Procedimientos en Visual Basic

    Pgina 61

    Si quisiramos podramos asociar un archivo de ayuda, existen muchos programas para crear archivos de ayuda por ej. Uno llamado RoboHelp.

    La descripcin del proyecto establece el texto descriptivo que se muestra en el panel de descripcin de la parte inferior del Examinador de objetos.

    Los Argumentos de compilacin condicional difcilmente los vallas a usar pero es una posibilidad que tiene VBA.

    La compilacin condicional se puede utilizar para ejecutar de forma selectiva determinados bloques de cdigo, por ejemplo, instrucciones de depuracin que comparen la velocidad de distintos mtodos de enfocar una tarea de programacin, o adaptando una aplicacin para distintos idiomas.

    Bien para bloquear el proyecto y ponerle contrasea esta claro no? Si te olvidaste la contrasea no va a ser fcil abrirlo, En Internet hay algunos programitas truchos para abrir estos mdulos con lo cual tampoco es del todo seguro.

    Recin va a funcionar el bloqueo cuando salgas (grabando) del Libro y vuelvas a entrar.

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 62

    Creacin de Funciones personalizadas En este captulo aprenderas lo siguiente:

    Conceptos sobre las partes que componen una funcin. Variables en VBA. Utilizar y Combinar funciones de VBA y Excel. Creacin de funciones personalizadas para utilizar en el asistente de funciones.

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 63

    Conceptos sobre las partes que componen una funcin Cuando escribimos cdigo para automatizar tareas de Excel lo hacemos como ya vimos en un Modulo dentro del proyecto del libro. Existen procedimientos sub y procedimientos Function (llamadas funciones). Podemos definir a un procedimiento Function como una serie de instrucciones de Visual Basic encerradas entre dos instrucciones Function y End Function. Un procedimiento Function es similar a un procedimiento Sub, aunque una funcin puede devolver adems un valor. Un procedimiento Function acepta argumentos, como pueden ser constantes, variables o expresiones que le pasa el procedimiento que efecta la llamada. Si un procedimiento Function no tiene argumentos, la instruccin Function debe incluir un par de parntesis vacos. Una funcin devuelve un valor asignndolo a su nombre en una o ms instrucciones del procedimiento. Entonces la diferencia entre un procedimiento y una funcin es que el procedimiento no nos devuelve nada y la funcin si Un procedimiento es una macro que se invoca desde algn lado en cambio una funcin se usa para que nos devuelva un dato. La utilidad de una funcin de usuario es igual que las funciones que vienen con Excel como suma, Trim etc. pero creada por nosotros para ser usada en el mbito de VBA o directamente en una hoja de Excel desde el asistente de funciones. Cuando usamos la funcin suma(A1:A2) en la celda vemos lo que nos devuelve la funcin, en cambio cuando ejecutamos una macro (un procedimiento) este se ejecuta y los comandos que hay en el ocurren En el siguiente ejemplo, la funcin funCalcularIva calcula el iva de determinado monto. Cuando se llama a la funcin desde el procedimiento Principal o desde una hoja de calculo , se le pasa una variable que contiene el valor del argumento. El resultado de los clculos se devuelve al procedimiento que efecto la llamada o en la celda donde se escribi la funcin Function funCalcularIva(Monto) FunCalcularIva=Monto+(Monto*0.21) End Function Te das cuenta lo interesante que resulta estas funciones personalizadas para automatizar clculos, bsquedas etc. Bien como hacemos para escribirla, simplemente vamos al modulo de nuestro libro (si queremos que este disponible siempre lo haremos en el Personal.xls) y escribimos la funcin en la ventana de edicin de cdigo.

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 64

    Al escribir el comando Function y el nombre de la funcin funCalcularIva VBA completa con End Function y pone en azul los comandos. Hay que tener especial cuidado de no empezar una funcin en medio de otra o de un procedimiento asegurate siempre de estar arriba de function o debajo de end function para crear una nueva funcin o procedimiento. A nuestra funcin la llamamos funCalcularIva para seguir las reglas de codificacin gregoriano. Las convenciones de codificacin son pautas de programacin que no estn enfocadas a la lgica del programa, sino a su estructura y apariencia fsica. Facilitan la lectura, comprensin y mantenimiento del cdigo La razn principal de usar un conjunto coherente de convenciones de codificacin es estandarizar la estructura y el estilo de codificacin de una aplicacin de forma que el autor y otras personas puedan leer y entender el cdigo fcilmente. Un conjunto de convenciones de codificacin de propsito general debe definir los requisitos mnimos necesarios para conseguir los objetivos explicados anteriormente, dejando libertad al programador para crear la lgica y el flujo funcional del programa. El objetivo es hacer que el programa sea fcil de leer y de entender sin obstruir la creatividad natural del programador con imposiciones excesivas y restricciones arbitrarias. Escribimos fun delante de la funcin, para que sepamos que CalcularIva es una funcin y no un procedimiento sub, tambin ponemos en mayscula CalcularIva para que sea mas legible por un lado y para que al escribirla con minscula el sistema lo transforme en mayscula mostrndonos que reconoci la funcin. Escribiremos el nombre de la funcin con las primeras letras en maysculas y luego cuando hagamos referencia a ella lo haremos con minsculas si se transforma en maysculas la reconoci sino escribimos mal el nombre de la funcin o esta en otro libro. Ahora tendremos que definir los parmetros de entrada que vamos a querer en esta funcin

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 65

    En este caso tenemos un solo argumento de entrada que es Monto. Como el Monto es un numero y puede ser decimal entonces la dimensionaremos (crearemos) como numrica double Monto en realidad es una variable de tipo Double utilizada como parmetro de entrada en una funcin. Declaracin de variables Recuerdan en la escuela x=10 entonces x+2 =12, bien de eso se trata x es una variable. Una variable es un lugar de almacenamiento con nombre que puede contener cierto tipo de datos que puede ser modificado durante la ejecucin del programa. Cada variable tiene un nombre nico que la identifica dentro de su nivel de mbito. Puede especificar un tipo de datos o no. Nombres de variable deben comenzar con un carcter alfabtico, deben ser nicos dentro del mismo mbito, no deben contener ms de 255 caracteres y no pueden contener un punto o carcter de declaracin de tipo. Para declarar (usar) variables se utiliza normalmente una instruccin Dim Dim strMiVariable as string Las variables se pueden declarar como de uno de los siguientes tipos de datos: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (para cadenas de longitud variable), String * longitud (para cadenas de longitud fija), Object, o Variant. Si no se especifica el tipo de datos, el tipo de datos Variant es el predefinido. Tambin es posible crear un tipo definido por el usuario empleando la instruccin Type. Se pueden declarar varias variables en una instruccin. Para especificar el tipo de datos se debe incluir un tipo de datos para cada variable. No es necesario especificar el tipo de datos en la instruccin de declaracin. Si se omite, la variable ser del tipo Variant. Cuando se utiliza la instruccin Static en lugar de la instruccin Dim, la variable declarada mantendr su valor entre llamadas sucesivas. En Visual Basic se puede declarar implcitamente una variable usndola en una instruccin de asignacin. Todas las variables que se definen implcitamente son del tipo Variant. Las variables del tipo Variant consumen ms recursos de memoria que la mayor parte de las otros tipos de variables. Tu aplicacin ser ms eficiente si se declaran explcitamente las variables y se les asigna un tipo de datos especfico. Al declararse explcitamente las variables se reduce la posibilidad de errores de nombres y el uso de nombres errneos. Si no quers que Visual Basic realice declaraciones implcitas, puede incluir en un mdulo la instruccin Option Explicit antes de todos los procedimientos. Esta

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 66

    instruccin exige que todas las variables del mdulo se declaren explcitamente. Si un mdulo incluye la instruccin Option Explicit, se producir un error en tiempo de compilacin cuando Visual Basic encuentre un nombre de variable que no ha sido previamente declarado, o cuyo nombre se ha escrito incorrectamente. Se puede seleccionar una opcin del entorno de programacin de Visual Basic para incluir automticamente la instruccin Option Explicit en todos los nuevos mdulos. Para seguir con la codificacin gregoriana tenemos un prefijo para cada tipo de variables. Tipo de datos Prefijo Ejemplo Boolean bln BlnEncontrado Byte byt BytDatosImagen Objeto Collection col colWidgets Currency cur curIngresos Date (Time) dtm dtmInicio Double dbl dblTolerancia Error err errNumDeOrden Integer int intCantidad Long lng lngDistancia Object obj objActivo Single sng sngMedia String str strNombreF Tipo definido por el usuario udt udtEmpleado Variant vnt vntCheckSum

    Alcance de las variables Otro tema muy importante es el Scope o alcance que tiene una variable Tenemos variables de procedimiento que son las creadas dentro de un procedimiento

    Variables Modulares creadas en el espacio General Declaraciones del modulo

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 67

    Y las variables Publicas que se pueden crear en cualquier lugar, aunque por una cuestion de orden conviene crearlas en un modulo separado.

    El tiempo durante el que una variable conserva su valor se conoce como vida. El valor de la variable puede cambiar durante su vida, pero conserva algn valor. Cuando una variable pierde su alcance, ya no tiene ningn valor.

    Cuando un procedimiento o funcin comienza a ejecutarse, se inicializan todas las variables. Las variables numricas se inicializan a cero, las cadenas de longitud variable se inicializan a una cadena vaca de longitud cero ("") y una cadena de longitud fija se llena con los caracteres correspondientes al cdigo ASCII 0, o Chr(0). Las variables variant se inicializan a Empty. Cada uno de los elementos de una variable de tipo definido por el usuario se inicializa como si se tratase de una variable independiente.

    Si el valor de una variable no cambia durante la ejecucin del cdigo, conserva su valor de inicializacin hasta que pierda alcance.

    Una variable de nivel de procedimiento declarada mediante la instruccin Dim conserva su valor hasta que el procedimiento termina de ejecutarse. Si el procedimiento llama a otros procedimientos, la variable conserva su valor tambin mientras se ejecutan esos procedimientos.

    Si una variable de nivel de procedimiento de declara con la palabra clave Static, la variable conserva su valor mientras haya cdigo en ejecucin, sea cual sea el mdulo. Cuando todo el cdigo ha terminado de ejecutarse, la variable pierde su alcance y su valor. Su vida es la misma que la de una variable de nivel de mdulo.

    Una variable de nivel de mdulo es distinta a una variable esttica. En un mdulo estndar, conserva su valor hasta que se termina de ejecutar el cdigo.

    Las variables de nivel de mdulo consumen memoria hasta que sus valores se vuelven a inicializa, por eso slo se deben utilizar cuando sea necesario.

    Si se incluye la palabra clave Static antes de una instruccin Sub o Function, los valores de todas las variables de nivel de procedimiento del procedimiento se conservarn entre las sucesivas llamadas Retomando nuestro ejemplo ya tenamos creado el encabezado de la funcin ahora escribiremos el calculo

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 68

    Le agregamos dob a monto porque es una variable de tipo Double La funcin en si mismo funcionaria como una variable porque para devorlver el resultado se carga a si mismo, ahora bien el dato que va a devolver puede ser una palabra (string) o un numero o un bolean (verdadero / falso) o cualquier otro tipo de datos, si nosotros sabemos que tipo de datos va a devolver entonces definiremos toda la funcin como el tipo de datos que devolver.

    Si no se especifican de forma explcita mediante Public, Private los procedimientos Function son pblicos de manera predeterminada. Si no se emplea Static, el valor de las variables locales no se conserva entre distintas llamadas. Los procedimientos Function pueden ser recursivos; es decir, pueden llamarse a s mismos para realizar una tarea determinada. Sin embargo, la recursin puede provocar el desbordamiento de pila. La palabra clave Static no se suele utilizar con procedimientos Function recursivos. Todo el cdigo ejecutable debe estar dentro de procedimientos. No puede definir un procedimiento Function dentro de otro procedimiento Function, Sub o Property. La instruccin Exit Function produce una salida inmediata de un procedimiento Function. La ejecucin del programa contina con la instruccin que sigue a la instruccin que llam al procedimiento Function. En cualquier lugar de un procedimiento Function puede aparecer cualquier nmero de instrucciones Exit Function. Declare explcitamente las variables para evitar este tipo de conflicto. Puede utilizar una instruccin Option Explicit para forzar la declaracin explcita de variables. Visual Basic puede reorganizar las expresiones aritmticas para mejorar su eficacia interna. Evite utilizar un procedimiento Function en una expresin aritmtica cuando la funcin cambie el valor de las variables de la misma expresin. Un ltimo detalle el parmetro de entrada dobMonto puede obtenerse de dos formas por referencia (by ref) o por valor (by val) by val es un modo de pasar un argumento a un procedimiento pasando su valor en vez de su direccin. Esto hace posible el acceso del procedimiento a una copia de la variable. Como resultado, el valor actual de la variable no puede ser cambiado por el procedimiento al cual se pasa.

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 69

    By ref es un modo de pasar un argumento a un procedimiento pasando su direccin en vez de su valor. Esto hace posible el acceso del procedimiento a la variable real. Como resultado, el valor real de la variable puede ser cambiado por el procedimiento al cual se pasa. Por defecto las funciones toman las variables definidas entre los parmetros by ref asi que seria bueno agregarle by val.

    Si quisiramos que el monto fuera opcional o sea que en el caso que alguien no pase este parmetro la funcin funcionara igual Parece complicado tantas cosas no pero en realidad no es tan complicado como parece y teniendo una de referencia siempre podemos copiar y pegar.

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 70

    Utilizar y Combinar funciones de VBA y Excel Podemos usar nuestras propias formulas con las formulas que vienen con Excel, lamentablemente no podemos ver como fueron creadas las formulas pero si usarlas. Las frmulas que pueden ser usadas en VBA estn listadas en la ayuda buscando la palabra funciones, podes encontrar un ejemplo y una descripcin de los parmetros.

    La otra forma de ver que funciones podes usar es directamente con el objeto WorksheetFunction, al tipear el punto te apareceran la lista de todas las funciones.

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 71

    Creacin de funciones personalizadas Sera bueno usarla desde Excel para eso nos vamos a una hoja cualquiera y estando en una celda vamos al asistente de funciones

    En la categora definida por el usuario elegimos nuestra funcin y clikeamos aceptar

    Bueno ahora simplemente elegis la celda que va a cargar el parmetro del monto y pones aceptar

    Fantstico no ?, nuestra propia funcin si queres que tenga una descripcin como las que vienen con Excel te voy a contar un truco pero no se lo digas a nadie. Tenes que ir a Herramientas Macro

  • Excel nivel III Captulo 4 Creacin de Funciones personalizadas

    Pgina 72

    Nuestra funcin no esta en la lista porque no es un procedimiento es una funcin y en la lista solo figuran los procedimientos pero igalmente con fe escribi el nombre de la funcin (funCalcularIva) y hace un clic en opciones...

    Aca podes escribir lo que quieras incluso asignar una tecla rapida y la descripcin aparecera en el asistente de funciones.

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 73

    Objetos, Propiedades y Mtodos en Visual Basic. En este captulo aprenders:

    Concepto de objetos como contenedores de otros objetos. Uso de controles en una hoja de clculo. Uso de objetos, propiedades y mtodos, en cdigo Visual Basic. Objetos Grficos.

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 74

    Concepto de objetos como contenedores de otros objetos Dijimos que una hoja de Excel o un formulario pueden ser considerados contenedores de objetos, si queremos usar un control active x necesitamos un lugar para dibujarlo ese lugar puede ser una hoja de Excel. En el capitulo 2 hablamos acerca de los objetos active x y vimos que podamos usar dos tipos de objetos similares dentro de las hojas unos de la barra de formulario y otros de la barra de Visual Basic. Uso de controles en una hoja de clculo. Al agregar un control desde la barrita de Visual Basic, se agrega un objeto a la hoja correspondiente, este objeto tiene Propiedades, Mtodos y Eventos

    Vamos a dibujar un Cuadro Combinado para ver como funcionan estos controles. Si al dibujar el control antes de soltar el mouse apretas la tecla Alt se dibuja con las dimensiones de las celdas.

    Una vez que esta dibujado vamos a ver como le cambiamos el nombre y las propiedades para que nos sea de utilidad. Imaginemos que necesitamos hacer un Cuadro Combinado que al cambiar cambie un grafico que representa las ventas de una empresa Nombra a una hoja Datos y a la que esta el Cuadro Combinado Reportes, en la hoja Datos escrib la siguiente informacin:

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 75

    Luego en la hoja de reportes vamos a escribir la lista que queremos que aparezca en el combo box (Cuadro Combinado). Despus si queremos podemos ocultarla o moverla a un lugar que no se vea

    Para relacionar la lista con el combo seleccionamos el combo si no se selecciona de la barrita de Visual Basic eleg diseo. Luego F4 para que vengan las propiedades

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 76

    En las propiedades cambiarle el nombre por uno normalizado para que no nos volvamos locos cuando tengamos que asignarle cdigo desde VBA. Le podemos llamar cmbReportes. La propiedad para definir la lista es ListFillRange entonces ponemos la primera celda de la lista dos puntos y la segunda. Ya esta funcionando el combo ahora nos queda que al cambiar la seleccin se modifique un Grfico. Vamos a insertar un grafico basado en los datos de la hoja Datos mientras grabamos una macro.

    9. Para comenzar a grabar la macro vamos a cliequear el circulo azul (Grabar

    Macro).

    10. Borrame como nombre de la macro: 11. Elegimos Este libro.

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 77

    12. Vamos al asistente de grficos:

    13. Elegimos cdigo de barras

    14. Siguiente y elegimos el rango de la hoja Datos. (para seleccin mltiple con

    la tecla control)

    15. Siguiente, escribimos el titulo y finalizamos

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 78

    16. Ya tenemos el grfico y los comandos en el ltimo modulo de este libro. Podemos detener la grabacin.

    Vamos a ver el cdigo:

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 79

    Primero vemos que se agrega un grafico con Charts.Add, pero nosotros no queremos crear uno nuevo sino modificar el que ya creamos de acuerdo con lo que el usuario elija del combo. El nico comando que necesitaramos es el que esta seleccionado e ir cambiando el rango de acuerdo se haba la eleccin.

    Lo copiamos y lo llevamos a la hoja donde pusimos el combo.

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 80

    Uso de Objetos, propiedades y mtodos en cdigo Visual Basic Tenemos que elegir el objeto con el cual queremos trabajar con el selector de la izquierda y el evento donde queremos poner el cdigo con el selector de la derecha. Como queremos que al cambiar el combo ocurra el cambio en el grafico elegimos el evento change.

    Pegamos el cdigo dentro del evento Change:

    Ahora tenemos que diferenciar el Source de acuerdo a la eleccin, para eso usaremos la estructura select case de VB.con la propiedad text del combo cmbReporte

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 81

    El problema que tenemos es que el la macro se genero asumiendo que el ActiveChart era el que se acababa de crear pero para nosotros el objeto activo sera el combo box. Para hacerlo activo necesitamos saber el nombre. Para saberlo hay un pequeo truco. En la hoja de Excel donde esta el grfico eleg la barra de Dibujo y marca la flechita blanca, ahora haciendo un clic en determinada parte del grafico aparece el nombre.

    Para ordenarnos mejor le podes cambiar el nombre:

  • Excel nivel III Captulo 5 Objetos, Propiedades y Mtodos en VBA

    Pgina 82

    Sabiendo el nombre ahora es mucho mas fcil volvemos al evento change y escribimos la siguiente lnea para elegir el grafico.

    Ahora al cambiar el combo cambia el grfico, nos quedara cambiar tambin el titulo.

    Bien, ya tenemos asociado el combo al evento y desde ah elegimos los datos del grafico.

  • Excel nivel III Captulo 6 Trabajo con Mens Personalizados

    Pgina 83

    Trabajo con Mens Personalizados. En este captulo aprenders:

    Conceptos sobre Mens. Creacin de una barra de men. Creacin de un men. Creacin de un tem de men.

  • Excel nivel III Captulo 6 Trabajo con Mens Personalizados

    Pgina 84

    Conceptos sobre Mens. Los mens y barras de herramientas permiten dar instrucciones a Microsoft Excel sobre lo que se desea hacer. Un men muestra una lista de comandos. Al lado de algunos de estos comandos aparece una imagen a la que se puede asociar el comando fcilmente. La mayora de los mens estn situados en la barra de mens, que normalmente se encuentra en la parte superior de la pantalla. Una barra de herramientas puede contener botones con imgenes (la misma imagen que se ve al lado del comando de men), mens o una combinacin de ambos. Excel incluye numerosas barras de herramientas integradas que se pueden mostrar y ocultar, segn sea preciso. De manera predeterminada, las barras de herramientas integradas Estndar y Formato estn acopladas una al lado de la otra debajo del men. Podemos tener varias barras de herramientas pero un solo men. La forma de eliminar la barra de mens de Excel es sustituirla por una barra de mens personalizada. Cuando la aplicacin se cierre, bastara con eliminar la barra de mens personalizada para que vuelva a aparecer la de Excel Una barra de mens es simplemente una barra de comandos como una barra de herramientas que se especifica como barra de mens.

  • Excel nivel III Captulo 6 Trabajo con Mens Personalizados

    Pgina 85

    Creacin de un men. Existe una forma de poner una barra de men solo para nuestro libro sin interferir con el resto de los usuarios. Cuando abrimos nuestro libro o hoja lo creamos desde el cdigo y cuando nos vamos lo borramos. Vamos a crear un item en el men predeterminado de Excel que solo aparezca cuando abrimos el libro del ejemplo. Al final de este ejercicio tendramos que obtener algo asi:

    1. Creamos un Modulo Bas con el nombre modBarraMenu en el proyecto de un nuevo libro. Te acordas no?. Botn derecho sobre el proyecto Insertar Modulo. Despus doble clic para comenzar a escribir el codigo

    2. Primero que todo vamos a crear un procedimiento dentro del mdulo y luego definire