Вы находитесь на странице: 1из 329
Reéursos Informaticos VBA Excel 2002 Programar con Excel: Macros y lenguaje VBA Michele AMELOT ) INFORMATICA TECNICA Podra descargar en la siguiente direccién los ejemplos citados en esta obra: http://www.ediciones-eni.com/ejemplos A continuacién haga dic en el nombre de la coleccién y en el titulo de la obra. Presentacion Capitulo 1 A. Presentacién del lenguaje VBA... ......... 8 B._Las:macros de Excel. cae oe ee ace AO) C,__El Entorno de desarrollo VBE. ........... 20 D._Configuracién del Editor VBA. ........... 24 E.__Las nove lawersi6f' 2002 5 give gia 97 El lenguaje VBA Capitulo 2 A.__Los médulos . 31 B; ‘(Les'procedimientoS si esse warn gee) ww woe 34 C.__Las variables 45 ile 62 E: Las‘estructorassencbucie ag a Ea BP Fil (GSO pSradOER! is lie ade es Siete she vei 73 G._Las reglas de escritura del cddigo . 7.7... 78 VBA Excel 2002 | 4 Contenido La programacion orientada Capitulo 3 a objetos en Excel A. Presentaci6n ............. i 82 B. El modelo de objeto de Excel ........... 83 C.__Principios de uso de los objetos y colecciones 88 D.__Instrucciones utilizadas con los objetos....... 97 E. El examinador de objetos .. 2. 101 Los objetos de Excel Capitulo 4 A. El objeto Application. ............... 105 B. El objeto Workbook ......... eee 126 G;... EF ebieto: Worksheet a. scieca seg spinne sears pane 143 Da E-obieto Range se sisese eee aie eee ees 155 E. Ejemplos de uso de objetos ............ 176 Los cuadros de dialogo Capitulo 5 A. Presentacidn .................45 182 Contenido B. Los cuadros de didlogo integrados ... 1... .» 182 C.__Los cuadros de didlogo predefinidos ........ 187 Los formularios Capitulo 6 A.__Presentacién 198 Bi Crearun- formulations worse pe a AOR C. Personalizar un formulario .. 2... .....-. 208 D.__Ejemplo de formulario personalizado ........ 217 Mejorar la interfaz de usuario Capitulo 7 A. Presentacion 224 B. Ejemplo de menus personalizados ......... 226 Go Las barrasdeseomandasisis ia aid pe ec 28 D. Controles (opciones) de las barras de comandos .. 232 Tratamiento de sucesos Capitulo 8 A.__Presentacién 240 VBA Excel 2002 Eel Contenido C.__Los sucesos del objeto Application ......... 248 D. Los sucesos del objeto Workbook ......... 251 E. Los sucesos del objeto Worksheet ......... 254 F,__Los sucesos del objeto Chart. .........., 255 Depuraci6n y tratamiento Capitulo 9 de los errores A. _Los diferentes tipos de error By DepuraciOni:. iia uldit ais die dis eed DES C._Gestié BA 26 Enlaces entre aplicaciones Capitulo 10 A. Latecnologia Automation ............. 273 We C. Controlar Access desde Excel ........00- 283 D.__Controlar Outlook desde Excel ........... 288 Ey _ ER ProwmChlG BOE: a ass cis: se ipa site Hee 290 F.__Los objetos enlazados o incorporados_......- 294 4 VBA Excel 2002 Contenido G.__Métodos y propiedades relativas @ los enlaces dé Bxc6) egg es pe ee ee 88 Internet Capitulo 11 AL (CORSDIREEIIRIEROR costes its sak, ti ae co OD B. El objeto QueryTable ............... 304 C.__Exportacién de archivos en formato X€MLoO HTML... 311 D. Publicacién de paginas Web .. 1... 1... 314 E. Los objetos WebOptions y DefaultWebOptions ... 317 Fii_ ‘Ekobyeto-Hyperlinks 2 Gnesi 2k Baia SL aia 321 Programacion en Windows Capitulo 12 ALP an API 32 fundé API Ni 325 , func API de Wi 327 D. Ejemplos de uso de funciones de la API de Windows... 1. 2 ee ee eee 328 E; :ELObisto ieséorchi:s sites esnes sietar Sig ain 331 VBA Excel 2002 Ba Contenido F. El objeto FileSystemObjectt.... 1... eee 334 Cédigo de una miniaplicaci6n Capitulo 13 A. Presentacién general... ............. 338 B. Descripcidn de la aplicacisn GestPresupuesto .. . . 339 C. Mddulo ThisWorbook .... 0.2... 0 00008 340 D. Formulario BuscaPresupuesto ........... 344 E. Formulario NuevoPresupuesto ........... 349 F. Modulos ProcAcciones y ProcGene .........5 352 Anexos x i ‘ . 359 B. Listade funciones.........-.--208. 367 Cc. ConstantesVBA...........---250. 388 Ga VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved Presentaci6n - comunicar con las otras aplicaciones de Microsoft Office: VBA permite intercambiar datos entre aplicaciones de Office utilizando los objetos especificos propios de cada una de ellas. Por ejemplo, se puede insertar una tabla o un grafico de Excel en un archivo de Word, crear mensajes de Outlook con un archivo de Excel como datos adjuntos... 2. Algunas definiciones Proyecto A cada libro abierto en Excel se le asocia un proyecto con todos los mddulos de cédigo VBA agrupados por categorias. Médulo Los médulos contienen las macros grabadas y los procedimientos y fun- ciones del usuario escritos en VBA. Los médulos pueden exportarse en forma de archivos independientes para importarlos en otros libros. Procedimiento Los procedimientos son subprogramas escritos en VBA. Cada macro gra- bada genera un procedimiento cuyo nombre es el de la macro. También se pueden crear procedimientos propios utilizando la instruccién Sub. Funcién Las funciones son procedimientos que devuelven un valor. Para crear una funcién hay que utilizar la instruccién Function. VBA Excel 2002 gE Capitulo 1 3. Escribir codigo VBA Para crear procedimientos de VBA se cuenta con dos posibilidades: = generar automaticamente el cédigo a partir de la grabadora de macros, - escribir directamente el cédigo del procedimiento en el entorno Visual Basic Editor (0 entorno VBE). Aunque mucho mas facil de utilizar, la primera solucion es mucho mas limitada que la segunda. Los procedimientos generados automaticamente permiten automatizar Unicamente acciones repetitivas efectuadas en Excel (formato de celdas, ordenacién de datos...). Si se quieren efectuar tratamientos especificos (algoritmos de calculo, inter- cambio de mensajes y de datos con el usuario, controles de coherencia de datos en un libro o cualquier otro tratamiento que utilice estructuras repetiti- vas © condicionales) es preciso crear procedimientos propios en VBA. B.Las macros de Excel Las macros permiten automatizar las tareas habituales efectuadas en Excel. Una macro es un procedimiento de VBA compuesto por una serie de ins- trucciones que ordenan a Excel la ejecucién de una serie de acciones. i VBA Excel 2002 © Editions EN! - All rights reserved Presentacion 1. La grabaci6én de macros +) Para mostrar la barra de herramientas de Visual Basic, seleccione las opciones siguientes del ment de Excel: Ver Barras de herramientas Visual Basic 1 Ejecutar una macro 5 Barra de herramientas Controles 2 Grabar una macro 6 Modo Creacién 3 Opciones de Seguridad 7 Microsoft Script Editor 4 Visual Basic Editor +) Para crear una nueva macro guardada, efectue: Herramientas Macro Grabar nueva macro ou Escriba en el cuadro de didlogo siguiente el Nombre de la macro, su Descripcién y si es necesario la Tecla de método abreviado asociada. Bix Nombre dela macto: Prueba Iiétodo atrevieda! Guardar macro.ent CttMayisr|t [este tbro = Beserpeién: Mi primera macro en Excell Aceptar Cancelar VBA Excel 2002 Ea Capitulo 1 +) Lleve a cabo en Excel las manipulaciones a grabar. Por ejemplo, selec- cione el rango de celdas "Al:B8" y asigne un motivo y un borde a las celdas. Durante la grabacién de la macro aparece una nueva barra de herra- mientas Detener grabacién. +) Pulse sobre la herramienta de la barra de herramientas Detener grabacion (o Herramientas - Macro - Detener grabacion). Guardar una macro con referencias de celdas relativas Si graba una macro en modo referencia absoluta (modo predeterminado), los rangos de celdas referenciadas en las operaciones de seleccién o despla- zamiento son rangos fijos. Por ejemplo: Range ("A2") designa la celda A2. Si graba una macro en modo referencia relativa, los rangos de celdas se expresan en funcién de la posicién de la primera celda activa. Ejemplo: ActiveCell.range("A2") designa la celda situada debajo de la celda activa. ActiveCell.range("B1") designa la celda situada a la derecha de la celda activa. © ActiveCell.range("A1") se refiere siempre a la primera celda activa. Al es en cierto modo la referencia relativa de la primera celda activa. Para guardar una macro con referencias relativas: +) Pulse el boton de la barra de herramientas Detener grabacién; el icono del bot6n queda ahora resaltado: +) Si pulsa de nuevo el botén de comando: macros se guardan con referencias absolutas. desaparece el borde y las a VBA Excel 2002 © Editions EN! - All rights reserved Presentaci6n Ejemplo La misma secuencia de operaciones se ha guardado en dos macros: la primera macro (RefRelativa) se ha guardado con la opcién referencia rela- tiva, y la segunda (RefAbsoluta) con la opcién referencia absoluta. La secuencia de operaciones es /a siguiente: - seleccién de un rango de celdas, ~ desplazamiento del! rango dos lineas hacia abajo y una columna hacia la derecha. Sub RefAbsoluta () " Referencia absoluta Range ("B2:C8") Select Selection.Cut Destination: =Range("C4:D10") Range ("C4:D10") .Select End Sub Sub RefRelativa() *' Referencias relativas Act iveCell. Range ("A1:B7") .Select Selection.Cut Destination: =RetiveCell Offset (2, 1) -Range("Al:37") ActiveCell.Offset (2, 1) .Range("A1:B7") .Select End Sub Definir el lugar de guardado de una nueva macro +) Herramientas Macro Nueva macro +) Abra la lista Guardar la macro en. Seleccione Libro de macros persona- les, Este libro 0 Libro nuevo. Valide. VBA Excel 2002 Ee aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 1 SCENE [a eae Ge esta “teas Goat Facer aroin/a | Goetiorat Yaa «Ox Baca) pee Ae 2 > oe R ws O E © BE vaaProyect (ibroo) E+E Microsoft Excel Obetos sagonaifown| .LineStyle = xiNone Selection. forders (x1DiagonalUp) .Linestyle = xitione With Selection, Borders (xiEdgeLett) sLineStyle = xlCoatimious Weight = xiThin Icolorindex = xLaucomatie With Selection, Borders (x1EdgeTop sLinestyie = xicoatanuous alee. Se ha afadido un procedimiento con el mismo nombre que la macro al médulo Médulo1. En general, la grabadora de macros inserta mas cédigo del necesario; por ello, se recomienda suprimir las partes de c6digo innecesarias. También se puede insertar codigo dentro de este procedimiento. Ejemplo Inserte el cédigo siguiente antes del final del procedimiento: MsgBox "El formato de las celdas " & Range.Select.Address _ 6 vbCr & "se ha modificado correctamente" End Sub ca VBA Excel 2002 © Editions EN! - All rights reserved Presentacién Para probar su procedimiento, pulse sobre el icono de funcién ©). Aparece el mensaje siguiente: Cees 0 utilice la tecla zi El formalo de las celdas $4$1 $843 se ha modficado conectamenie 4. Las asignaciones de macros a. Vincular una macro a un bot6n +) Dibuje un botén mediante la herramienta S) de la barra de herramien- tas Formularios. En cuanto se suelta el botén del ratén, aparece la ventana Asignar una macro. +) Seleccione el Nombre de la macro y valide pulsando Aceptar. b. Asignar una macro a un objeto grafico +) Dibuje el objeto grafico. Pulse el botén secundario sobre el objeto y pulse sobre la opcién Asignar una macro. Haga ahora doble clic sobre el Nombre de la macro a asignar. c. Asignar una macro a una zona sensible de un objeto grafico +) Cree el objeto grafico. Dibuje un segundo objeto grafico en el interior del primero. Asigne la macro a este segundo objeto. Haga invisible este segundo objeto seleccionando Ningtin borde - Ningidn relleno en el cua- dro de dialogo Formato de objeto - ficha Colores y bordes. VBA Excel 2002 Eu Capitulo 1 d. Vincular una macro a un botén de una barra de herramientas >> Ver Barra de herramientas Personalizar +) Active la ficha Comandos. Seleccione la categoria Macros. Arrastre la herramienta (bot6n personalizado de la lista Comandos) hacia la barra de herramientas de destino. Cuando suelte el botén del ratén, el boton aparecera en la barra. +) Pulse el botén secundario sobre la herramienta. Seleccione Asignar una macro. Seleccione el Nombre de la macro y valide pulsando Aceptar. ® Antes de cerrar el cuadro de didlogo Personalizar, puede pulsar el botén secundario sobre e| botén para escribir el texto de la ayuda flotante en la zona Nombre, inclinarse por Modificar la imagen del botén, y/o modifi- car el dibujo del botén seleccionando Editor de botones. e. Asignar una macro a un comando de ment +) Herramientas Personalizar +) Active la ficha Comandos. Ahora puede crear un nuevo meni o afiadir opciones a un ment existente. Crear un nuevo ment +) Seleccione Nuevo ment de entre las diferentes Categorias. Arrastre el texto Nuevo ment de la lista Comandos en direccién a la barra de menis. Cuando suelte el botén de! ratén, el nuevo ment se inscribe en la barra. Ea VBA Excel 2002 © Editions EN! - All rights reserved Presentacion +) Pulse el botén secundario sobre el menti afiadido. Indique su Nombre y valide. © Si una de las letras del nombre debe estar subrayada para permitir un acceso rapido, antepéngale el caracter &. Agregar una opcién a un menu +) Seleccione Macros de entre las diferentes Categorias. Arrastre la opcién Elemento de ment personalizado de la lista Comandos en direccién al ment destinatario de la opcién. La opcidn afiadida aparece en el ment de destino. +) Pulse el bot6n secundario sobre la nueva opcidn. Indique y valide su Nombre. +) Pulse de nuevo el botén secundario sobre la nueva opcién. Seleccione Asignar una macro. Seleccione el Nombre de la macro y valide pulsan- do sobre Aceptar. Agregar un ment secundario a un ment +) Seleccione Nuevo mend de entre las diferentes Categorias. ) Arrastre la opcién Nuevo mend de fa lista Comandos hacia el menu de destino del ment secundario. Pulse el bot6n secundario sobre dicho mend. Escriba su Nombre y valide. Eliminar las personalizaciones +) Pulse el botén Cerrar del cuadro de didlogo Personalizar. VBA Excel 2002 ES Capitulo 1 C.EI Entorno de desarrollo VBE VBE (Visual Basic Editor), es el entorno en el que se puede escribir, modifi- car y probar el cddigo VBA. Este entorno se denomina también IDE (/nte- grated Development Environment) o editor VBA. El entorno VBE pone a su disposicién numerosas herramientas que permiten facilitar la programacién y la puesta a punto del cédigo VBA: herramientas de depuracién, asistencia en la escritura, explorador de objetos... +) Para acceder al entorno VBE, si la aplicacion esta cerrada, solicite la modificacién de una macro o Herramientas ea Macro Visual Basic Editor +) Para acceder al entorno VBE, si la aplicacién esta en curso: utilice la barra de tareas de Windows +) Para cerrar el entorno de VBE, haga: Archivo clic en el bot6n Cerrar y de la aplicacién volver a Microsoft Excel +) Para volver a Excel desde el entorno VBE, haga: Ver Microsoft Excel © utilice la barra de tareas de Windows 0 en la ventana Proyecto, seleccione el nombre de la hoja de calculo a activar y pulse sobre la herramienta . eo Ew VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved Presentacion © Si esta lista no esta activa, seleccione Opciones en el ment Herramien- tas y marque la casilla Complemento automatico de instrucciones de la ficha Editor. (6) La ventana Ejecucién Permite mostrar los valores de variables, modificarias, y ejecutar instruccio- nes. © Las ventanas Ejecucién, Variables locales y Espfas se utilizan especial- mente durante la depuracién de aplicaciones (ver capitulo 9). (7) La ventana Variables locales Contiene todos los valores de las variables que son visibles en cada momen- to. (8) La ventana Inspecciones Contiene todos los valores de las variables que haya definido previamente como variables de inspeccién. (9) El Explorador de objetos Permite visualizar, para cada objeto, sus propiedades, métodos y constan- tes. VBA Excel 2002 EE Capitulo 1 D.Configuracion del Editor VBA 1. Configuraci6n de tipografias Las palabras clave, las funciones y las instrucciones de VBA se muestran en azul, los objetos, métodos y propiedades en negro y los comentarios en verde. Las instrucciones que contienen errores se resaltan en rojo. Para modificar el estilo (color, tipo, tamafio) de las diferentes partes del cédigo, seleccione Opciones en el menu Herramientas y pulse sobre la ficha Formato del editor. f ato: Fomsiodsl edter | General] Accra] | Solves cto aoe j, [Courer New (Occidental) =] r amato: ji fio = ta Testo dela palabra clave a FY tarraindleadora al oara=) | Bena af | Ermer plano: Fordo: Ingcador Cancelat Ayuda Ba VBA Excel 2002 © Editions EN! - All rights reserved Presentacién 2. Configuracién de la introduccién de cédigo Diferentes herramientas, como por ejemplo la verificacion automatica de la sintaxis, la declaracién obligatoria de las variables, el complemento au- tomatico de instrucciones... facilitan la introduccién y la puesta a punto del codigo VBA. Para activar estas herramientas, seleccione Opciones en el menu Herra- mientas y pulse sobre la ficha Editor. Edter | Formato detedtar| Genera] Aconis:| = Opdiones del codon — 1 Comprobscién de srtaxs automatica FY Sangria automética OF Reaeri varices) es FF Ute de eembros autondtis i : | I Ipformacin rapids automata FF sugerencias, Opciones dels ventana | Modficar texto mediante "arrastrar y colocer” | FF ‘ists conpleta predeterminads de! moculo ee Geer 3. Acoplar una ventana Una ventana acoplable se coloca en su sitio automaticamente cuando se desplaza. Una ventana no es acoplable si se puede desplazar a cualquier punto de la pantalla y dejarla alli. ~) Herramientas Opciones ficha Acoplar VBA Excel 2002 | 25] Capitulo 1 +) Active las ventanas a acoplar y desactive las demas. Valide con Aceptar. 4. Eleccién de las ventanas a mostrar Nombre de la Mend Herramienta/ Teclado ventana a mostrar Propiedades Ver - Ventana Propiedades ey fo Proyecto Ver - Explorador de proyecto =] GOR Ejecutar Ver - Ventana Ejecucién @ie Espfa Ver - Ventana Inspecciones Variables locales | Ver - Ventana Variables locales Explorador de} Ver - Explorador de objetos isl QB objetos Médulo Ver - Cédigo Ea VBA Excel 2002 © Editions EN! - All rights reserved Presentaci6n E. Las novedades de la versién 2002 1. Las novedades de Excel 2002 Excel 2002 forma parte del paquete ofimatico Microsoft Office XP (de eXPe- rience) y se beneficia por consiguiente de la mayoria de mejoras de esta versién: nueva interfaz mas simple y clara, ventanas de Office, marcas acti- vas... Excel cuenta con otras novedades, como la recuperacién de archivos defec- tuosos, la conversién en euros, el evaluador de formulas... Algunas funciona- lidades se han mejorado: la seguridad (cifrado, firmas digitales, nuevas opciones de proteccion de las hojas de célculo), interrogacién de datos en las paginas Web, importacién de datos externos... 2. Las novedades de VBA Excel 2002 a. Seguridad El objeto Protection permite acceder a las nuevas opciones de proteccion disponibles para una hoja de calculo. Asimismo, nuevos métodos permiten administrar el cifrado y la firma digital. b. Marcas activas - la coleccién SmartTags representa las marcas activas de una hoja de calculo, ~ la coleccién SmartTagActions representa las acciones asociadas a las marcas activas, VBA Excel 2002 | 27] aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Ej Las‘estructuras‘en bucle we ee 67 % ‘Laviastucci¢n Dex.Loopis 3. asiten wes abana. me 68 saiag 5 , : 69 3 : oe 10 ‘agbiisstan Fae rch Mas u Fi: Bostoperadores: fise3 sta. de Sea ed bem FS 1. Los operadores aritméticos .. 74 2. Los operadores de comparacion. .... 1... ee 75 S:— 108 OperadOlES NOQIC0S i955 0: coisa een ae rare psa 76 4. El operador de concatenacin. .. 1... e 76 5. Prioridad de los operadores... ............. 77 G.__Las reglas de escritura del codigo ......... . 78 L DSGOMIEMTBHOS saci ei eee eae “TAR! 2 £ i raneanitd 79 Si. HIBANRAUOER SS. OLE on ES tos Sui dhe en nor Sis 79 4. Los nombres de procedimientos, variables y constantes .. 80 30. | VBA Excel 2002 Copyrighted © Editions ENI - All rights reserved El lenguaje VBA A.Los médulos 1. Presentacién El cédigo VBA asociado a un libro se agrupa en un proyecto con varias carpetas: La carpeta Microsoft Excel Objetos La carpeta Formularios La carpeta Médulos La carpeta Médulos de clase Contiene un médulo de clase asociado al libro del proyecto (llamado de modo predeterminado ThisWorkbook) y un médulo de clase por cada hoja de calculo u hojas graficas del libro. En es- tos mddulos de clase, se encuentran por ejemplo los procedimientos de sucesos vinculados al libro y a las hojas. Contiene los formularios (UserForm) del proyecto y el codigo VBA asociado. Retine los diferentes médulos estandar (com- puestos por uno o mas procedimientos) que pue- den llamarse desde cualquier procedimiento del proyecto. Contiene los médulos de clase utilizados para la creacién de nuevas clases de objetos. Los médu- los de clases se utilizan por ejemplo para la creacién de nuevas clases de objetos. Los médu- los de clases se utilizan normalmente para la es- critura de procedimientos de sucesos asociados a los objetos Application y Chart (ver capitulo 8). La lista de todos los médulos se muestra de forma jerarquica en el Explora- dor de proyecto del Entorno VBE. VBA Excel 2002 EI Capitulo 2 ® Si el explorador de proyecto no es visible, seleccione la opcién Explora- dor de proyecto del ment Ver o utilice el método abreviado Ga R. PRET TEC 2lOlx) Oe GC = F Euro Tool (EUROTOOL.XLA) BB VENTAS (ventas.xis) 1 @¥ Merosoft Excel Objetos 1B) Hojat (Hojat (1999)) 1) Hoy22 (Hojaz (2000)) CEE ThisWorkbook -&9 Formularios EB Nuevas_Ventas cy Miduios 8 ProGene 9 Midules de clase 8) Mensajes © Para mostrar el cédigo asociado a un médulo, haga doble clic sobre el nombre del médulo. Los elementos del lenguaje VBA descritos en este capitulo pueden utilizarse en los diferentes médulos. 2. Acceso a los médulos +) Para insertar un nuevo médulo a partir del entorno VBE, utilice el médu- lo Insertar - Médulo o abra la lista y pulse sobre Médulo. © si la ventana Médulo esté a pantalla completa, el nombre del médulo aparece en la barra de titulo de Microsoft Visual Basic. El VBA Excel 2002 © Editions EN! - All rights reserved El lenguaje VBA +) Para desplazarse de médulo a médulo, en la ventana Proyecto, haga doble clic sobre el nombre del médulo a activar. +) Para suprimir un médulo, en la ventana Proyecto, pulse el botén secun- dario sobre el nombre del médulo a suprimir, seleccione Suprimir médu- lo, e indique si el modulo debe exportarse o no. +) Para asignar un nombre a un médulo, active el médulo al que quiera dar un nombre. Si es necesario, abra la ventana de Propiedades, y rellene la propiedad (Name). 3. Importar y Exportar cédigo VBA Los médulos y formularios pueden exportarse a un archivo para importarlos en otro proyecto de Excel. Para exportar un archivo, haga clic sobre el nombre del archivo en el explo- rador de proyectos, y seleccione la opcién Exportar un archivo del ment Archivo 0 utilice el método abreviado Ex E. Para importar un archivo, haga clic sobre el nombre del archivo en el explo- fador de proyectos y seleccione la opcién Importar un archivo del ment Archivo 0 utilice el método abreviado G3 M. La extensién del archivo creado depende del tipo de archivo exportado: - Los médulos de clases (médulos vinculados al libro y a las hojas y médulos de clase independientes) tienen la extensi6n .cls, — Los formularios tienen la extension .frm, ~ Los médulos estandar tienen la extensién .bas. VBA Excel 2002 E2 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved El lenguaje VBA 2. Acceso a los procedimientos +) Para acceder a un procedimiento, abra la segunda lista de la ventana del médulo, pulse sobre el nombre del procedimiento a eder o desplacese de procedimiento en procedimiento con GC y GG). +) Para seleccionar una palabra, haga doble clic sobre ella. +) Para seleccionar una linea, coloque el cursor del ratén a la izquierda de la linea, y haga clic cuando el cursor se transforme en una flecha. +) Para seleccionar un grupo de caracteres, utilice la técnica de arrastrar y soltar o repita GS clic, +) Para seleccionar todo un procedimiento, coloque el cursor del ratén a la izquierda de una linea del procedimiento. Cuando el cursor se transforme en una flecha, haga doble clic. +) Para ejecutar un procedimiento, il clic en el procedimiento a ejecutar y pulse la tecla de funcién G2) o +) Para suprimir un procedimiento, seleccione todo el procedimiento, y pulse Ged. 3. Los procedimientos Sub Se distinguen dos tipos de procedimientos Sub: - los procedimientos Sub generales — los procedimientos Sub vinculados a sucesos Un procedimiento general es un procedimiento declarado en un mddulo (generalmente un mddulo estandar). La llamada al procedimiento se define explicitamente en el cddigo. VBA Excel 2002 ES aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved El lenguaje VBA 6. Visibilidad de los procedimientos La visibilidad de un procedimiento define el alcance de su uso. Un procedimiento Public puede ser llamado desde todos los médulos de todos los proyectos de Excel. Un procedimiento Private sdlo puede ser llamado desde un procedimiento dentro del mismo médulo. La palabra clave Static indica que las variables locales del procedimiento se preservan entre las llamadas. En ausencia de las menciones Public, Private o Friend, los procedimientos son publicos de modo predeterminado. 7. Argumentos de los procedimientos Los argumentos se utilizan para transmitir a los procedimientos parametros en forma de datos. El numero de argumentos puede variar de 0 a muchos. Para declarar un argumento, basta con especificar su nombre. Sin embargo, la sintaxis completa de declaracién de un argumento es la siguiente: {Optional] [ByVal | Byref] [ParamArray] [As type] La opcién opt ional indica que el argumento es facultativo. Todos los argumentos facultativos deben situarse al final de la lista de argumentos, y ser de tipo Variant. VBA Excel 2002 | 39} Capitulo 2 La opcién Byval La opcién Byref {opcién predeterminada) La palabra clave ParamArray Variable Type indica que el argumento se pasa por valor. El procedimiento accede a una copia de la variable; el valor inicial de ésta no se ve pues modificado por el procedimiento, al que se le pasa sdlo una copia. indica que el argumento se pasa por referencia. El procedimiento puede asi acceder a la variable propiamente dicha; el valor real de ésta puede, por ello, ser modificado por el procedimiento al que se ha pasado. se utiliza Unicamente como Ultimo argumento de la lista para indicar que es una tabla facultativa de elementos de tipo Variant. No puede utili- zarse con las palabras clave ByVal, ByRef U Optional. precisa el nombre del argumento. Para las varia- bles de tabla, no hay que indicar las dimensio- nes. precisa el tipo de datos del argumento pasado al procedimiento (Byte, Boolean, Integer, Long...). 8. Los argumentos con nombre El paso de argumentos a un procedimiento teniendo en cuenta su orden de aparicién es en ocasiones dificil de implementar, por ejemplo cuando ciertos parametros son facultativos. Ademéas, la legibilidad de las llamadas a proce- dimientos con muchos paraémetros no siempre es evidente. E O | VBA Excel 2002 © Editions ENI - All rights reserved El lenguaje VBA +) Los argumentos con nombre facilitan el paso de argumentos al presentar las ventajas siguientes: ~ el orden de los argumentos con nombre no tiene importancia, — los argumentos facultativos pueden omitirse. La sintaxis de los argumentos con nombre es: NombreArgumento:= Valor Ejemplo EI cédigo VBA siguiente: If MsgBox(":Quiere abandonar 1a aplicacién?", _ vb¥esNo + vbQuestion, "Gestién de ventas") = vbYes Then Application.Quit End If Puede transformarse en: If MsgBox (Prompt : Buttons:=vbYesNo + vbQuestion, _ Title:="Gestién de ventas") = vbYes Then Applicat ion .Quit End If eQuiere abandonar la aplicacion?", _ Asimismo, puede modificarse el orden de los pardmetros: Tf MsgBox (Prompt :=" Title gQuiere abandonar la aplicacién?", Gestién de ventas", _ Buttons:=vbYesNlo + vbQuestion) = vb¥es Then Applicat ion .Quit End If VBA Excel 2002 gE aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 La funcién MayCelda permite indicar una celda a partir de un valor dado. Devuelve True si la actualizacién se ha llevado a cabo correctamente, y False en caso contrario. Private Function MayCelda(Celda As Range, _ Valor As Variant) As Boolean ' Actualiza una celda a partir de un valor MayCelda = False If Not IsEmpty(Celda) Then Exit Function Celda.Value = Valor If Celda.Text <> "#VALOR!" Then MayCelda = True End If End Function Si prueba este ejemplo, debera obtener el resultado siguiente: Nelelele PNR | La actualizacién de la tercera celda ha fallado. 44 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions ENI - All rights reserved El lenguaje VBA Fecha El tipo es Date. La variable puede tomar los valores de fecha y hora desde el 1 de enero del 100 al 31 de diciembre del 9999. Ocupa ocho bytes. Variant Las variables de tipo Variant pueden contener datos de todos los tipos asi como los valores especiales Empty, Error y Null. Utilizar el tipo de dato Variant ofrece una mayor flexibilidad en el tratamien- to de los datos. Por ejemplo, si una variable de tipo Variant contiene cifras, puede tratarse de un valor real o de su representacion en forma de cadena, seguin el contexto. Sin embargo, las variables de tipo Variant requieren 16 bytes de memoria para los nimeros y 22 bytes mas la longitud de la cadena para los caracte- res; esto puede ser perjudicial en procedimientos largos o en médulos com- plejos. Ejemplo Sub Variable Variant () ‘Declaracién de la variable "Valx" como Variant Dim Valx As Variant ‘Asignacién de una sucesién de valores a la variable ‘y visualizacién del tipo de 1a variable *10 da Integer Valx - 10 MsgBox TypeName (Valx) ‘Bjemplo dato string Valx = "Ejemplo" MsgBox TypeName (Valx) VBA Excel 2002 EZ Capitulo 2 whee ‘Esta multiplicacién da Double Valx = 12500.32 * 1+21 MsgBox TypeName (Valx) "1/1/99 da Date valx = #1/1/998 MsgBox Typellame (Valx) ‘True da Boolean Valx = True MsgBox TypeName (Valx) End Sub Objeto El tipo es Object. Para crear una variable destinada a contener un objeto, empiece por declarar la variable como de tipo Objeto y asignele luego un objeto. +) Para declarar una variable Objeto : si el tipo del objeto es desconocido, utilice la sintaxis: InstrucciénDeclaracién NombreVariable As Object si el tipo del objeto es conocido, utilice la sintaxis: InstrucciénDeclaracién NombreVariable As TipoObjeto 48 | VBA Excel 2002 © Editions EN! - All rights reserved El lenguaje VBA Ejemplo Sub Variables _Objeto() ‘Test se declara como objeto ‘NombreCli se declara como hoja de cAlculo ‘AImprimir se declara como grafico Dim Test As Object Dim NombreCli As Worksheet Dim Almprimir As Chart End sub +) Para asignar un objeto a una variable Objeto, utilice !a instruccién Set: Set NombreVariable = ObjetoaAsignar Ejemplo Declaraci6n de una variable ZonaTest destinada a contener un objeto Range y asignacién de las celdas A6 a B15 a esta variable: Dim ZonaTest As Range Set ZonaTest = Range("A6 : B15") +) Para finalizar la asociacién entre una variable y un objeto preciso, utilice la sintaxis siguiente: Set NombreVariable = Nothing Definido por el usuario (o personalizado) Los tipos de datos personalizados se crean mediante la instruccién Type utilizada a nivel de médulo. VBA Excel 2002 ge aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 Ejemplo [r= 12 OO - a oO Montante = 12000 Nombre = "José Luis" b. Declaraciones explicitas Requieren el uso de una instruccién de declaracién (Dim, Public, Pri- vate...). Si el tipo de la variable no se precisa, se asigna a la variable el tipo predeterminado, Variant. Es posible imponer la declaracién explicita de variables utilizando la instruc- cién Option Explicit en la seccién de declaracion de cada médulo. Para que esta instruccién se inserte automaticamente en cada nuevo médulo, active la opcién Requerir declaracién de variables del ment Herramientas - Opciones - ficha Editor. Ejemplo Dim I Private Montante As Double Public Nombre as String @ Para optimizar la rapidez de ejecucién del cédigo VBA, es recomendable declarar las variables de forma explicita. c. Sintaxis de las instrucciones de declaracién NombreVariable [As ) Donde tnstrucciondeDeclaracion corresponde a una de las cuatro ins- trucciones siguientes: Dim, Public, Private 0 Static. Ex VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. El lenguaje VBA Empleo de un sufijo Debera afiadir uno de los caracteres siguientes al nombre de la variable: Sufijo Tipo de datos % Integer & Long ! Single # | Double @ Currency $ String _ Ejemplo Declara la variable como de tipo Cadena (String). Dim Nombres Declara la variable como de tipo Moneda (Currency). Dim UnNontanteé DefT ype Estas instrucciones se utilizan en la zona de declaracién del mdédulo para definir los tipos de datos predeterminados de las variables cuyos nombres empiezan por los caracteres especificados. Lista de instrucciones DefType : Tipo de datos _| Boolean Instruccién DefBool © Editions EN! - All rights reserved DefDbI Double VBA Excel 2002 Ea Capitulo 2 Instruccién Tipo de datos Defint Integer DefDate Date DefLng Long DefStr String Defcur | Currency DefObj Object DefSng Single DefVar Variant DefByte Byte Ejemplo Todas fas variables cuyos nombres empiezan por una letra comprendida entre | y K y por fa letra N son variables de tipo Entero (Integer). DefInt I-K,N Las variables que empiecen por una letra comprendida entre A y H serén variables de tipo Cadena (String). DetStr A-H Ea VBA Excel 2002 © Editions ENI - All rights reserved El lenguaje VBA 4. Las matrices Se puede crear una variable matriz cuando se necesita trabajar con un grupo de valores relacionados. +) Para crear una variable matriz, utilice la sintaxis siguiente: NombreMatriz (indices) Donde para (indices) : - Si omite este argumento: matriz de tamafio libre. ~ Si indica una cifra: matriz con un numero de elementos concreto. -Si indica LimiteInf To LimiteSup: matriz con un numero de elementos concreto y nuimeros de indice especificos. De modo predeterminado, el indice menor de una matriz es 0. +) Para modificar el valor del indice menor, utilice la instruccién Option Base NtmeroindiceMenor en la seccién de declaracién del médulo 0 utilice la sintaxis LimiteInf To LimiteSup en el argumento (indices). +) Para llenar el contenido de una matriz, utilice la funcién Array (la varia- ble debe ser una matriz de tamafio libre) o utilice datos contenidos en una hoja o bien indique una a una cada variable de la matriz utilizando indices, VBA Excel 2002 Ee Capitulo 2 Ejemplo EI ejemplo siguiente permite mostrar, en la hoja de Excel activa, fa lista de valores de conversién en Euros para 5 paises. Const ValorFRF = 6.55957 Const ValorBEF = 40.3399 Const ValorDEM = 1.95583 Const ValorEsP = 166.386 Const ValorITL = 1936€.27 Sub LosValores (} Dim Pais As Variant Dim Valor (5) As Double Dim i As Integer "Lista de paises Pais = Array ("Franc a", "Bélgica", “Alemania”, “Espafia", “Italia") Lista de valores por pais Valor (0) = Valor#RF Valor (1) = ValorBEF valor (2) = ValorDEM Valor (3) = ValorESP Valor (4) = ValorITL Muestra los paises y valores en la hoja de cAlculo ValorEuro For i= 0 To 4 With ActiveSheet cellsii + 1, 1) Cells(i + 1, 2) End With Pais (i) Valor (i) EE VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 5. Las constantes Una constante permite asignar un nombre explicito a un valor. a. Las constantes personalizadas La declaracién de una constante se hace con la instruccién Const en la seccién de declaracién de un mddulo o en un procedimiento. Const NombreConstante [As ] = As TipoDato el tipo de dato no puede ser ni un objeto (Object) ni un tipo personalizado (Type). expresién no puede ser ni una funcién definida por el usuario, ni una funci6n intrinseca de Visual Basic. Ejemplo Declaracién de algunas constantes. Sub Constantes () ‘jomplos de constantes permitidas: Const Vall = "Superior" const val2 = 148 Const Val3 = 125.45 ‘tipo de datos es entonces Double Const val4 As Single = 125.45 ‘Permite ahorrar memoria Const val§ = val2 * val3 Const Valé = Vall & " cuesta " @ Val2 ‘Rjemplo de constante no permitida: ‘Porque usa una funcién de VB Const val6 = Fix(Val4) End Sub fa VBA Excel 2002 © Editions EN! - All rights reserved El lenguaje VBA Para crear una constante accesible para todos los libros, es preciso declarar- la en la seccién de declaracién de un médulo y colocar la instruccién Public delante de la instrucci6n Const. b. Las constantes integradas Las constantes utilizadas por los objetos de Microsoft Excel van precedidas de las letras "xl", las constantes utilizadas con otras instrucciones y funcio- nes de Visual Basic van precedidas de las letras "vb", las constantes de Microsoft Office van precedidas de las letras "mso". +) Para ver la lista de las constantes integradas, abra el explorador de objetos pulsando sobre el icono 0 por medio de la tecla de funcién . Escriba la palabra Constants en la lista desplegable Buscar texto y pulse sobre el icono elcid BRI [ SLi sels] e] ale constants Resultados de la blisqueda eeeeeenoeeeeeee Biblioteca, ae ee, Iu yea @® FormShowConste H tie va @ KevCndeConstan | 3 Comments ‘)]© x308ar a 88 ConnectorFormat 4] x130Effects1 #8 Constants @ xBDEnects2 @® [Constants 1 |@ waDsurtace @ Cont! @ xiAbove a contrnttorm=t hea viscenuntinat a Enum Constants ial Mombro de Excet a VBA Excel 2002 Ha! Capitulo 2 +) Para conocer la lista de las constantes de Visual Basic, puede utilizar la ayuda de VBA. Teer tntepesteat | | constantes de visual Baste gut ces tart are aplcnenes defigsogtasig oars mplifenr la pragramacion, Se pueden Ula las Suierte conrtntes en culguer per del eSdge en ver aPlos vetoes reales ‘Ealandar (constante Seeccine ntenepwanomiais; || CaliTvoe (constant Necayoe (anes ot ostntes de can ! [constartes de cédigo detedes S|) = Constants de china de tales Basa endWet | || Constantes de color onstantes de color del stems a D.Las estructuras de decision A menudo es necesario comprobar condiciones especificas antes de ejecutar instrucciones. Las estructuras de decisién, llamadas también alternativas o bifurcaciones condicionales, permiten, al término de una evaluacién, optar por un bloque de cédigo u otro. Se distinguen dos instrucciones de bifurcacién condicional: - If... Then ... Else ~ Select ... Case 62 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Sub Test_Titulo() "Si la celda Al no esté vacia ‘se pone en negrita y pinta en rojo If Not IsEmpty (Range ("Al")) Then With Range ("Al") .Font Bold = True -Interior.ColoriIndex = 3 End With End If End Sub > If...Then...Else...End If If Then Else End If Ejemplo Creacién de un formato de nimero de tipo americano si la celda B1 con- tiene el texto "US", si no aplicacién de un formato de tipo inglés; formato aplicado a las celdas B2 a B10. Sub Test_Formato_A Aplicar( I£ UCase (Range ("B1")) — "US" Then Range ("B2:B10") NumberFormat ~ "0,00" swam Else Range ("B2:B10") NumberFormat = """£ "0,00" End If End Sub ca VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 1. La instrucci6én Do...Loop Ejecuta un bloque de instrucciones un ntimero de veces indeterminado. Sintaxis 1 Las instrucciones se ejecutan mientras la condicién devuelva True. Do While Loop Sintaxis 2 Las instrucciones se ejecutan una primera vez sin condicién y luego mien- tras la condicién devuelva True. Do Loop While Ejemplo: El cédigo siguiente solicita al usuario que escriba un numero mientras éste no sea numérico o inferior a 100. Din strRep Do strRep = InputBox("Escriba un numero > 100") Loop While (Not IsNumeric(strRep) Or strRep <= 100) End Sub Sintaxis 3 Las instrucciones se ejecutan hasta que la condici6n devuelva True (es de- cir, mientras la condicién devuelva False). Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 For Each Celda In ZenaControlada If IsNumeric (Celda) And Not IsEmpty (Celda) Then If Celda <0 Then Celda=0 End If End If Next [End Sub Ejecu de varias acciones sobre un objeto With objeto End With Ejemplo Sub Hojas_de_CAlculo| "Define la paginacién de la hoja activa ‘Imprime 1a hoja da célculo ‘Copia 1a hoja de célculo en un nuevo libro With ActiveSheet With .PageSetup .CenterHorizontally = True -CenterVertically = True -CenterHeader = "SF" -CenterFooter = "Pagina 6p" End With -PrintOut .Copy End With End Sub ey BA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 3. Los operadores légicos Permiten probar simultaneamente dos (o mas) valores booleanos 0 expresio- nes que devuelven este tipo de valor. Se utilizan generalmente con la ins- trucci6n IF. Operador Calculo realizado AND Si todas las expresiones tienen el valor True, el re- sultado es True. Si una de las expresiones tiene el valor False, el resultado es False. OR Si al menos una de las expresiones tiene como va- lor True, el resultado es True (0 inclusivo). XOR Si una y sdlo una de las expresiones tiene como valor True, el resultado es True (0 exclusivo). NOT Devuelve lo contrario de la expresién. Eqv Devuelve True si las dos expresiones son idénticas. Ejemplo (2>=1) AND (A=<9) devuelve True si A se encuentra entre 1 y 9, NOT (A >= 10) devuelve True si A es estrictamente inferior a 10, (A>0) OR (B>0) OR (C>0) devuelve True si al menos uno de ios valores es positivo 4. El operador de concatenacién El operador de concatenaci6n es el signo &. Permite ensamblar cadenas de caracteres, valores y expresiones. 76 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 2 4. Los nombres de procedimientos, variables y constantes Los nombres de los procedimientos, de las constantes, de las variables y de los argumentos deben respetar las reglas siguientes: - El primer caracter debe ser una letra, - las minusculas y maydsculas no se diferencian (se aceptan las letras acentuadas) aunque se respeta la diferenciacion, - no se deben utilizar nombres reservados de Visual Basic, llamados Palabras clave con restricciones, - no se debe usar el punto, el espacio, !, $, # ni @, - un nombre no puede tener mas de 255 caracteres, - para los procedimientos Function no se debe utilizar un nombre que pueda ser una referencia de celda, - no se deben indicar varias veces los mismos nombres de variables ni constantes en un mismo nivel de alcance. E 0 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 3 C.Principios de uso de los objetos y colecciones 1. Las propiedades Las propiedades sirven para describir un objeto. Ciertas propiedades son de lectura exclusiva y por ello no pueden modificarse mediante cédigo VBA. Sintaxis { | }. Ejemplo Modificacién del puntero del ratén Application.Cursor = xlWait + Mostar la versién de la aplicacién Excel activa ' Rata propiedad es de lectura exclusiva MsgBox Application. Version Application.Cursor = xlDefault 2. Propiedades que representan objetos Los objetos globales y los objetos instanciados en el cédigo a partir de clases proporcionadas por VBA cuentan con propiedades cuyo valor es ac- tualizado automaticamente por el sistema. Estas propiedades especificas permiten acceder directamente a ciertos obje- tos: ventana activa, libro activo, celdas de la hoja activa... La tabla si- guiente presenta las propiedades especificas utilizadas mas habitualmente. 88 VBA Excel 2002 © Editions ENI - All rights reserved programa orientada a objetos en Excel Propiedad Objeto Padre Objeto devuelto ActiveCell Application Objeto Range que representa la primera} Window celda activa de la ventana activa o especificada ActiveChart Application ‘Objeto Chart que representa el grafico Window activo Workbook ActiveControl Frame Objeto Control que representa el control Page (activex) activo UserForm ‘ActiveMenuBar |CommandBars |Objeto CommandBar que representa la) barra de menu activa en Excel | |ActivePane Window Objeto Pane que representa la ayuda flotante de la ventana activa ActiveSheet Application Objeto Worksheet que representa la hoja Window activa del libro activo o del libro Workbook especificado ActiveWindow Application Objeto Window que representa la ventana activa ActiveWorkBook |Application (Objeto Workbook que representa el libro de la ventana activa Next Chart Devuelve respectivamente el siguiente Previous Range (Next) o el anterior (Previous) objeto de| Worksheet la misma naturaleza (Chart, Range o| Worksheet) Parent Objetos Devuelve el objeto contenedor multiples VBA Excel 2002 ES Capitulo 3 Propiedad “Objeto Padre _ Objeto devuelto ‘Selection Application ‘Objeto Range que representa la o las Windows celdas seleccionadas ThisCell* Application Devuelve la celda a partir de la cual se llama la funcién definida por el usuario como objeto Range ThisWorkbook Application Objeto Workbook que representa el libro en el que se ejecuta el cédigo de la macro en curso ® Las propiedades especificas que devuelven un objeto Range (Cells, Off- set, Columns, Rows ...) se describen en detalle en el capitulo 4. 3. Los métodos Los métodos permiten efectuar acciones vinculadas a los objetos. Presentan cierto parecido con los procedimientos: - pueden utilizar o no argumentos, ~ algunos métodos pueden devolver un valor al igual que los procedimientos Function, y otros no, al igual que los procedimientos Sub. Sintaxis de método que no devuelve ningun valor { | ). [] Ea VBA Excel 2002 © Editions EN! - All rights reserved La programacion orientada a objetos en Excel Ejemplo ‘Activa 1a 2a hoja de célculo del libro en curso Application.Goto ActiveWorkbook.Worksheets (2) .Range ("AL") ‘ Salecciona un rango de celdas Range ("Al:Ci2") .Select: ‘ Borra las celdas seleccionadas Selection.Clear * Guarda el libro activo con un nuevo nombre ActiveWorkbook .SaveAs "C: \presupuesto\presupuesto2.x1s" Gal igual que en los procedimientos, los diferentes argumentos de un método deben ir separados por comas. Si un argumento facultativo no esta definido explicitamente, el método utilizaré un valor predeterminado. Sintaxis de método que devuelve un valor = { | }. (] Ejemplo + Muestra un cuadro de diélogo Abrir strFileNane = Application. GetOpenFilename (FileFilter Libros de Excel (*.xls), *.xIs", _ Title:="Seleccione el archivo a abrir") $i se ha seleccionado un archivo, éste se abre If strFileName <> False Then Workbooks.Open strFileName End If VBA Excel 2002 zi Capitulo 3 4. Los sucesos Un suceso es una acci6n especifica que se produce sobre o con un cierto objeto. Microsoft Excel puede responder a diversos tipos de sucesos: apertu- fa o cierre de un libro, seleccién de celdas, adicién de una hoja de calculo... Los sucesos son resultado generalmente de una accion del usuario. El uso de un procedimiento de suceso permite asociar cédigo propio en respuesta a un suceso que se produce en un libro, una hoja o un formula- tio. Ejemplo Cuando el usuario agrega una nueva hoja de calculo al libro, se muestra un mensaje al usuario. Camere ae x) Lahoia tees Uihera bea reoriens El reimeio de hojas del libro es ahora de 5 Private Sub Workbook NewSheet (ByVal Sh As Object) MsgBox “La hoja " & Sh.Name 6 Chr(13) @ _ “se acaba de afiadir al libro " & ActiveWorkbook.Name & Chr(13) & _ “El numero de hojas del libro es ahora de “ & ActiveWorkbook .Worksheets .Count End Sub Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 3 Private Sub Abrir_Libro(strNeme As String) Workbooks. Open End sub Open Filename As String, (UpdateLinks), (ReacOny, [Formed [Fassword, [WnteResPassword, UgnoreReadOnlyRecommended, (Origin), (Delimited, (Editable), [wou (Converter, (AdcToMns, (Local, [Corrupit oad) AS Workbook: Ahora aparece la lista de argumentos del método, que se adapta a medida que se van introduciendo. Los argumentos facultativos van entre corchetes. El argumento actual se destaca en negrita. Si para un argumento dado existe una lista de valores predefinidos, aparecera una lista desplegable con las constantes correspondientes. También se puede activar la lista de propiedades y métodos de la forma siguiente: - coloque el cursor detras del punto situado tras el método, - pulse el botén secundario del ratén para que aparezca el menu contextual, - seleccione la opcién Lista de propiedades y métodos. “A Usta de constantes BS Informacion répida Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 3 Ejemplo Creacién de un libro con dos hojas, y asignacién de un nombre a cada una. Dim Libro As Workbook Dim i As Integer * Creacién de un nuevo libro Set Libro = Applicat ion.Workbooks .Add * Supresién de las hojas a partir de la tercera With Libro For i = 3 To .Worksheets.Count Worksheet s (i) .Delete Next i * Asignacién de nombres a las hojas 1 y 2 ‘entas Afio 2000" Worksheets (1) .Name -Worksheets (2) .Name = "Ventas Afio 2001" .SaveAs " End With :\Wentas\Historial"” Modificacién de una hoja en un libro abierto. Dim Libro As Workbook Dim Hoja As Worksheet Set Libro = Application. Workbooks! [Historial.xis] Set Hoja = Libro.Worksheets! [Ventas Alo 2001) With Hoja -Name = "Ventas 2000" -Range("A2") = "Ventas del aflo 2000" End With Set Hoja = Nothing iy VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 Cc. El objeto Worksheet... 2... 2-2... 2 eee ee 143 1. Lista de objetos y colecciones 2... ....2.-00.% 144 2. Objetos ycolecciones 2.6... ee 144 3. Propiedades 2... ee ee 147 4, Métodos. 2. ee ee 150 5. Ejemplos de cédigo que utiliza el objeto Worksheet .. .. 152 El objeto Range... 2... ee ee ee os 155 1. Propiedades y métodos que devuelven un objeto Range .. 156 2. Sintaxis de las propiedades que devuelven un objeto Range. 2... ee ee 158 3. Lista de objetos y colecciones ...........00. 163 4. Objetos ycolecciones .. 22... . ee ee ee 163 5. Propiedadés . 2. ce cee wee ee ee 165 6. Métodos que devuelve un objeto... 22... ee 168 7. Métodos que no devuelven ningiin objeto... 169 Ejemplos de uso de objetos ...........2% 176 1. Calculo del montante de una prima... .......2. 176 2. Asignacién de comentarios aceldas............ 178 Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 4. 5. ShowWindowsinTaskBar DisplayCommentindicator Constantes Booleano Constante xINoIndicator, xlCommentindicatorOnly xlCommentAndIndicator. Las opciones siguientes se refieren a la propiedad ActiveWindow del objeto Application. 6. ts 8. 9. 10. 11. 12. 13. 14, DisplayFormulas DisplayGridlines GridlineColorIndex DisplayHeadings DisplayOutline DisplayZeros DisplayHorizontalScrollBar DisplayVerticalScroliBar DisplayWorkbookTabs. Booleano Booleano Entero largo Booleano Booleano Booleano Booleano Booleano Booleano Ez a VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 2. Propiedades del Sistema MemoryFree Entero largo. Tamafio en bytes del espacio de memoria actualmente disponible para Excel. MemoryTotal Entero largo. Tamajio total en bytes de la memoria disponible para Mi- crosoft Excel, incluyendo la memoria ya utilizada. MemoryUsed Entero largo. Tamafio de la memoria (en bytes) utilizada actualmente por Microsoft Excel. OperatingSystem Cadena de caracteres. Devuelve el nombre y el niimero de versién del sistema operativo. 3. Propiedades relativas a la ventana de la aplicacién Height Real doble. Altura de la ventana. Left Real doble. Distancia entre el borde izquierdo de la pantalla y el borde izquierdo de la ventana principal de Microsoft Excel. Top Real doble. Distancia entre el borde superior de la pantalla y el borde superior de la ventana principal de Microsoft Excel. Fa VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 Hwnd * Entero largo. Devuelve un objeto que designa el handle de ventana su- perior de la ventana de Microsoft Excel. MapPaperSize * Booleano. Indica si los documentos se ajustan automaticamente al cam- biar el tamafio del papel. MouseAvailable Booleano. Indica si esta disponible un ratén. PreviousSelections Variant. Devuelve una tabla de objetos Range con los cuatro ultimos rangos seleccionados, Ready * Booleano. Indica si la aplicaci6n Microsoft Excel esta a punto. ReplaceFormat * Booleano. Define los criterios de reemplazo a utilizar al reemplazar for- matos de celda (se usa con la propiedad FindFormat). TemplatesPath Cadena de caracteres. Camino de acceso a las plantillas. Version Cadena de caracteres. Numero de versidn de la aplicacién Excel activa. fg VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 GetSaveAsFilename Abre el cuadro de didlogo estandar Guardar como y lee un nombre de archivo escrito por el usuario sin guardar realmente el archivo. GoTo Selecciona un rango o un procedimiento de Visual Basic cualquiera en cualquier libro y activa éste si no lo esta. Help Muestra un mensaje de ayuda. InchesToPoints Convierte una medida de pulgadas a puntos. InputBox Abre un cuadro de didlogo en el que el usuario puede escribir datos. Devuelve los datos escritos en el cuadro de didlogo. Intersect Devuelve un objeto Range que representa la interseccién rectangular de dos o mas rangos. MacroOptions Corresponde a las opciones del cuadro de dialogo Opciones de macro. MailLogoff Cierra una sesién de mensajeria MAP! abierta por Microsoft Excel. Eg VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 b. Creacién de una lista personalizada Dim i As Integer Dim Numbist As Integer Dim TabList As Variant With Application ' Selecciona las columnas 1, 3 y 5. -AddCustomList Array("Este", "Norte", "Oeste", "Sur", "Centro") ' Copia el contenido de la lista en una matriz NumList = .GetCustomListNum(Array("Este", "Norte", "Oeste", "Sur", "Centro")) TabList = .GetCustomListContents (NumList) ' Muestra el contenido de la lista en columna For i = LBound(TabList, 1) To UBound(TabList, 1) Cells(i, 1) = Tabbist (i) Next i End With c. Seleccién de columnas separadas Dim MultipleRange As Range + Crea un objeto range con las columnas 1,3 y 5 Set MultipleRange = Application.Union (Cells(i, 1), _ Cells(1, 3), Cells(1, 5)).EntireColumn ' Bone en negrita las celdas y las selecciona Mult ipleRange.Font .Bold = True Mult ipleRange. Select EI VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 Names Coleccion de los rangos de celdas con nombre de un libro. PublishObjects Coleccién de los elementos de un libro que se han guardado en una pagina Web y pueden actualizarse. Styles Coleccién de los estilos de un libro. Windows Coleccién de todas las ventanas de la aplicacién Excel. Worksheets Coleccién de las hojas de calculo de un libro. 3. Propiedades AcceptLabelsInFormulas True si se puede utilizar etiquetas en las formulas de hoja de calculo. AutoUpDateFrequency Devuelve o define el numero de minutos que separan dos actualizacio- nes automaticas en el libro compartido. Si esta propiedad recibe el valor O, la actualizacion sdlo se da al guardar el libro. AutoUpDateSaveChanges True si las modificaciones aportadas actualmente al libro compartido se han transmitido a los demas usuarios desde que el libro se actualiz6 automéaticamente. Eg VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 ReadOnly True si el libro se ha abierto en lectura exclusiva. ReadOnlyRecommended True si el libro se ha guardado en lectura exclusiva recomendada. RemovePersonallnformation * Booleano. indica si los datos personales pueden suprimirse del libro especificado. RevisionNumber Devuelve el nuimero de veces que el libro se ha guardado mientras ha estado abierto como lista compartida. Routed True si el libro se ha distribuido al destinatario siguiente y False si el libro debe distribuirse. Saved True si el libro especificado no se ha modificado desde su Ultima graba- cién. SaveLinkValues True si Microsoft Excel guarda los valores de los vinculos externos con el libro. ShowConflictHistory True si la hoja de calculo Historial de los conflictos es visible en el libro abierto como lista compartida. 1132 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 5. Lista de métodos Métodos miembros de acceso PivotCaches Devuelve una coleccién PivotCaches que representa todos los cachés de tablas cruzadas dinamicas del libro especificado. Métodos destacables AddToFavorites Agrega el libro especificado a la lista de favoritos de la barra de herra- mientas Web. AcceptAllChanges Acepta todas las modificaciones aportadas al libro compartido especifi- cado. Activate Activa la primera ventana asociada al libro especificado. CanCheckOut* Devuelve un booleano que indica si Excel puede extraer un libro especi- ficado a partir de un servidor. ChangeFileAccess Modifica los permisos de acceso al libro, lo que puede implicar la nece- sidad de cargar, desde el disco, una versién actualizada. ChangeLink Modifica un enlace entre dos documentos. fea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 SaveAs Guarda el libro especificado en otro archivo (equivale a la opcién Guar- dar como de! ment Archivo). SaveAsCopy Guarda una copia del libro en un archivo sin modificar el libro abierto en memoria. SetLinkOnDate Define el nombre de un procedimiento ejecutado en cada actualizacién de un enlace DDE. UnProtect Suprime la proteccién del libro especificado. UnprotectSharing Desactiva la proteccién contra recurso compartido y guarda el libro. UpdateFromFile Actualiza un libro en lectura exclusiva a partir de la version del libro guardado en disco, si esta version es mas reciente que la copia del libro cargada en memoria. Si la copia del disco no ha sido modificada desde que se cargé el libro en memoria, la copia del libro residente en memo- ria no se vuelve a cargar. UpdateLink Actualiza uno o mas enlaces de Microsoft Excel, DDE u OLE. WebPagePreview * Muestra una vista preliminar del libro especificado, tal como se veria si estuviera guardado en forma de una pagina Web. Eg a VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 1. Lista de objetos y colecciones Extracto del modelo de Objeto de Excel - el objeto Worksheet ‘WortBoaks (Workbool) Worksheets Worksheet) ‘AutoFiter Pitabies (Phat Tati) ‘CharsOnjects (ChanObject Protection ‘Comments (Comment) QueryTables (QueryTable) —{GostomProperteos Range HPageBreaks (HPageBreak) ‘Scenarios (Scenario) Hyperlinks (ypariiat) Shapes (Shope) ‘OLEOHjects (OLEOKjoch Te. Outing ‘Wagetiraaks (Vpayetreak) PageSetup teyend® [ Cotecciones: Objetos 2. Objetos y colecciones Los objetos AutoFilter Objeto que representa el filtro automatico de la hoja de calculo especifi- cada, 1.44 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 DisplayPageBreaks Booleano. Indica si los saltos de pagina (automaticos y manuales) de la hoja especificada son visibles. DisplayRightToLeft Booleano. Corresponde a la opcién Mostrar la hoja activa de derecha a izquierda de! cuadro de dialogo Herramientas - Opciones - ficha Inter- national. EnableCalculation Booleano. Indica si Excel recalcula automaticamente la hoja de cdlculo cuando es necesario. FilterMode Booleano. Indica si se aplica un filtro sobre la hoja especificada. MailEnvelope * Representa la cabecera de mensaje electrénico para la hoja especifica- da. Name Cadena de caracteres con el nombre de la hoja de calculo. Protect Booleano que indica si el contenido de la hoja especificada esta protegi- do. ProtectDrawingObjects Booleano que indica si los graficos estan protegidos. Eg 8 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 ShowAllData Muestra todas las lineas de la lista actualmente filtrada. ShowDataForm Muestra los datos de la hoja de calculo especificada en forma de formu- lario (corresponde a la opcién Formulario del ment Datos). UnProtect Desactiva la proteccién de la hoja de calculo especificada. 5. Ejemplos de cédigo que utiliza el objeto Worksheet a. Ordenacién de las hojas de calculo de un libro El ejemplo siguiente permite: ~ Ordenar las hojas de un libro, - Modificar el color de las fichas de cada hoja. Sub OrganizaHo jas () Din Hoja As Worksheet Dim i As Integer * Ordenacién de las hojas del libro activo Ordenaliojas Activedorkbook ' Racorre las hojas de calculo For i = 1 To ActiveWorkbook. Worksheets .Count Set Hoja = ActiveWorkbook. Worksheets (i) EJ VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 1. Propiedades y métodos que devuelven un objeto Range Propiedades que devuelven un objeto Range Propiedad Objeto Objeto devuelto contenedor ‘ActiveCell Application |Objeto Range que representa la primera celda Window activa de la ventana activa o especificada. \Areas Range Coleccién que engloba todos los rangos en una seleccién multiple. ‘Cells Application |Objeto Range que representa una celda o una Range coleccién de celdas: | 'WorkSheet —_- de la hoja activa si el objeto contenedor es Application - del rango especificado si el objeto contenedor es Range - de la hoja de calculo especificada si el objeto contenedor es Worksheet. Columns Application |Objeto Range que representa todas las! Range columnas: WorkSheet __|- de la hoja activa si el objeto contenedor es Application |- del rango especificado si el objeto contenedor es Range - de la hoja especificada si el objeto contenedor es Worksheet. Current- Range Objeto Range que representa el objeto Range, Region especificado, limitado por —cualquier| combinacién de lineas y columnas vacias. EntireColumn Objeto Range que representa una o méas| columnas completas del rango especificado. Eg VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 Sub HojaResultado () Dim i As Integer Dim Regiones With Application. Act iveSheet -Range("B1") Value = "Resultados trimestrales" ' Mes en columna For i= 1703 -Range("A" & i + 3).Value Format ((DateValue("O1/" 6 4 & "/01")), "MMMM" Next i ' Regiones en linea Range ("B3:E3") .Value = Array("Este", "Oeste", "Sur", “Norte") ' Formato de celdas Range ("B4:E7") NumberFormat = "# ##0.00 F" Range("A7") .Value = "Totales" ' Nombra las celdas con los totales + Asigna una férmula a las celdas nombradas Name = "Totall" Range ("37 Range ("Totall").Fermala SUN (B4:B6) " Range ("C7") .Name = "Total2" Range ("Total2 SUM(C4:C6)" Formula Range ("D7") .Name = "Total Range ("Total3").Formula = "=SUM(D4:D6)" Range ("E7") .Name = "Total4" Range ("Total4").Formula = "=SUM(E4:E6)" End With End Sub Eg VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 FormulaHidden ShowDetail FormulaLocal Text FormulaR1C1 Top FormulaR1C1Local Value Height VerticalAlignment Hidden Width HorizontalAlignment = WrapText Left IndentLevel Locked MergeCells NumberFormat ShrinkToFit NumberFormatLocal 6. Métodos que devuelve un objeto ColumnDifferences Devuelve un objeto Range que representa todas las celdas cuyo conteni- do es diferente al de la celda de comparacién en cada columna. Find Busca una informacién especifica en un rango y devuelve un objeto Range que representa la primera celda donde aparece dicha informa- cién. 168 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 FillDown Rellena el rango especificado de arriba abajo a partir de la o las celdas situadas en la parte superior de dicho tango. E| contenido y el formato de la o las celdas de la linea superior de un rango, se copian en todas las dems lineas de dicho rango. FillLeft Copia hacia la izquierda a partir de la o las celdas mas a la izquierda del rango especificado. FillRight Copia hacia la derecha a partir de la o las celdas mas a la derecha del rango especificado. FilUp Rellena el rango especificado de abajo arriba a partir de la o las celdas situadas en la parte inferior de dicho rango. FunctionWizard Inicia el Asistente de Funcién para la celda situada en la esquina supe- rior izquierda del rango. GoalSeek Calcula los valores necesarios para alcanzar un resultado especifico. Group En un plan, aumenta el nivel del rango en el plan. El rango debe ser una linea o una columna completa o un rango de lineas 0 de columnas. Para un rango discontinuo de un informe de tabla cruzada dinamica, agrupa el rango. Para una sola celda del rango de datos de un campo de tabla cruzada dinamica, efectia una agrupacién numérica o cronoldgica en ese campo. 172 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 4 Sub Compara_Valor(rngl As Range, rng2 As Range) Dim dbli, dbl2, dbl3 As Double Dim strfvol As String ‘Compara los valores de 1i With rngl dbll = rng2.value dbl2 = .Value db13 = (db12 - dbl1) / dbl strEvol = Format (Abs (db13), "0.00 8") Select Case dbl3 dos celdas y igna un comentario Case Is < 0 -Font.Bold = True -AddComment "“Atencién: en baja de " & strEvol Case Is < 0.2 -Font. Italic = True -AddComment "Bien: en alza de " & strEvol Case Else -Borders.LineStyle = xlContinuous -AddComment "Excelent! End Select End With : en alza de" & strévol End Sub Ey VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 5 "gQué mes se borraré?", _ Borrado de celdas") On Error GoTo 1 Application.Goto reference :=opcién Selection.Clear Exit Sub 1 MsgBox "Imposible borrar" End Sub 2. El método InputBox Actiia como la funcién InputBox pero permite controlar el tipo de datos a introducir. objeto. InputBox (prompt , title, default, left, top, helpfile, helpContextID, type) El objeto es necesario, se trata obligatoriamente del objeto Application. prompt Mensaje mostrado. title Titulo del cuadro de didlogo. default Valor propuesto de modo predeterminado. left Posicién horizontal de! cuadro de dialogo (en puntos). top Posicién vertical de! cuadro de didlogo (en puntos). helpfile Nombre del archivo de ayuda en linea. help Nd&mero de contexto en la ayuda. ContextID 188 VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 5 Modalidad vbApplicationModal 0 Aplicacion moda. El usuario debe responder al Mensaje mostrado en el cuadro de mensaje antes de poder proseguir su trabajo en la aplicacién en curso. |vbSystemModal 4096 | Sistema modal. Todas las aplicaciones se interrumpen hasta que el usuario responda al mensaje mostrado en el cuadro de mensaje. Presentacién vbMsgBoxSetForeground | 65536 | Muestra la ventana de mensaje en {primer plano, lvbMsgBoxRight 524288 | Alinea el texto a la derecha. vbMsgBoxRtlReading 1048576 | Define un orden de lectura de derecha a izquierda para los sistemas hebreos y arabes. Los valores de retorno posibles también se definen mediante constantes: Constante Valor de retorno Boton elegido vbOK 1 Aceptar |vbCancel 2 Cancelar vbAbort 3 Abandonar vbRetry 4 Repetir vblgnore 5 Ignorar vb¥es [6 si Z vbNO Z. No Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 5 1196 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 6 SelectionMargin Especifica si el usuario puede seleccionar una linea de texto pulsando en el area a la izquierda del texto. TabKeyBehavior Determina si se permiten tabulaciones en el cuadro de edicién. TextAlign Indica la alineaci6n del texto en un control. WordWrap Indica si se afade un retorno de carro automaticamente al contenido de un control al final de una linea. Recapitulacién de las propiedades por objeto S15 jese @ BIS @ 18 8 lf 8 Bae a ilo [eZ es Sia gs |£ |@ |2 |B | fit BEEBE SE 68 6 a 25 238 5 8 8 3 |g |8 je © IF | r i] i? | + t (Name) xX |x |x ix |x [x jx |x X_|x_|x_|x x Accelerator x x x x | AutoSize x_|x_|x x_|x X_| x x ‘AutoTab _ |x 1 7 | xX | |x AutoWordSelect x | x X BackColor x_|x_ [x ix |x [x [x ix |x x |x ix [x ix |x BorderColor x IX JX (xX |x | XI X BorderStyle x x |x ix [x | x |_|x Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Los formularios uP38u wo 1957) XJ woynga1830) XOB aL diysqeL X_|X |X |X |X X |X |X |X X_|X |X |X |X {x |x [x uoynguids \uegnois lornguondo x aBedninw x xOgIS!1 X 1X |X XX [xX 1X [XC [Xx |X |X X |X |X |X 1X [xX |X IX [x X |X |X |X |X |X |X IX 1X [K X IX |X |X |X 1X 1K IX [X[K x 1eqe7 xX x ese) xX X |X |X |X [xX 1X |X [X |X |X [xX [XK X_{X |X 1X |X X_|X |X 1X |X x aweld x x x Xx >| >| juonng puWWOD, x xogoquiog x x XOHIAUD Xx x x DbiClick DeActivate DropButtonClick Enter, Error Exit Initialize | KeyDown, | KeyPress KeyUp Layout MouseDown MouseMove MouseUp RemoveControl Terminate Scroll SpinDown SpinUp Zoom | QueryCLose Resize ansasay SIUBU {IY ~ INF SUONIPI @ VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions ENI - All rights reserved Mejorar la interfaz de usuario = en el médulo ThisWorkbook inserte el cédigo VBA siguiente (parrafo 3) para mostrar los ments al abrir el libro y volver a mostrar los ments de Excel al cerrar el libro. 1. Cédigo VBA de declaracién de variables Option Explicit * Declaracién de variables Dim Menul As CommandBarPopup Dim Menu2 As CommandBarPopup Dim Barral As CommandBar Dim Barra? As CommandBar Dim Opell As CommandBarCont rol Dim Ope12 As CommandBarCont rol Dim Ope13 As CommandBarCont rol Dim Ope21 As CommandBarCont rol Dim Ope22 As CommandRarCont rol Dim Ope23 As CommandRarCont rol Dim btnl As ConmandBarButton Dim btn2 As CommandBarButton Dim btn3 As CommandBarButton Dim btn4 As CommandBarButton Dim btn5 As ConmandBarButton 2. Cédigo VBA que permite crear y mostrar los diferentes ments Sub Init_Menus() ‘Barras da comandos Crear_Barras Mostrar_Barras Proteger_Pos Barras ' Mends Agregar_Menus Titulos_Menus VBA Excel 2002 | 227| aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved Mejorar. la interfaz de usuario ade Next ‘Mostrar las barras de herramientas personalizadas Applicat ion.ConmandBars ("Menul") .Visible = True Barra2.Visible - True End Sub 4. Proteger una barra Utilice la propiedad Protection de la barra y asignele una o la suma de las constantes siguiente: msgBarNoProtection msgBarNoCustomize msgBarNoResize msgBarNoMove msgBarNoChangeVi: msgBarNoChangeDock ible msgBarNoVerticalDock msgBarNoHorizontalDock Ejemplo Procedimiento para impedir e/ acceso al mend Agregar/quitar botones Sub Proteger_Posicion_Barras() * Proteccién de las barras de ments Application ,ConmandBars ("Menai") .Protection = msoBarNoCustomize Barra2.Protection = msoBarNoCustomize End Sub VBA Excel 2002 Ha aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! All rights reserved Mejorar la interfaz de usuario Sub Introducir () ‘Introduccion de datos: las dos barras creadas estan ocultas Application.ScreenUpdating = False + Be muestra un mensaje MsgBox "Escriba los nuevos datos y pulse sobre Cont inuar" ' Se afiade el botén de comando "Continuar" ActiveSheet Buttons.Add(200, 30, 90, 20) .Select With Selection -Characters.Text = "Cont inuar" -OnAction = "Fin_Introduccion" -Name End with * 81 cursor se coloca en la 1a celda de la tabla Range ("C5") Select ‘Las barras de comandos son invisibles Barral.Visible = False CommandBars ("Menu2").Visible = False End Sub Continuar" Sub Fin_Introducir() ‘Este procedimiento se desencadena cuando el usuario pulsa el botén Continuar Application.ScreenUpdating = False Barral.Visible = True ‘Las barras de mens son visibles y la opcién Imprimir disponible CommandBars ("Menu2") .Visible = True Ope21.Enabled = True btn4.Enabled = True Opell.FaceId = 47 *‘ Supresién del botén Continuar ActiveSheet .Shapes ("Continua") . Select Select ion.Delete End sub Sub Modificar_Anchura () ' Ajuste de Ja anchura de las column Columns ("D:5") .EntireColumn .AutoFit End sub VBA Excel 2002 a aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions ENI - All rights reserved Tratamiento de sucesos © en las hojas de cdalculo, tras seleccionar WorkSheet, se propone de modo predeterminado el suceso SelectionChange. Private Sub Vorksheet_selectiontey End sub Public NumModifs As Integer Private Sub Worksheet_Change(ByVal Target As Excel.Range) ‘Bn cada modificacién de celda, un contador se incrementa en 1 NumModifs = NumModifs + 1 End Sub Private Sub Worksheet_Deactivate () Dim Guardar "Cuando se desactiva la hoja, si ha habido modificaciones ‘se llama a su numero y se pregunta si la hoja ‘debe guardarse, a continuacién el contador de modificaciones reinicia a cero If NumModifs > 0 Then Guardar = MsgBox("Se han hecho " & NumModifs & _ " modificaciones" _ & vbCr & "{Quiere guardarla?", vbYesNo} If Guardar = vbYes Then ActiveWorkbook. Save End If NumModifs = 0 End If End Sub VBA Excel 2002 | 241] aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 8 +) Seleccione el objeto asi creado en la lista de la izquierda del médulo y seleccione el suceso esperado en la lista de la derecha. Escriba el codigo de los procedimientos a generar. Ejemplo Creacién de dos sucesos: uno afecta a la desactivacién del grafico incorpo- rado y el otro su redimensionado. Private Sub Gréficol Deactivate() "En cada desactivacién del gr&fico incorporado ‘se pregunta si el libro debe guardarse Respuesta = MsgBox (" {Guardar los cambios?", vbYesNo) If Respuesta = vbYes Then Act iveWorkbook . Save End If End Sub Private Sub Graficol_Resize() "Zn cada redimensionado del grafico ‘se muestra la altima celda oculta por este iltimo Set GrafProbado = Worksheets (1) .ChartObjects (1) MsgBox prompt:="Este grafico occulta hasta la celda "“ & _ GrafProbado.BottomRightCell Address End Sub Bai VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions ENT - All rights reserved Tratamiento de sucesos D.Los sucesos del objeto Workbook Activate Ocurre cuando se activa el libro. AddinInstall Ocurre cuando se instala el libro en forma de macro complementaria. AddinUninstall Ocurre cuando se desinstala el libro en forma de macro complementaria. BeforeClose Ocurre antes de cerrar el libro; si el libro se ha modificado, este suceso se produce antes de invitar al usuario a guardar los cambios. BeforePrint Ocurre antes de la impresién del libro (0 de cualquier elemento de éste). BeforeSave Ocurre antes de guardarse el libro. Deactivate Ocurre cuando se desactiva el grafico, la haja de calcula o el libro. NewSheet Ocurre cuando se crea una nueva hoja en el libro. VBA Excel 2002 Ey aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 9 A.Los diferentes tipos de error Se distinguen diferentes tipos de error en el lenguaje VBA: ~ los errores de sintaxis, — los errores de compilacién, - los errores de ejecucién, — los errores de légica. 1. Los errores de sintaxis Los errores de sintaxis pueden detectarse automaticamente mientras se es- cribe el cédigo en VBA. Para activar la verificacin de sintaxis: en el ment Herramientas, seleccione Opciones, seleccione la ficha Editor y marque la casilla Verificaci6n au- tomatica de la sintaxis. Roos Se espatabe Ther S0To Come) eal Ea VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 9 Las diferentes herramientas de depuracién permiten: — conocer en todo momento el valor de variables o expresiones, - ejecutar instrucciones, - modificar interactivamente el cédigo, - ejecutar el codigo paso a paso, - afiadir puntos de parada. 2. La barra de herramientas Depuraci6n La barra de herramientas Depuracién permite acceder directamente a las distintas herramientas de depuracion. bs) + 5 \ + 3 1. Modo creacién: activa o desactiva el modo creacién. 2. Ejecutar (método abreviado EJ): ejecuta el cédigo del procedimiento en curso, la hoja UserForm activa o una macro. 3. Parada (método abreviado Ewes): interrumpe la ejecucién del progra- ma en curso y pasa al modo Parada. 4. Reiniciar: borra el contenido de las variables y reinicia el proyecto, 5. Conmutar el punto de parada (método abreviado [2]): define o suprime un punto de parada en la linea en curso; el cédigo se ejecuta hasta el punto de parada, y pasa al modo depuracidn. 6. Paso a paso detallado (método abreviado [3]): ejecuta el codigo mar- cando una parada tras cada instruccién del procedimiento en curso y los procedimientos llamados. Eel VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 9 1. El objeto Err El objeto Err contiene datos que permiten conocer el origen de un error de ejecucién. Propiedades Description Devuelve una cadena de caracteres que explia el origen del error. HelpContext Devuelve el identificador de contexto asociado a una ribrica de un ar- chivo de ayuda. HelpFile Devuelve una cadena de caracteres con el camino de acceso completo al archivo de ayuda. LastDLLError Devuelve un cédigo de error del sistema producido por una llamada a una biblioteca de enlace dinaémico. Number Devuelve un valor numérico que indica el numero del error. Source Devuelve una cadena de caracteres con el nombre del objeto o de la aplicacion que ha generado el error. Bal VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved Enlaces entre aplicaciones 2. Objetos y colecciones Word Documents Coleccién de todos los archivos de Word (objetos Document) abiertos. Dictionaries Coleccién de todos los diccionarios personales activos (objetos Dictio- nary). EmailOptions Objeto con los atributos globales que Microsoft Word utiliza cuando se crean y modifican mensajes electrénicos y respuestas a dichos mensa- jes. FileConverts Coleccién de todos los conversores de archivo (objetos FileConvert) dis- ponibles para abrir y guardar archivos. FontNames Objeto con Ia lista de nombres de todas las fuentes disponibles. Languages Coleccién de idiomas (objetos Language) utilizados en Word para las verificaciones lingiiisticas y el formato. ListGalleries Coleccién de las tres primeras fichas (objetos ListGallery) del cuadro de didlogo Numeracién y vifietas. Objeto que representa el mensaje electrénico activo si Word es su editor de correo electrénico. VBA Excel 2002 | 277] aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions ENI - All rights reserved Enlaces entre aplicaciones CurrentProject Objeto que agrupa varias colecciones de objetos de Access para el proyecto en curso (All Forms: coleccién de todos los formularios de la base). CurrentData Objeto que agrupa varias colecciones de objetos de Access de acceso a datos para el proyecto en curso. (All Tables: coleccién de todas las tablas de la base). 3. Ejemplo Este ejemplo muestra como: - Abrir la tabla "Empleados" de la base de datos Gestpers.mdb, — Suprimir todos los registros de dicha tabla, — Agregar a la tabla los empleados introducidos en la hoja de calculo "Empleados", - Iniciar Access y efectuar una vista preliminar del informe titulado ‘Lista de empleados'. © £1 uso de este ejemplo requiere la seleccién de la referencia de Microsoft ActiveX Data Objects Library (ADO). Esta biblioteca contiene los objetos de acceso a los datos que permiten la manipulacién directa de bases de datos. VBA Excel 2002 Es aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editions EN! - All rights reserved Enlaces entre aplicaciones 2. El enlace > DDE La funcién DDE permite entablar una conversacién DDE con otra aplicacién, solicitarle elementos de informacién para mostrarlos en un control que figure en un formulario o en un informe. Sintaxis DDE (, , ) Aplicacion Expresién de cadena que identifica una aplicaci6n, Rébrica Archivo de documento 0 archivo de datos. Elemento Referencia a un dato de la aplicacién Origen. > DDESend La funci6n DDESend permite entablar una conversacién DDE con otra apli- cacién, y enviar un elemento de informacion a dicha aplicacién desde un control situado en un formulario o en un informe. Sintaxis DDESend(, , , ) Aplicacion Expresién de cadena que identifica una aplicacién. Ribrica Archivo de documento 0 archivo de datos. Elemento Referencia a un dato de Ia aplicacién Origen. Datos Cadena o expresién con los datos a enviar a la aplicaci6n. VBA Excel 2002 Ey aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 11 A.Consultas en Internet Para insertar una tabla proveniente de un sitio de Internet, a partir de Excel, utilice el método siguiente: +) Seleccione la opcién Datos externos del menti Datos y pulse sobre Nue- va consulta en el Web... para mostrar un cuadro de didlogo de navega- cién por Internet. +) Escriba la direccién del sitio Internet deseado. +) Seleccione las zonas a importar por medio del icono [I situado arriba a la izquierda de cada tabla, y el icono se transforma en cy +) Modifique eventualmente las opciones de consultas pulsando el botén Opciones. +> Pulse el boton de comando Importar. +) Seleccione el destino de la tabla en el cuadro de didlogo Importar datos y pulse sobre Aceptar. 1302 | VBA Excel 2002 aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. Capitulo 11 +) Pulse el botén Opciones del cuadro de didlogo Modificar la consulta en el Web. [Opciones de consulta Webs Fermato Neguno 1+ © pir solamente Inport corfiguraciin paras bloques
 can Frmatepreiko —
24 Inportrblogues 
 en colunnas
SW rater os deimtasores consecutios cama une slo
es ee
‘ras cocones de mpartadién,
5a Qechokitir el reconccininnto de fecha
BP" Deshabttr redreccionamientos de cones web

21x!)

  
   
     
 

 

 

eee
N° Propiedades Valores devueltos
1. WebFormatting Constante
Constantes xlWebFormattingNone
xlWebFormattingRTF
xlWebFormattingAll
2. WebPreFormattedTextToColumns Booleano
3. WebConsecutiveDelimiterAsOne — Booleano
4. WebSingleBlockTextlmport Booleano
5. WebDisableDateRecognition Booleano
6. WebDisableRedirections * Booleano

Otras propiedades utilizadas para las consultas Web

Connection
Cadena de caracteres. URL del origen de datos Web.

Ea VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Capitulo 11
D.Publicacion de paginas Web

Es posible crear y publicar una pagina Web a partir de un libro, una hoja de
Excel, un grafico, un rango de celdas...

Para una pagina Web a partir de Excel, seleccione la opcién Guardar como.
pagina Web del mend Archivo y seleccione la opcién Agregar la interactivi-
dad. Pulse el botén Publicar para modificar los parametros de publicacién.

En VBA, para asociar un elemento de un libro a una pdgina Web, debera
crear un objeto PublishObject (utilizando el método Add de la coleccién
PublishObjects). Para publicar la pagina Web, debera utilizar a continuaci6n
el método Publish del objeto PublishObject.

1. Asociacién de un elemento de libro a una pagina Web
Sintaxis

PublishObjects.Add(SourceType, FileName, Sheet, Source,
HtmlType, DivID, Title)

Sdlo los argumentos sourceType y FileName son obligatorios.

PublishObjects Expresién que devuelve una coleccién PublishOb-
jects.
SourceType Tipo de elemento a publicar (xlSourceSheet, Sour-

ceRange, xlSourceworkbook, xlSourceChart, xlSour-
ceQuery, xlSourcePivotTable...).

Sheet Nombre de la hoja de calculo guardada como pagi-
na Web.

1314 | VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.© Editions EN| - All rights reserved

Internet

F. El objeto HyperLink

El objeto HyperLink representa un hipervinculo contenido en una hoja de
calculo, un rango de celdas 0 un grafico.

El objeto Hyperlink pertenece a la coleccién Hyperlinks de los objetos conte-
nedores Range, Workbook y Chart.

1. Propiedades
Address

Cadena de caracteres. Direccidn de la celda con el hipervinculo especifi-
cado.

EmailSubject

Cadena de caracteres. Texto del asunto de! mensaje electrénico del hi-
pervinculo especificado (propiedad utilizada con los hipervinculos de los
mensajes electrénicos).

Name

Cadena de caracteres. Nombre del hipervinculo.
Range

Objeto range. Rango al que esta vinculado hipervinculo.
ScreenTip

Cadena de caracteres. Texto de ayuda flotante del hipervinculo especifi-
cado.

Shape
Objeto Shape. Forma vinculada al hipervinculo especificado.

VBA Excel 2002 Eiaa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.© Editions ENT - All rights reserved

Programacion en Windows

Ciertos argumentos de procedimientos de DLL pueden aceptar diferentes
tipos de datos (algo asi como las Variant), y deben declararse con el tipo
Any (ej.: variable As Any). Visual Basic, para este tipo de argumento,
considera que se pasa sistematicamente por referencia; si hay que pasarlo
por valor, es preciso explicitarlo en la llamada (y no en la declaraci6n) del
procedimiento o de la funcién con la mencién Byval.

De modo predeterminado, Visual Basic pasa los argumentos por Referencia.

C. Lista de funciones de la API de Windows

Esta lista incluye las funciones de la API de Windows utilizadas mas habi-
tualmente. A continuacién se encontraran ejemplos de uso de algunas de
dichas funciones.

GetWindowsDirectory()

Devuelve el camino completo del directorio de Windows.
GetSystemDirectory()

Devwuelve el camino completo del directorio del sistema de Windows.
GetSystemInfo()

Devwuelve toda una serie de datos sobre el sistema. Estos datos se guar-
dan en una estructura de tipo SYSTEM_INFO.

GetActiveWindow()
Devuelve el handle de la ventana activa.

VBA Excel 2002 327aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Capitulo 12

MatchTextExactly

Indica si la busqueda especificada debe centrarse sdélo en los archivos
que contengan exactamente la palabra o frase especificados, distinguien-
do maytisculas de mintisculas.

SearchSubFolders

Indica si la biisqueda incluye todas las subcarpetas de la carpeta especi-
ficada.

TextOrProperty

Devuelve o define la palabra o frase a buscar en el cuerpo de texto o en
las propiedades del archivo.

2. Colecciones
FoundFiles

Devuelve la coleccién de objetos FoundFile que representa los archivos
encontrados en el transcurso de una busqueda.

PropertyTests

Devuelve la coleccién de objetos PropertyTest que representa todos los
criterios de busqueda para una busqueda de archivos.

SearchFolders

Devuelve una coleccién de objetos SearchForlder que representa todas
las carpetas de busqueda.

El VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.© Editions EN! - All rights reserved

Cédigo de una_miniaplicacion
Al abrir el libro, la ventana de Excel obtenida es la siguiente:
: ne

 

   

 

rozolt Excel - GestPresunuesto.ais

1G) Fresupuesto lentes Sar

 

 

APLICACION

GESTION DE PRESUPUESTOS

 

[\Gestién de presupuestos // ze ‘TuenarnS, oft
Ut AY Nut Z

 

2. Cédigo VBA

Option Explicit
Dim MatMenu() As String

 

Private Sub Workbook_Act ivate ()
Dim omd As ComnandBar

* Qculta las barras de comandos (salvo la barra de ment)
‘ y las guarda en una matriz para restaurarlas

bei

ReDim MatMenu (30)

For Each cmd In Application.ConmandBars

 

 

Babes

VBA Excel 2002 | 341]aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.© Editions EN! - All rights reserved

Cédigo de una miniaplicacion

Nombre del control Descripcién

1. cboClients Cuadro de lista desplegable modificable

2. cboOpe Cuadro de lista desplegable modificable con
operadores de comparacién (>= 0 <=)

3. txtFecha Cuadro de texto

4. cmdRech Botén de comando

5. cmdSuppr Botén de comando

6. cmdOuvrir Botén de comando

7. \IstPresupuesto Cuadro de lista desplegable

3. Cédigo VBA

 

Option Explicit

Private Sub UserForm Initialize()
* Operador para el campo Fecha
cboOpe AddItem ":
cboOpe AddItem "
‘ Permite seleccionar varios presupuestos
IstPresupuesto.Multiselect = fmMultiSelectmultL
‘  Muestza los clientes en la lista desplegable
Lista Clientes ("BuscaPresupuesto")

End Sub

 

 

 

Private Sub txtFecha_Beforelpdate _
(ByVal Cancel As MSForms.ReturnBoolean)
*  Controla la fecha introducida
If Not IsDate (txtFecha) Then
MsgBox "Escriba una fecha en el formato DD/MM/AAAA", _
vbExclamation
End If
End Sub

 

 

 

 

VBA Excel 2002 | 345]aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.© Editions EN! - All rights reserved

Cédigo de una miniaplicaci6n

whee

txtFecha = Format (txtFecha, "“DD/MM/YYYY")
End If
End sub

 

Private Sub CmdCrear_Click()
Dim wbk As Workbook

Dim wbkName As String

Dim £s0 As Object

*  Controla los datos introducidos

If cboCliente = "* Or txtFecha = "" Then
MsgBox “Cliente y fecha obligatorios", vb&xclamation
Exit Sub

End If

' Cierra los libros (salvo ThisWorkbook)
For Each wbk In Workbooks

If wbk.Name <> ThisWorkbook.Name Then

wbk. Close

End If
Next wbk
'  Abre un nuevo libro basado en el modelo Presupuesto.xlt
Set wbk = Workbooks.Add(Template:=strfolder & "Presupuesto.xlt")
* Verifies que el libro no existe ya

 

wbkName = strFolder £ choCliente & "\" s Right (txtFecha, 4) & _
Mid(txtFecha, 4, 2) @ Left (txtFecha, 2) & ".xls"
If Dix (wbkName) <> "" Then
MsgBox "El libro " 6 wbkName & " ya existe", vbExclamation
Exit Sub
End If
‘Crea el subdirectorio del cliente si no existe
If Dir(strFolder & cboCliente, vbDirectory) = "" Then
Set feo = Createdbject ("Scripting.FileSystomObject")
fso.createfolder (strFolder § cboCliente)
End If
"Guarda el libro en ese directorio
wbkName = Right (txtFecha, 4) & Mid(txtFecha,
& Left (txtFecha, 2) & ".xls"
wbk.SaveAs strFolder & choCliente & "\" & wbkName

 

 

2)

 

 

 

 

VBA Excel 2002 fea!aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.© Anexos

A.

  
 
 
 
  
  
 

Lista de instrucciones .. 2... eee ee eee 359
1. Fecha Hora/Matematicas 359
2. Declaracion . . 359
3. Error 22. + 362
@. OACRING ew a ee eR wa Be Ee OR 362
5. Estructuracion . . . 364
6. Sistema... . 366
7. 366
Lista de funciones. 2... 2 2 ee ee 367
Conversiones 2... ee 368
Cadenas de caracteres . . awe Va Rae ee we 370
Matematicas . .
Financieras

ONO PYNne

 

Fecha y hora

Archivos, Sistema . 2.6... eee eee ee 380
Verificaciones de variables... 2. - 1. eee ee 382
Interaccion 6. ee 383aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Anexos.

 

Type
Define un tipo de datos definido por el usuario.

3. Error

Error
Simula la aparicién de un error.
On Error

Activa una rutina de gestién de error y especifica su ubicacién dentro de
un procedimiento. Permite también desactivar una rutina de gestién de
error.

Resume

Retoma la ejecucién del cédigo cuando termina una rutina de gestién de
error.

4. Archivo

Close

Termina las operaciones de Entrada/Salida sobre un archivo abierto me-
diante la instruccién Open.

FileCopy
Copia un archivo,
Get

Lee los datos de un archivo de disco abierto y los coloca en una varia-
ble.

1362 | VBA Excel. 2002.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Anexos

 

String, StringS

Crea una cadena constituida por un caracter repetido por la longitud
especificada.

StrReverse

Devuelve una cadena con caracteres cuyo orden se ha invertido respecto
auna cadena dada.

Trim, Trim$

Devuelve una copia de una cadena suprimiendo los espacios de la
izquierda y de la derecha.

UCase, UCase$
Devuelve una cadena cuyos caracteres se han convertido a mayusculas.
Ejemplo

Procedimiento para calcular un cédigo de identificacién de las mujeres
listadas en la hoja siguiente:

 

lidentific| Apellido | Segundo | Nombre | Fecha de | Fecha de | Estado
|_ador apellido nacimiento| boda civil

Ramirez Cristina |04/06/58 Soltera
Duran Gomez [Veronica [24/01/60 15/02/87 _|Casada
Poncela__|Garcia Claudia |16/10/62 [22/07/89 __|Casada
Tizon Natalia 25/02/65 | Soltera

 

 

 

 

 

 

 

 

 

 

 

 

 

Sub CAlculoldentificador ()
For I= 2 To 5
‘1a parte del cédigo cifra 2 seguida de las tres las letras
‘del segundo apellido

Cédigo 2 & UCase (Left (Cells(I, 3),3))
"2a parte del cédigo: diferent segin si las mje:
‘casadas o no

If Cells(t, 7) = “Casada" Then ee

 

 

 

 

EZ VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Anexos

 

 

en
MsgBox “Acabando a las 17h30, faltan " & Resto & _
"horas de trabajo"

“Calculo y presentacién del ultimo dia del mes en curso
Final - DateSerial (Year (Now), Month(Now) + 1, 1)-1
MsgBox “el Gltimo dia del mes en curso es " & Final

‘Presentacién del nimero del dia de la semana de esta fecha
MsgBox "Hoy sera un " & Weekday(Final) & _

“ésimo dia de la semana”

 

End Sub

6. Archivos, Sistema

CurDir, CurDir$
Devuelve el camino de acceso en curso.
i$

Devuelve el nombre de un archivo, de un directorio o de una carpeta
que corresponde a un modelo especificado o a un atributo de archivo, o
devuelve el nombre de volumen de una unidad.

EOF
Devuelve un valor que indica si se ha alcanzado el fin de un archivo.
FileAttr

Devuelve datos sobre el modo del archivo o el manejador del archivo del
sistema operativo relativo a un archivo abierto mediante la instruccién
Open.

FileDateTime

Devuelve la fecha y hora de la creacién o de fa ultima modificacién de
un archivo.

Dir,

 

FileLen

Devuelve el tamafio de un archivo en bytes.

1380 | VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Anexos

 

Choose
Selecciona y devuelve un valor a partir de una lista de argumentos.
DoEvents

Detiene momentaneamente la ejecucién para que el sistema operativo
pueda tratar otros sucesos.

Environ

Devuelve el valor asociado a una variable de entorno del sistema opera-
tivo.

GetAllSettings

Devuelve una lista de claves y sus valores respectivos (creados en su
origen mediante la instruccién SaveSetting), que figuran en una entrada
de aplicacién de la base del registro de Windows.

GetSetting

Devuelve un valor de clave de una entrada de aplicacién de la base del
registro de Windows.

lif
Devuelve uno u otro de dos argumentos segiin la evaluacién de una
expresion.

Spe

Funcién utilizada con la instrucci6n Print # 0 el método Print para
posicionar la salida.

Switch

Evalua una lista de expresiones y devuelve un valor o una expresién
asociados a la primera expresidn de fa lista que tiene como valor True.

Tab

Funcidn utilizada con la instrucci6n Print #0 el método Print para
posicionar la salida.

1386 | VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.indice

 

ODBCErtors, 87

OLEDBErrors, 87

OLEObjects, 294

RecentFiles, 87

SmartTagRecognizers, 87

Smarttags, 147

UsedObjects, 87

Watches, 87

Windows, 87, 128

Workbooks, 87

WorkSheets, 87, 128
Coleccién Charts

suceso, 245
COMAddiIns - colecci6n, 86
Comentarios, 78
CommandBars, 224
CommandBars - coleccién, 86
Comments - coleccién, 146
Complemento automatico de instrucciones, 22, 95
Condiciones

If... Then, 63

If... Then... Else... End If, 64

If... Then... Elself..., 65

If... Then... End If, 63

Select Case, 66

Véase también Estructuras de decisién
Constantes, 60, 80, 102

de color, 388

de fecha, 389

de teclas de funcién, 390

de teclas del teclado, 389

1394 | VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Indice

 

tipografias, 24
Enlaces de Excel, 296
ErrorCheckingOptions - objeto, 85
Errores, 258
de compilacién, 259
de ejecucién, 260
de sintaxis, 258
depuracién, 261
Error (funci6n), 267
Error (instruccién), 267
gestion, 264
On Error, 264
Estructuras de decision, 62
condicién, 63
instruccién IF, 63
instruccién Select Case, 66
Estructuras en bucle, 67
instrucci6n Do...Loop, 68
instruccién For Each...Next, 71
instrucci6n For...Next, 70
instruccién While...Wend, 69
Examinador de objetos, 101
Exit Do, 73
Exit For, 73
Explorador de objetos, 23
Explorador de proyeto, 22

1396 | VBA Excel 2002aa

You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Reéursos Informaticos

 

Redes, sistemas, programacion, SGBDR, tecnologias Internet 0 intranet, informatica
industrial... Los ambitos que abarca la informatica técnica siguen la evolucién de las
tecnologias, siendo cada dia mas variados y complejos. Esta evolucién amplia los
campos de aprendizaje de los nuevos expertos e impone a los profesionales una
continua adaptacion de sus conocimientos.

 

Redactados por formadores profesionales y consultores, los libros de la coleccién
Recursos informaticos le aportan una ayuda eficaz para descubrir y aplicar diferentes
técnicas. La presentacion de los conceptos basicos, de numerosos ejemplos y los consejos
de expertos garantizan la calidad y riqueza de cada uno de estos libros.

VBA Excel 2002

Programar con Excel:
Macros y lenguaje VBA Michéle AMELOT

Simple, practica y completa a la vez, esta obra

 

A dirigida sesares
a los usuarios de Excel 0 a los desarrolladores que quieran

  

crear aplicaciones de hoja de cdlculo fiables, potentes y de
facil uso, Ademas de los elementos basicos del lenguaje VBA

  

este profundo conocin
idades de usuarios y
aprendizae y practica de la p
guaje VBA

 

 

 

(estructura del lenguaje y conceptos de programacién
orientada a objetos), se ensena a automatizar tratamientos,

 

a disefar formularios (UserForm) personalizados, a
administra controles ActiveX, a crear mentis y barras de ISBN: 2-7460-1643-5
herramientas, a controlar las demds aplicaciones de Office

     

XP mediante la tecnologia Automation, a importar datos

jentes de sitios Web y a utilizar las API de Windows. I | lh l |

i 7 9 "782746" 016439
nas de los numerosos ejemplos proporcionados en esta

el dltimo capitulo ensefa paso a paso a crear una Precio: 26.95 €
nen Excel

 

 

 

 

 

 

 
  

ST eee eee eB ee)
eo ue ee eee)

Вам также может понравиться