SlideShare una empresa de Scribd logo
1 de 89
101 Ready-to-Use Excel® Macros
Publicadopor
JohnWiley& Sons,Inc.
111 RiverStreet
Hoboken,NJ07030-5774
www.wiley.com
Copyright© 2012 por JohnWiley&Sons,Inc.,Hoboken,NuevaJersey
PublicadoporJohnWiley&Sons,Inc.,Hoboken,NuevaJersey
Publicadosimultáneamente enCanadá
Ningunaparte de estapublicaciónpuede serreproducida,almacenadaensistemasde
recuperaciónotransmitidaencualquierformaoporcualquiermedio, electrónico,mecánico,
fotocopia,grabación,escaneoode otra manera,salvolopermitidobajolasSecciones107 o
108 de la Leyde PropiedadIntelectual de 1976 de EstadosUnidos,sinque el permisoprevioy
por escritodel editor,oautorización mediante el pagode latarifacorrespondiente porcopiaal
CopyrightClearance Center,222 RosewoodDrive,Danvers,MA 01923, (978) 750 hasta8400,
fax (978) 646-8600. Pide a la Editorial de autorizacióndeberándirigirse ala Permisosde
Departamento,JohnWiley&Sons,Inc.,111 RiverStreet,Hoboken,NJ07030, (201) 748 a
6011, fax (201) 748- 6008, o en líneaenhttp://www.wiley.com/go/permissions.
Marcas registradas:Wileyyel logotipode Wileysonmarcascomercialesomarcas comerciales
registradasde JohnWiley&Sons,Inc. y / o su filialesenEstadosUnidosyotrospaíses,y no
puedenserutilizadossinautorizaciónescrita.Excel esunamarcaregistrada marca comercial
de MicrosoftCorporation.Todaslas demásmarcas sonpropiedadde susrespectivosdueños.
JohnWiley& Sons, Inc.no estáasociadacon ningúnproductoo proveedormencionadoen
este libro.
LÍMITE DE RESPONSABILIDAD/RENUNCIA DE GARANTÍA:EL EDITOR Y EL AUTOR NOSON
REPRESENTACIÓN O GARANTÍASCON RESPECTOA LA EXACTITUD O INTEGRIDADDEL
CONTENIDODE ESTE TRABAJOY ESPECÍFICAMENTE RECHAZAN TODASLAS GARANTÍAS,
INCLUYENDOSIN LIMITACIÓN LASGARANTÍASDE IDONEIDADPARA UN DETERMINADO
FINALIDAD.NINGUNA GARANTÍA PUEDESER CREADA NIEXTENDIDA PORVENTASO
MATERIALES PROMOCIONALES.ELASESORAMIENTOY ESTRATEGIAS CONTENIDASEN ESTE
DOCUMENTO NO PUEDE SER ADECUADOPARA CADA SITUACIÓN.ESTE TRABAJOSE VENDE
CON EL ENTENDIMIENTO Que la editorial nose dedicaaprestar LEGAL, CONTABILIDADU
OTROS SERVICIOSPROFESIONALES.
SI AYUDA PROFESIONALSEREQUIERE, LOS SERVICIOSDE UN PROFESIONALCOMPETENTE
DEBE Buscarse.NIEL EDITOR NIEL AUTOR SERÁN RESPONSABLESPORDAÑOSCAUSADOSesta
norma el nacimiento.LA HECHODE QUE UNA ORGANIZACIÓN OSITIOWEB SE HACE
REFERENCIA EN ESTE TRABAJOCOMO CITACIÓN Y / O UN POTENCIAL
FUENTE DE INFORMACIÓN NOSIGNIFICA QUEEL AUTOR O EL EDITOR Hace suya la
INFORMACIÓN ELSITIO WEB ORGANIZACIÓN Ose dispongaorecomendacionesque pueda
hacer.Además,LECTORES Debensaberque SITIOSWEB DE INTERNET QUE FIGURAN EN ESTE
TRABAJOPUEDEN HABER CAMBIADOO DESAPARECIDOENTRE CUANDOESTE TRABAJOFUE
ESCRITO Y CUANDOSE LEA.
Para obtenerinformacióngeneral sobre nuestrosproductosyservicios,porfavorpóngase en
contacto con nuestroDepartamentode atenciónal cliente dentrode la EstadosUnidosen
877-762-2974, fuerade losEE.UU. en317-572-3993 o enviarporfax 317-572-4002.
Para obtenerasistenciatécnica,visitewww.wiley.com/techsupport.
Wileypublicaenunavariedadde formatosimpresosyelectrónicosyde impresiónbajo
demanda.Parte del material incluidoconlanorma versionesimpresasde este libronopueden
serincluidosenloslibroselectrónicosoenlaimpresiónbajodemanda.Si este librose refierea
losmediosde comunicacióntales comounCD o DVDque no está incluidoenlaversiónque
haya adquirido,ustedpuede descargareste material en http://booksupport.
wiley.com.Paraobtenermásinformaciónacercade losproductosde Wiley,visite
www.wiley.com.
Bibliotecadel Congresode control el númeroestádisponible enel Editor.
ISBN 978-1-118-28121-5 (pbk);978-1-118-33068-5 (ebk);978-1-118-33353-2 (ebk);978-1-118-
33466-9 (ebk)
FabricadoenlosEstados Unidosde América
10 9 8 7 6 5 4 3 2 1
Acerca de losautores
Mike AlexanderesunMicrosoftCertifiedApplicationDeveloper(MCAD) yautorde varios
libros enel análisisde negocioavanzadoconMicrosoftAccessyExcel.Cuentaconmás de 15
años de experienciaconsultoríaydesarrollode solucionesde Office.Michaelhasido
nombradoMVP de Microsoftpara su constantescontribucionesalacomunidadExcel.Ensu
tiempolibre,se encuentraconunsitiotutorial gratuito,www.datapigtechnologies.
com, donde comparte Excel yAccessconsejos.
JohnWalkenbachesautorde más de 50 librosde hojasde cálculoy vive enel surde Arizona.
Visitasusitiowebenhttp://spreadsheetpage.com.
Dedicación
A María
- Mike Alexander
Agradecimientosde losautores
Nuestrosmásprofundosgraciasa la brillante equipode profesionalesque ayudaronallevar
este libroa buentérmino.
Reconocimientosdel editor
Estamosorgullososde este libro;envíenossus comentarioshttp://dummies.custhelp.com.
Para otros comentarios,porfavorpóngase encontactocon nuestroDepartamentode
atenciónal cliente dentrode losEE.UU. al 877-762-2974,
fuerade losEE.UU. al 317-572-3993, o fax 317-572-4002.
Algunasde laspersonasque ayudarona llevareste libroal mercadosonlassiguientes:
Adquisicionesyeditorial
Editordel proyecto:LindaMorris
AdquisicionesEditorSenior:Katie Feltman
CopyEditor:Linda Morris
EditorTécnico:Juan Walkenbach
Gerente editorial:Jodi Jensen
Asistente editorial:Leslie Saxman
Sr. Asistente editorial:Cherie Caso
ServiciosComposición
Coordinadordel proyecto:ShereeMontgomery
Diseñoyartes gráficas:Carrie A.Cesavice,
AndreaHornberger
Indexador:IndexaciónBIMyCorrecciónServicios
Editorial yde RedacciónenTecnologíaDummies
RichardSwadley,VicepresidenteyEjecutivodel GrupoEditorial
AndyCummings,VicepresidenteyEditor
María Bednarek,DirectorEjecutivode Adquisiciones
Mary C.Corder,DirectorEditorial
La publicaciónde losmaniquíesdel Consumidor
KathleenNebenhaus,Vicepresidente yEditorEjecutivo
ServiciosComposición
Debbie Stailey,Directorde Serviciosde Composición
Mapa de contenidos
Introducción.1
Parte I: Introduccióna Excel Macros ..........................................5
Parte II: Trabajar con librosde trabajo....................................................37
Parte III: Automatizaciónde tareasHojade trabajocon macros ..........................71
Parte IV: Selección ymodificaciónde Rangos.......................................103
Parte V: Trabajocon datos ...........................................................137
Parte VI: Trabajar con tablasdinámicas................................................187
Parte VII:ManipulaciónGráficosconMacros ....................................233
Parte VIII:E-Mailingdesde Excel .....................................................253
Parte IX: La integraciónde Excel yotras aplicacionesofimáticas.................273
Índice.302
Tabla de contenidos
Introducción.1
TemasCubiertos.1
Lo que necesitassaber.2
Lo que ustednecesitatener.2
Cómoestá organizadoeste libro.2
Parte I: PrimerospasosconExcel Macros. 3
Parte II: Trabajar con librosde trabajo. 3
Parte III: Automatizaciónde tareasHojade trabajocon macros.3
Parte IV: La selecciónymodificaciónde rangos.3
Parte V: Trabajocon datos. 3
Parte VI: Trabajar con tablasdinámicas.3
Parte VII:ManipulaciónGráficosconmacros. 3
Parte VIII:E-Mailingdesde Excel.4
Parte IX: La integraciónde Excel yotras aplicacionesde Office.4
Convenioseneste libro.4
¿Qué significanlosiconos.4
Sobre el sitiowebdel compañero.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 4
Parte I: Introduccióna Excel Macros ..................................5
Familiarizarseconlosfundamentosde grabaciónde macros.7
Comparandoabsolutayrelativade grabaciónde macros. 11
Grabaciónde macros con referenciasabsolutas.11
Grabaciónde macros con referenciasrelativas.13
En cuanto a otros conceptosde grabaciónde macros. 15
Extensionesde archivoMacro habilitado.15
La seguridadde macrosenExcel 2010. 16
Las ubicacionesde confianza.16
El almacenamientode macrosenel librode macros personal.17
Asignarunamacro a un botóny otroscontrolesde formulario.17
La colocaciónde unamacro en labarra de herramientasde accesorápido.19
TrabajandoEn el Editor de Visual Basic.19
La activaciónde laVBE. 19
ComponentesVBEcomprensión.19
Trabajar con la ventanadel proyecto.21
Adiciónde unnuevomódulode VBA.22
Extracciónde un módulode VBA.23
Trabajar con una ventanade código.24
Minimizarymaximizarventanas.24
ObtenercódigoVBA enunmódulo.25
Personalizaciónde laVBA MedioAmbiente.27
La pestañaEditor.27
La pestañaEditorde formato.29
La pestañaGeneral.30
La fichade acoplamiento.31
Descubriendoel modelode objetosde Excel.31
La comprensiónde los objetos.31
Coleccionescomprensión.32
La comprensiónde laspropiedades.33
Métodosde comprensión.33
Tomar una breve miradaenvariables.34
Acerca de lasmacros en este libro.35
Obtenciónde losarchivosde ejemplo.35
El usode losarchivosde ejemplo.35
Cosasa tenerencuenta.36
Parte II: Trabajar con librosde trabajo............................................37
Macro 1: Creaciónde unnuevolibrode trabajodesde cero.39
Cómofunciona.39
Cómousarlo.40
Macro 2: Guardar un librode trabajocuandoun particularde la célulase cambia.41
Cómofunciona.41
Cómousarlo.42
Macro 3: Guardar un librode trabajoantesdel cierre.43
Cómofunciona.43
Cómousarlo.44
Macro 4: Protegerunahojade cálculoen el librode trabajoenCerrar. 46
Cómofunciona.46
Cómousarlo.46
Macro 5: desprotegerunahojade trabajo enlibroabierto.48
Cómofunciona.48
Cómousarlo.48
Macro 6: Abrirunlibrode trabajo a una fichaespecífica.50
Cómofunciona.50
Cómousarlo.50
Macro 7: Abrirunlibrode trabajo específicosdefinidosporel usuario.52
Cómofunciona.52
Cómousarlo.53
Macro 8: Determinarsi unlibroestáabierto.54
Cómofunciona.54
Cómousarlo.56
Macro 9: Determinarsi unlibroexiste enundirectorio.57
Cómofunciona.57
Cómousarlo.58
Macro 10: ConexionesActualizartodoslosdatosde librode trabajoenAbrir.59
Cómofunciona.59
Cómousarlo.59
Macro 11: Cierre todosloslibrosala vez.61
Cómofunciona.61
Cómousarlo.61
Macro 12: Abre todosloslibrosenun directorio.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 63
Cómofunciona.63
Cómousarlo.64
Macro 13: Imprimirtodosloslibrosde trabajoenun directorio.65
Cómofunciona.65
Cómousarlo.66
Macro 14: Prevencióndel Librode Trabajode clausurahastaque una célulase llena.67
Cómofunciona.67
Cómousarlo.68
Macro 15: Crear una copiade seguridadde unlibrode trabajo actual con la fechade hoy.69
Cómofunciona.69
Cómousarlo.70
Parte III: Automatizaciónde tareasHojade trabajocon macros ...................71
Macro 16: Agregary Nombrauna nuevahoja.73
Cómofunciona.73
Cómousarlo.74
Macro 17: Eliminartodoperola hojade cálculoactiva.75
Cómofunciona.75
Cómousarlo. 76
Macro 18: Ocultartodo perola hojade cálculoactiva. 77
Cómofunciona.77
Cómousarlo.78
Macro 19: Unhide todaslashojas de un libro.79
Cómofunciona.79
Cómousarlo.79
Macro 20: Hojas de Desplazamiento.81
Cómofunciona.81
Cómousarlo.81
Macro 21: ClasificarporNombre Hojasde trabajo.83
Cómofunciona.83
Cómousarlo.84
Macro 22: Grupo de hojasde trabajopor color.85
Cómofunciona.85
Cómousarlo.86
Macro 23: Copiaruna hojade trabajopara un nuevolibro.87
Cómofunciona.87
Cómousarlo. 87
Macro 24: Crear un nuevolibroparacada hoja.88
Cómofunciona.88
Cómousarlo.89
Macro 25: ImprimirHojasde trabajoespecificados.90
Cómofunciona.90
Cómousarlo.90
Macro 26: Protegertodaslashojas.92
Cómofunciona.92
Cómousarlo.92
Macro 27: desprotegertodosHojasde trabajo.94
Cómofunciona.94
Cómousarlo.95
Macro 28: Crear una tablade contenidoparalas hojasde cálculo.96
Cómofunciona.96
Cómousarlo.98
Macro 29: Acercamientoyalejamientode unahojade trabajocon doble clic. 99
Cómofunciona.99
Cómousarlo.100
Macro 30: Resalte lafilaactivay Columna.101
Cómofunciona.101
Cómousarlo.102
Parte IV: SelecciónyrangosModificación...............................103
Macro 31: Selecciónyformateode unrango.105
Cómofunciona.105
Cómousarlo.107
Macro 32: Crear y seleccionarrangosconnombre.108
Cómofunciona.109
Cómousarlo.110
Macro 33: EnumerarA travésde un rango de celdas.111
Cómofunciona.111
Cómousarlo.112
Macro 34: SeleccionaryFormatoTodoslos rangos con nombre.113
Cómofunciona.113
Cómousarlo.114
Macro 35: Inserciónde filasenblancoenunrango. 115
Cómofunciona.115
Cómousarlo.116
Macro 36: enMostrar todaslas filasycolumnas.117
Cómofunciona.117
Cómousarlo.117
Macro 37: Eliminaciónde filasenblanco.118
Cómofunciona.118
Cómousarlo.119
Macro 38: Eliminaciónde columnasenblanco.120
Cómofunciona.120
Cómousarlo.121
xii
Macro 39: SeleccionaryFormatoTodosfórmulasenunlibrode trabajo.122
Cómofunciona.122
Cómousarlo.123
Macro 40: Buscar y seleccionarlaprimerafilaenblancoocolumna.125
Cómofunciona.125
Cómousarlo.127
Macro 41: Aplicarcoloralternativobandas.128
Cómofunciona.128
Cómousarlo.129
Macro 42: ordenarun rango de Double-Click.130
Cómofunciona.130
Cómousarlo.131
Macro 43: Límite Movimientorangoa unárea en particular.132
Cómofunciona.132
Cómousarlo.132
Macro 44: Dinámicamente Ajuste el áreade impresiónde unahojade cálculo.134
Cómofunciona.134
Cómousarlo.134
Parte V: Trabajocon datos ...................................................137
Macro 45: Copiary pegar unrango. 139
Cómofunciona.139
Cómousarlo.140
Macro 46: Convertirtodaslasfórmulasenunrango de valores.141
Cómofunciona.141
Cómousarlo.142
Macro 47: Realice el textoencolumnasde comandosentodaslascolumnas.143
Cómofunciona.144
Cómousarlo.146
Macro 48: ConvertirTrailingMinussignos.147
Cómofunciona.147
Cómousarlo.149
Macro 49: Recorte Espaciosde todas lasceldasde un rango.150
Cómofunciona.150
Cómousarlo.151
Macro 50: Truncar códigospostalesalos Cincoizquierda.152
Cómofunciona.152
Cómousarlo.154
Macro 51: Rellenocélulasconceros.155
Cómofunciona.155
Cómousarlo.157
Macro 52: Vuelvaacolocar lascélulas Blanksconun Valor.158
Cómofunciona.158
Cómousarlo.160
xiii
Macro 53: Añadirtextoa laizquierdaoderechade suscélulas.161
Cómofunciona.161
Cómousarlo.162
Macro 54: Crear un CleanupSuperMacrode Datos.163
Cómofunciona.163
Cómousarlo.165
Macro 55: Personajesde Limpiezanoimprimibles.166
Cómofunciona.166
Cómousarlo.167
Macro 56: Resaltarduplicadosenunaserie de datos.168
Cómofunciona.168
Cómousarlo.169
Macro 57: Ocultartodas lasfilas,perolosque contienendatosduplicados.170
Cómofunciona.170
Cómousarlo.171
Macro 58: selectivamenteOcultarAutofiltrodesplegablesFlechas.172
Cómofunciona.173
Cómousarlo.174
Macro 59: Copiarfilasfiltradasde unnuevolibro.175
Cómofunciona.175
Cómousarlo.176
Macro 60: Crear una nuevahojapara cada elementode unAutofiltro.177
Cómofunciona.177
Cómousarlo.182
Macro 61: Mostrar Columnasfiltradasenlabarrade estado.183
Cómofunciona.183
Cómousarlo.185
Parte VI: Trabajar con tablasdinámicas ........................................187
Macro 62: Crear una tabladinámicaal revés-compatible.189
Cómofunciona.190
Cómousarlo.191
Macro 63: ActualizarTodotablasdinámicaslibro.192
Cómofunciona.192
Cómousarlo.193
Macro 64: Crear un resumende inventariode tabladinámica.194
Cómofunciona.194
Cómousarlo.196
Macro 65: Haga todas lastablas dinámicasusenel mismopivote caché.197
Cómofunciona.197
Cómousarlo.198
Macro 66: OcultarTodos lossubtotalesenunatabladinámica.199
Cómofunciona.199
Cómousarlo.201
xiv
Macro 67: Ajuste TodoslosTítulosPivotde camposde datos.202
Cómofunciona.202
Cómousarlo.203
Macro 68: Establecertodoslosarticulosde Datosde Suma. 204
Cómofunciona.204
Cómousarlo.206
Macro 69: Aplicarformatode númeropara todosloselementosde datos.207
Cómofunciona.207
Cómousarlo.210
Macro 70: OrdenarTodoslos camposenordenalfabético.211
Cómofunciona.211
Cómousarlo.212
Macro 71: AplicarOrdenpersonalizadoparaelementosde datos.213
Cómofunciona.213
Cómousarlo.214
Macro 72: Aplicarrestriccionesde tabladinámica.215
Cómofunciona.215
Cómousarlo.216
Macro 73: AplicarRestriccionesPivotde campo.217
Cómofunciona.217
Cómousarlo.218
Macro 74: Eliminarautomáticamentelatablapivote hojasde desglose.219
Cómofunciona.219
Cómousarlo.221
Macro 75: ImprimirPivotTable paracada filtrode informe de artículo.223
Cómofunciona.223
Cómousarlo.225
Macro 76: Crear nuevolibrode trabajopara cada filtrode informe de artículo.226
Cómofunciona.226
Cómousarlo.228
Macro 77: Transposicióndel rangode datoscompletaconuna tabladinámica.229
Cómofunciona.230
Cómousarlo.231
Parte VII:ManipulaciónGráficosconMacros .............................233
Macro 78: Cambiarel tamaño de todasListas enuna hojade cálculo.235
Cómofunciona.235
Cómousarlo.236
Macro 79: Alinearungráficoa un rango específico.237
Cómofunciona.237
Cómousarlo.238
Macro 80: Crear un conjuntode gráficosdesconectados.239
Cómofunciona. 239
Cómousarlo.240
xv
Macro 81: ImprimirtodosListasenuna hojade cálculo.241
Cómofunciona.241
Cómousarlo.242
Macro 82: Etiquetaprimeryúltimopuntode gráfico.243
Cómofunciona.243
Cómousarlo.245
Macro 83: Carta de colorde la serie a la fuente de teléfonoColors.246
Cómofunciona.246
Cómousarlo.249
Macro 84: Puntosde color Gráficode datos para que coincidacon lafuente de célulasColores.
250
Cómofunciona.250
Cómousarlo.252
Parte VIII:E-Mailingdesde Excel ..............................................253
Macro 85: MailingActive librocomounarchivoadjunto.255
Cómofunciona.255
Cómousarlo.257
Macro 86: Mailingunrango específicocomoAdjunto.258
Cómofunciona.258
Cómousarlo.259
Macro 87: Mailingunasola hojacomo unarchivo adjunto.260
Cómofunciona.260
Cómousarlo.261
Macro 88: Enviarel correo con un enlace anuestrolibro... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 0,262
Cómofunciona.262
Cómousarlo.263
Macro 89: MailingDireccionesde todoel correoelectrónicoennuestralistade contactos... . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0,264
Cómofunciona.264
Cómousarlo.265
Macro 90: AhorroTodos losarchivosadjuntosauna carpeta. 266
Cómofunciona.266
Cómousarlo.268
Macro 91: AhorroCiertosarchivosadjuntosauna carpeta.269
Cómofunciona.269
Cómousarlo.271
Parte IX: La integraciónde Excel yotras aplicacionesofimáticas..........273
Macro 92: Ejecuciónde una consultade Accessdesde Excel.275
Cómofunciona.275
Cómousarlo.277
Macro 93: Ejecuciónde unamacro de accesodesde Excel.278
Cómofunciona.278
Cómousarlo.279
xvi
Macro 94: Aperturade un informe de accesodesde Excel.280
Cómofunciona.280
Cómousarlo.281
Macro 95: Aperturade un formulariode Accessdesde Excel.282
Cómofunciona.282
Cómousarlo.283
Macro 96: espacioenuna base de datosAccessdesde Excel.284
Cómofunciona.284
Cómousarlo.285
Macro 97: Envío de datos de Excel a un documentode Word.286
Cómofunciona.286
Cómousarlo.288
Macro 98: Simulaciónde combinarcorrespondenciaconundocumentode Word.289
Cómofunciona.289
Cómousarlo.292
Macro 99: Envío de datos de Excel a una presentaciónde PowerPoint.293
Cómofunciona.293
Cómousarlo.295
Macro 100: El envíode todosListasde Excel a unapresentaciónde PowerPoint.296
Cómofunciona.296
Cómousarlo.298
Macro 101: Convertirunlibrode trabajoenuna presentaciónde PowerPoint.299
Cómofunciona.299
Cómousarlo. 301
Introducción
En su sentidomásamplio,unamacrode Excel esuna secuenciade instruccionesque
automatizaalgúnaspectode Excel para que puedatrabajarde maneramás eficiente ycon
menoserrores.Ustedpuede crearunamacro, por ejemplo,para formateare imprimirsu
informe de ventasde finde mes.Despuésse desarrollólamacro,puede ejecutarel macropara
realizarmuchosprocedimientosque requierenmuchotiempode formaautomática.
Las macros estánescritasenVBA,siglasde Visual Basicpara Aplicaciones.VBA esenrealidad
una programación lenguaje desarrolladoporMicrosoft,yesuna herramientaque se utiliza
para desarrollarprogramasque controlanExcel.
La terminologíade programaciónde Excel puede serunpococonfuso.Porejemplo,VBA esun
lenguaje de programación, sinoque tambiénsirvecomounlenguaje de macros.¿Cómose
llamaalgoescritoenVBA y ejecutadoen Excel?¿Esuna macro o se trata de un programa?
Sistemade Ayudade Excel a menudose refiere alosprocedimientosde VBA comomacros,por
loesta esla terminologíautilizadaeneste libro.Perotambiénse puede llamaracódigoVBA un
programa.
Tambiénveráel términoautomatizarlolargode este libro.Este términosignificaque unaserie
de pasos son completadoautomáticamente.Porejemplo,si escribesunamacroque agrega
colora algunascélulas,imprime el hojade cálculo,yluegoeliminael color,ustedha
automatizadoesostrespasos.
La gente utilizaExcel paramilesde diferentestareas.Éstossonsóloalgunosejemplos:
➤ Mantenerlistasde cosas talescomonombresytransaccionesde losclientes
➤ Presupuestaciónyprevisión
➤ Analizardatoscientíficos
➤ Creaciónde facturasy otras formas
➤ Desarrollartablasde datos
La listapodríaseguiry seguir.El puntoessimplemente que Excelse utilizaparauna amplia
variedadde tareas,y todoslosque leaneste librotiene diferentesnecesidadesyexpectativas
con respectoa Excel.Una cosa virtualmente cadalectortiene encomúneslanecesidadde
automatizaralgúnaspectode Excel.Esoes loque VBA (y esto libro) se trata.
TemasCubiertos
Este libroaborda el temade las macros de Excel con el reconocimientode que la
programacióncon VBA toma tiempoypráctica- el tiempoque ustednopuede tenereneste
momento.De hecho,muchosanalistasnotienen el lujode tomarunpar de semanasde
descansopara convertirse enunexpertoenVBA.Asíque enlugarde la mismaengeneral
visióngeneral de lostemasde VBA,este libroofrece 101 del mundoreal másutilizadoExcel
Macros.
Cada segmentodel librodescribe unproblemacomúnque necesitaserresueltoyproporciona
la real macro de Excel para resolverel problema,juntoconunaexplicacióndetalladade cómo
funcionalamacro y dónde utilizarlamacro.
Lo que necesitassaber
Con el finde obtenerel máximoprovechode estelibro,que se suponeque tieneuncierto
conjuntode habilidades.El candidatoideal paraeste librotiene experienciatrabajandocon
datosen Excel,juntoconla familiaridadconel básico conceptosde análisisde datos,tales
como trabajarcon tablas,la agregaciónde datos,realizarcálculos, ylacreaciónde gráficos.
Lo que hay que tener
Ustednecesitarálasiguiente conel finde descargaryutilizarlosejemplosdestacadoseneste
libro.
➤ Una copia con licenciade Excel 2007 o Excel 2010
➤ Una conexiónaInternetparapoderdescargar losarchivosde ejemplo
Cómoestá organizadoeste libro
El estilode este libroestáenel formatode losConsejosytrucoslibros,donde cadasegmento
muestracómo para realizarunatarea comúna travésde macros de Excel.Estole permite,
nuestrolectorestimada,utilizael librocomoun referenciaprácticapara labúsquedade una
macro que resuelve unproblemacomún.
Cada segmentodel librosigueestasencillaconstrucción:
➤ El problema
➤ La soluciónmacro
➤ ¿Cómofunciona?
Despuésde leercadasegmentode este libro,usteddeberíasercapaz de
➤ implementarinmediatamente lamacrorequeridaExcel
➤ Comprendercómofuncionalamacrodados
➤ Reutilizarlamacrodada enotros librosoen conjuntoconotras macros
Los capítulosde este librose agrupanen nueve partesprincipales.
Parte I: PrimerospasosconExcel Macros
Parte I sirve comouna introducciónaExcel Macros y VBA engeneral.Aquí,ustedobtieneun
resumenconcisode cómofuncionaVBA conExcel,que le da el fundamentobásicoque
necesitaparatrabajar con los101 macrosen este libro.
Parte II: Trabajar con librosde trabajo
En la Parte II se descubre cómohacer referenciaalibrosde trabajoa travésde VBA para hacer
cosas interesantescomoautomáticamente crearnuevoslibros,evitarque losusuarioslibros
de cierre,copiasde seguridadautomáticaslibros,ymuchomás.
Parte III: Automatizaciónde tareasHojade trabajocon macros
Parte III se centra enlastareas de automatizaciónrelacionadosconhojasde cálculo.Tantosi
se trata unhidingtodaslashojasenunalibro,o imprimirtodaslashojasal mismotiempo,
muchasde lastareas se puedenautomatizarparaahorrar tiempoyganar eficiencia.Enesta
parte cubrimosalgunasde las macrosmás útilesrelacionadosconlashojasde trabajo.
Parte IV: SelecciónyrangosModificación
Cuandoustedestátratando de automatizarsutrabajo a travésde VBA,ustedencontraráque
la navegación de suhojade cálculosigue siendounaparte importante del procesode
zutomatización.Enmuchoscasos,esnecesarionavegarymanipulardinámicamenterangosde
Excel,tal como loharía manualmente - sóloatravésde VBA
código.Parte IV proporcionaalgunasde lasmacros más utilizadosentérminosde navegacióny
de trabajo con rangos.
Parte V: Trabajocon datos
Parte V muestraalgunasde lasmacros más útilesque puede utilizarparatransformar
dinámicamentelosdatosensuslibros.Laideaes que se puede ejecutarvariasde estasmacros
enuna secuenciaque,básicamente,automatizael lavadoylaconformaciónde susdatos.
Parte VI: Trabajar con tablasdinámicas
Algunastareasrelacionadastabladinámica-nosonfácilesde manejarconlagrabadora de
macros. Aquíes donde laParte VIcentra su atención.Aquí,cubrimoslosescenariosmás
comunesdonde macrosayudana ganar eficienciacuandose trabajacontablas dinámicas.
Parte VII:ManipulaciónGráficosconmacros
En la Parte VIIa descubrircómoVBA puede ayudara ahorrar tiempoytrabajar con gráficosde
maneramás eficiente.Aquíhacerfrente alosaspectosde la cartografía que se prestana un
poco de automatización.
Parte VIII:E-correodesde Excel
En la Parte VIIIdescubriralgunosejemplosde cómose puede integrarExcel yOutlook.Aquí
vesejemplosde macrosque envíanmensajesde correoelectrónico,enviararchivosadjuntos,
y tirar de archivosdirectamente de Outlook.
Parte IX: La integraciónde Excel yotras aplicacionesde OfficeDatosde Excel se utilizaa
menudoenotrasaplicacionesde Office:MicrosoftAccess,MicrosoftWordyMicrosoft
PowerPoint.EnlaParte IXnos fijamosenalgunasde lasmacros útilesque puedesponeren
práctica para tenerExcel integrarconalgunasotras aplicacionesde Office.
Convenioseneste libroLoscomandosde menúde este libroestánseparadosporunaflecha
(➜).Porejemplo,File➜Opensignificaira En el menúArchivo,hagaclicen él y seleccione
Abrirenla listaque aparece.
Todo el códigoeneste libroaparece enunafuente monoespaciada,al igual que losmétodos,
propiedades,valoresyargumentos.
Textode lostiposde lectoresaparece ennegrita.
Textode marcador de posiciónque debe serreemplazadoconinformaciónespecíficaasus
necesidadesaparece encursiva.
¿Qué significanlosiconos
UtilizamosiconosTipparaindicarun punterose debe archivarpara futurasconsultas.
Consejossuelehacersuvidamás fácil.
El iconoNotaindicaque debe prestarespecial atenciónaesto.
UtilizamosiconosPrecauciónparaindicarlascosasque puedencausarproblemas.
Sobre el sitiowebdel compañero
Cada macro eneste librotiene unarchivode muestraasociada.Estosarchivosde ejemplole
permitenverlamacro enacción,así comoque le da la posibilidadde revisarel código.Los
archivosde ejemplose puedendescargardesde sitiowebcomplementariode este libroen
www.wiley.com/go/101excelmacros.
PARTE I
EmpezandoconExcel Macros
Esta parte esuna introducciónalasmacros de Excel,que abarca todo loque necesita saber
acerca de lasmacros de Excel y
VBA para empezarcon los101 macros en todoel restode este libro.
En estaparte
Familiarizarseconlosfundamentosde grabaciónde macros... . . . . . . . . . . . . . . . . . . . . . . . 7
Comparandoabsolutay relativade grabaciónde macros. . . . . . . . . . . . . . . . . . . . . 11
Grabaciónde macros con referenciasabsolutas.... . . . . . . . . . . . . . . . . . . . . 11
Grabaciónde macros con referenciasrelativas.... . . . . . . . . . . . . . . . . . . . . . . 13
En cuanto a otros conceptosde grabaciónde macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Extensionesde archivoMacro habilitado.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
La seguridad de macrosenExcel 2010. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Las ubicacionesde confianza.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
El almacenamientode macrosenel librode macros personal.... . . . . . . . . . . . . . . 17
Asignarunamacro a un botóny otroscontrolesde formulario.... . . . . . . . . . 17
La colocaciónde unamacro en labarra de herramientasde accesorápido... . . . . . . . . . . . . . . .
. . . . . 19
TrabajandoEn el Editor de Visual Basic... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
La activaciónde laVBE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ComponentesVBEcomprensión.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Trabajar con la ventanadel proyecto.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Adiciónde unnuevomódulode VBA... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Extracciónde un módulode VBA.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Trabajar con una ventanade código... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Minimizarymaximizarventanas.... . . . . . . . . . . . . . . . . . . . . . . . . . . 24
ObtenercódigoVBA enunmódulo... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Personalizaciónde laVBA MedioAmbiente.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
La pestañaEditor... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
La pestañaEditorde formato.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
La pestañaGeneral.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
La fichade acoplamiento.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Descubriendoel modelode objetosde Excel.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
La comprensiónde losobjetos.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Coleccionescomprensión.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
La comprensiónde laspropiedades.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Métodosde comprensión.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Tomar una breve miradaenvariables.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Acerca de lasmacros en este libro... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Obtenciónde losarchivosde ejemplo.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
El usode losarchivosde ejemplo.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Cosasa tenerencuenta.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Introducción
Excel Macros
Ustedno necesitaserunusuarioavanzadopara crear y utilizarmacrosVBA simples.Inclusolos
usuariosocasionalespuedensimplemente
enciendamacrograbadorde Excel.
Grabaciónde una macro escomo laprogramaciónde unnúmerode teléfonoensuteléfono
celular.Ustedprimeromarcarmanualmente
y guardar un número.Luego,cuandolodesea,puede volveramarcar losnúmerosconel
toque de un botón.
Al igual que con losnúmerosenun teléfonocelular,puedegrabarsusaccionesenExcel
mientras
realizarlas.Mientrasgraba,Excel se llenaenel fondo,latraducciónde laspulsacionesdel
tecladoy
clicsdel ratón para códigoVBA escrito.Despuésde que hayagrabadouna macro,puede
reproduciresasacciones
cualquiermomentoque desee.
Esta piezasirve comouna introducciónaExcel Macros y VBA en general.Aquí,le damosun
resumenconcisode cómofuncionaVBA conExcel,que le da el fundamentobásicoque
necesitaparatrabajar
con los101 macros que figuraneneste libro.
Familiarizarsecon
Conceptosbásicosde grabaciónde macros
Para iniciarlagrabaciónde suprimeramacro, esnecesarioencontrarprimerolagrabadorade
macros, que estáenel
FichaProgramador.Desafortunadamente,Excelque sale de lacajacon la fichaProgramador
escondido - ustedpuede
no verloensuversiónde Excel enunprimermomento.Si vaa trabajarcon macros VBA,usted
querráhacer
Asegúrese de que lafichaProgramadoresvisible.Paramostrarestaficha
1. Seleccione OpcionesOffice➜Excel.
2. En el cuadrode diálogoOpcionesde Excel,seleccione Personalizarcintade opciones.
3. En el cuadrode listade la derecha,coloque unamarcade verificaciónjuntoal desarrollador.
4. Haga clicen Aceptarpara volveraExcel.
Ahoraque tiene lafichaProgramadormuestraenla cinta de opcionesde Excel,se puede
ponerenmarcha el Macro
Grabadora seleccionandoGrabarmacro de lafichaProgramador.Esto activa el cuadrode
diálogoGrabar macro
caja, comose muestraenla Figura1-1.
Figura1.1: El cuadro de diálogoGrabar macro.
Estas sonlas cuatro partesdel cuadro de diálogoGrabar macro:
➤ Nombre de macro: Esto debe explicarse porsímismo.Excel daun nombre pordefectoa la
macro,
como Macro1, perousteddebe darsu nombre macro másdescriptivode loque enrealidad
lohace. Porejemplo,esposible que el nombrede unamacro que da formatoa una tabla
genéricacomoformattable.
➤ Teclade atajo:Cada macro necesitaunevento,oalgoasí suceda,para que se ejecute.Este
evento
puede serunapulsaciónde botón,unaaperturade libro,oeneste caso, unacombinaciónde
teclas.¿Cuándo
asignauna teclade acceso directoa la macro,entrandoenesa combinaciónde teclasque
desencadenasu
macro para funcionar.Este esun campo opcional.
➤ Macro TiendaEn: Este libroesla opciónpordefecto.Almacenamientode lamacroen este
librode trabajo
Simplementesignificaque lamacro se almacenajuntocon el archivoactivoExcel.La próxima
vezque
abrir ese libroenparticular,lamacro estádisponible parafuncionar.Del mismomodo,si usted
envíael libro
a otro usuario,el usuariopuede ejecutarlamacro,así (siempre que laseguridadde macroses
adecuadamente definidoporel usuario - mássobre estomás adelante enla presente parte,en
la seccióntitulada"Mirando
Otros Conceptosde grabaciónde macros").
➤ Descripción:Este esuncampo opcional,peropuede serútil si ustedtienenumerosos
macros
enuna hojade cálculoo si tiene que dara unusuariouna descripción másdetalladade loque
el
macro hace.
Con el cuadrode diálogoGrabarmacro abierto,sigaestospasosparacrear una macro simple
que entraen su
nombre enuna celdade hojade cálculo:
1. Introduzcaun nuevonombre de unasolapalabra para la macro para reemplazarel nombre
predeterminadoMacro1.Un buen
nombrarpara este ejemploesMiNombre.
2. Asignarestamacro para el accesodirectode teclasCtrl + Shift+ N mediante laintroducción
de mayúsculasN en el cuadrode edición
etiquetadoTeclade atajo.
3. Haga clicen Aceptarpara cerrar el cuadro de diálogoGrabar Macro y empezara grabar sus
acciones.
4. Seleccione cualquierceldade lahojade cálculoExcel,escribasunombre enla celda
seleccionada,yluego
presione ENTRAR.
5. ElijaDeveloper➜Code➜Stopgrabación(ohagaclicenel botón Detenergrabaciónenel
barra de estado).
El examende lamacro
La macro se grabó enun nuevomódulodenominadoModule1.Paraverel códigode este
módulo,
debe activarel Editorde Visual Basic.Puede activarel Editorde Visual Basicenunade dos
maneras:
➤ Presione Alt+F11.
➤ ElijaDeveloper➜Code➜Visual básico.
En el Editor de Visual Basic,laventanade proyectomuestraunalistade todosloslibros
abiertosycomplementos.Estalistaes
se muestracomo un diagramade árbol,que se puede expandirocontraer.El códigoque ha
grabado previamente
se almacenaenModule1 enel libroactual.Al hacer doble clicenel módulo1,el códigode
el móduloaparece enlaventanade código.
La macro deberíaseralgocomo esto:
Sub MyName()
‘
‘ MyNameMacro
‘
‘ Keyboard Shortcut: Ctrl+Shift+N
‘
ActiveCell.FormulaR1C1 = “Michael Alexander”
End Sub
La macro grabadaes un procedimientoSubque se nombraMiNombre.LosestadosdicenExcel
qué hacer cuandose ejecutalamacro.
Observe que Excel insertaalgunoscomentariosenlaparte superiordel procedimiento.Estos
son algunosde loscomentarioslainformaciónque aparecióenel cuadrode diálogoGrabar
macro. Estas líneasde comentarios(que empiezanconunapóstrofe) noson realmente
necesarios,yeliminarlosnotiene efectoencómose ejecutalamacro.
Si ignora loscomentarios,veráque este procedimientotieneunasoladeclaraciónVBA:
ActiveCell.FormulaR1C1 = “Michael Alexander”
Esta soladeclaraciónhace que el nombre que escribiódurante lagrabaciónparasu inserción
enla celdaactiva.
Pruebade la macro
Antesde grabar estamacro, se establece unaopciónque le asignalamacro a laShift+ Ctrl + N
combinaciónde teclasde accesodirecto.Paraprobar la macro, vuelva aExcel mediante unade
lassiguientesmétodos:
➤ Presione Alt+F11.
➤ Haga clic enel botónVerMicrosoft Excel enlabarra de herramientasEditorde VB.
CuandoExcel estáactivo,activar unahoja de cálculo.(Puede serenel libroque contiene el
módulode VBA o encualquierotrolibro.) Seleccione unCtrl + Shiftcelularypulse + N.La
macro entra inmediatamente asunombraren la célula.
En el ejemploanterior,notaque haseleccionadolacélulaparaserformateadoantes
empezadoagrabar la macro. Este paso esimportante.Si seleccionaunaceldamientrasla
macro grabadora estáencendida,lacélulareal que haseleccionadose grabaráenla macro.
En tal caso, lamacro siempre formatoque celularparticular,ynosería unamacro de propósito
general.
Ediciónde la macro
Despuésde grabaruna macro, puede realizarcambiosenél (aunque hayque saberloque
estáshaciendo).
Por ejemplo,supongaque deseaque sunombre seanegrita.Ustedpodríavolvera grabar la
macro, peroestamodificaciónessimple,de modoeditarel códigoesmáseficiente.Presione
Alt+ F11 para activarel Editor de Visual Basicventana.A continuación,active Module1e
insertarlasiguiente declaraciónante lainstrucciónEndSub:
ActiveCell.Font.Bold = True
La macro editadoaparece de lasiguientemanera:
Sub MyName()
‘
‘ MyNameMacro
‘
‘ Keyboard Shortcut: Ctrl+Shift+N
‘
ActiveCell.Font.Bold = True
ActiveCell.FormulaR1C1 = “Michael Alexander”
End Sub
Pona pruebaestanuevamacro,y vesque funcionacomodebería.
Comparando absolutayrelativagrabaciónde macros
Ahoraque ustedha leídoacerca de losconceptosbásicosde lainterfazMacro Recorder,esel
momentode irmás profundoycomenzara grabar macros.La primeracosa que ustednecesita
entenderantesde empezaresque Excel tiene dosmodosde grabación - absolutareferenciay
referenciarelativa.
Grabaciónde macros con referenciasabsolutas
Modo de grabación pordefectode Excel esenreferenciaabsoluta.Comoustedessaben,el
términode referenciaabsolutose utilizaamenudoenel contextode lasreferenciasde celda
que se encuentraenlasfórmulas.Cuandounareferenciade celdaenunafórmulaesuna
referenciaabsoluta,que nose ajustaautomáticamente cuandolafórmulase pegaauna nueva
ubicación.
La mejormanerade entendercómoeste conceptose aplicaalasmacros es probarlo.Abrael
Capítulo1
Ejemplode archivoFile.xlsx ygrabarun macro que cuentalas filasenlalistaBranch hojade
trabajo.(VerFigura1-2.)
Figura1-2: Su hojade trabajo pre-totalizaroncontiene dostablas.
El conjuntode datosde lamuestrautilizadaenlapresente parte se puede encontrarenel sitio
webel compañerode este libro.
VerIntroducciónde este libroparaobtenermásenel sitiowebde compañía.
Sigaestospasospara grabar la macro:
1. Antesde grabar, haga esté seleccionadalaceldaA1.
2. Seleccione Grabarmacro de la fichaProgramador.
3. Nombre el AddTotal macro.
4. Seleccionaeste librode trabajoenel almacenamiento.
5. Haga clicen Aceptarpara iniciarlagrabación.
En este punto,Excel estágrabandosusacciones.Aunque Excel eslagrabación,realice el
siguiente pasos:
6. Seleccione A16celularyel tipototal en lacélula.
7. Seleccione laprimeraceldavacíade la columnaD (D16) y el tipo= CONTARA (D2:D15). esto
da un recuentode losnúmerosde sucursalesenlaparte inferiorde lacolumnaD.Usted
necesitausarla funciónCONTARA porque losnúmerosde ramificaciónse almacenancomo
texto.
8. Haga clicen DetenergrabaciónenlafichaProgramadorpara detenerlagrabaciónde la
macro.
La hojade trabajo conformato deberíaparecerse ala de la Figura1-3.
Figura1-3: Su hojade trabajo posttotalizado.
Para verla macro en laacción, elimine lafilade totalesque acabade agregary reproducirla
macro siguiendoestospasos:
1. Seleccione Macrosde la fichaProgramador.
2. Busque y seleccionelamacroAddTotal que acaba de grabar.
3. Haga clicen el botónEjecutar.
Si todo va bien,lamacro se reproduce susaccionesa una T y le da a su mesaun total.Ahora
aquí estála cosa. Noimportacuánto te esfuerces,nose puede hacerel trabajoAddTotal
macro enla segundatabla.
¿Por qué?Debidoaque ha grabado comouna macro absoluta.
Para entenderloque estosignifica,examinarel códigosubyacente.Paraexaminarel código,
seleccione Macrosde lafichaProgramador para obtenerel cuadrode diálogoMacro que se ve
enla figura1-4.
Figura4.1: El cuadro de diálogoMacro Excel.
Seleccione lamacroAddTotal yhaga clicen el botónEditar.Esto abre el Editor de Visual Basic
para mostrar el códigoque fue escritocuandograbó lamacro:
Sub AddTotal()
Range(“A16”).Select
ActiveCell.FormulaR1C1 = “Total”
Range(“D16”).Select
ActiveCell.FormulaR1C1 = “=COUNTA(R[-14]C:R[-1]C)”
End Sub
A16 y luegoD16, esascélulas sonexactamente loque se haseleccionado.Debidoaque la
macro se registróenabsolutomodode referencia,Excel interpretasuseleccióngamacomo
absoluto.Enotras palabras,si seleccionaA16célula,esacélulaesloque le da Excel.Enla
siguiente sección,se echaunvistazoalo que la mismamacro parece que cuandose graba en
el modode referenciarelativa.
Grabaciónde macros con referenciasrelativasEnel contextode lasmacrosde Excel,medios
relativosrelativosalaceldaactiva enese momento.Porloque debe utilizarcuidadoconsu
elecciónceldaactiva- tantoal grabar la macro referenciarelativaycuandoque loejecute.
En primerlugar,asegúrese de que el archivoFile.xlsxCapítulo1de lamuestraestáabierta.
(Este archivoestádisponibleenel compañerode este libro.páginaweb) A continuación,
utilice lossiguientespasosparagrabar una macro referenciarelativa:
1. Seleccione laopciónde referenciasrelativasUsode lafichaProgramador,comose muestra
enla Figura1-5.
2. Antes de grabar, haga esté seleccionadalaceldaA1.
3. Seleccione Grabarmacro de la fichaProgramador.
4. Asigne unnombre al AddTotalRelative macro.
5. Seleccionaeste librode trabajoenel almacenamiento.
6. Haga clicen Aceptarpara iniciarlagrabación.
7. Seleccione A16celularyel tipototal en lacélula.
8. Seleccione laprimeraceldavacíade la columnaD (D16) y el tipo= CONTARA (D2:D15).
9. Haga clicen DetenergrabaciónenlafichaProgramadorpara detenerlagrabaciónde la
macro.
Figura1.5: Grabaciónde una macro con referenciasrelativas.
Creadomacro.
Seleccione MacrosenlafichaProgramador para abrirel cuadro de diálogoMacro.Aquí, elijala
AddTotalRelativemacroyhaga clic enEditar.
Una vez más,estoabre el Editor de Visual Basic para mostrarel códigoque fue escritocuando
grabó su macro.Esta vez,el códigose ve algocomo losiguiente:
Sub AddTotalRelative()
ActiveCell.Offset(15, 0).Range(“A1”).Select
ActiveCell.FormulaR1C1 = “Total”
ActiveCell.Offset(0, 3).Range(“A1”).Select
ActiveCell.FormulaR1C1 = “=COUNTA(R[-14]C:R[-1]C)”
End Sub
Tengaen cuentaque no hayreferenciasacualquierrangode celdasespecíficasenabsoluto
(que noseanel puntode partida"A1").Tomemosunmomentopara echarun rápidovistazoa
loque las partespertinentesde este códigoVBA realmente significar.
Observe que enlalínea2, Excel utilizalapropiedadOffsetde laceldaactiva.Esta propiedad
indicael cursor para moverunciertonúmerode célulasarribao hacia abajoy un cierto
númerode célulasizquierdaoderecha.
El códigode la propiedadOffsetle dice aExcel para mover15 hilerasde plumasy0 columnas
frente ala activa célula(eneste caso,A1).Nohay necesidadde Excel paraseleccionar
explícitamente uncelularcomolohizodurante la grabaciónde un macro referenciaabsoluta.
Para veresta macro enacción,eliminarlafilatotal paraambas tablasy hacer losiguiente:
1. Seleccione laceldaA1.
2. Seleccione Macrosde la fichaProgramador.
3. Busque y seleccionelamacroAddTotalRelative.
4. Haga clicen el botónEjecutar.
5. Ahora seleccionelaceldaF1.
6. Seleccione Macrosde la fichaProgramador.
7. Busque y seleccionelamacroAddTotalRelative.
8. Haga clicen el botónEjecutar.
Tengaen cuentaque estamacro, a diferenciade la macroanterior,funcionaenambos
conjuntosde datos.Debidoaque la macro aplicalostotalesrelativosalaceldaactiva enese
momento,lostotalesse aplicancorrectamente.
Por estamacro funcione,sólohayque asegurarse de que
➤ Ustedha seleccionadolaceldade partidacorrectoantesde ejecutarlamacro.
➤ El bloque de datostiene el mismonúmerode filasycolumnascomolosdatosenel que se
grabado lamacro.
Con suerte,este sencilloejemploque hadadouna sólidacomprensiónde lagrabaciónde
macros con tantoabsolutocomoreferenciasrelativas.
En cuanto a otros conceptosde grabaciónde macros En este punto,usteddebe sentirse
cómodograbar su propiaExcel Macros. Ahora aquí estánalgunasde losotros conceptos
importantesque tendrásque tenerencuentacuandose trabajacon macros.
Extensionesde archivoMacro habilitadoEmpezandoconExcel 2007, Excel tiene unaextensión
de archivodiferente paralibrosque contienenmacros.
Ustedve,Excel 2010 librostienenlaextensiónde archivo.xlsx estándar.Losarchivosconla
extensión.xlsxnopuede contenermacros.Si el librocontiene macrosy,acontinuación,
guardar ese librocomoun.
archivoxlsx,lasmacrosse eliminanautomáticamente.Excel le advierteque el contenidode
macro se desactivaráal guardar unlibrocon macros comoun archivo.xlsx.
Si deseaconservarlasmacros, debe guardarel archivocomo un librode trabajohabilitada
para macros de Excel.Este da su archivouna extensión.xlsm.Laideaesque todosloslibros
con una extensiónde archivo.xlsxsonautomáticamente conocidoporserseguro,mientras
que ustedpuede reconocer.xlsmarchivoscomounaamenazapotencial.
La seguridadde macrosenExcel 2010
Con el lanzamientode Office 2010,Microsoft introdujocambiossignificativosensumodelode
seguridadde Office.
Uno de loscambiosmássignificativosesel conceptode documentosde confianza.Sinentrar
enla minuciatécnica,undocumentode confianzaesesencialmenteunlibroque ha
consideradoseguroal permitirmacros.
Si abre un libroque contiene macrosenExcel 2010, aparece un mensaje de labarra amarilla
bajola Cintaindicandoque lasmacros(contenidoactivo) tienenenefecto,hadesactivado.
Si hace clicen Habilitar,se convierte automáticamente enundocumentode confianza.Esto
significaque yanoestánse le pidapara que el contenidosiempreycuandose abre ese archivo
ensu ordenador.La ideabásicaesque si le dijiste aExcel que "laconfianza",unlibroen
particularal permitirmacros,esmuyprobable que ustedhabilitarlasmacroscada vezque lo
abra. Por lotanto,Excel recuerdaque ha habilitadomacrosantese inhibe cualquierotros
mensajesacercade macros para ese libro.
Esta es unagran noticiapara ustedy susclientes.Despuésde habilitarlasmacrossólounavez,
no loharán estar molestoporlosmensajesconstantessobre macros,yustednotendráque
preocuparse de que susalpicaderomacro-enabledfracasaráporque lasmacros se han
desactivado.
Las ubicacionesde confianzaSi laideade cualquier mensaje macroviene (inclusounavez) que
enerva,se puede establecerunubicaciónde confianzaparasusarchivos.Una ubicaciónde
confianzaesundirectorioque se consideraunazonaseguradonde sólolibrosde trabajode
confianzase colocan.Una ubicaciónde confianzapermite que ustedysusclientespara
ejecutarunamacro-enabledcuadernode trabajosinrestriccionesde seguridad,siempre y
cuandoel librose encuentraenese lugar.
Para configuraruna ubicaciónde confianza,sigaestospasos:
1. Seleccione el botónSeguridadde macrosenlafichaProgramador.
Esto activael cuadro de diálogoCentrode confianza.
2. Haga clicen el botónde ubicacionesde confianza.Estoabre el menúde ubicacionesde
confianza(verFigura1-6),que le muestratodoslosdirectoriosque sonconsideradosde
confianza.
3. Haga clicen el botónAgregarnuevoUbicación.
4. Haga clicen Examinarpara buscar yespecificarel directorioque seráconsideradouna
ubicaciónde confianza.
Despuésde especificarunaubicaciónde confianza,cualquierarchivode Excel que se abre
desde estaubicacióntendrámacroshabilitadoautomáticamente.
Figura1.6: El menúde ubicacionesde confianzale permite añadirdirectoriosque se
consideranconfiables.
El almacenamientode macrosensu librode macrospersonal La mayoría de las macros
creadaspor el usuarioestándiseñadosparasuuso enun libroespecífico,peroesposible que
desee utilizaralgunasmacrosentodosu trabajo.Puede almacenarestasmacrosde uso
general enel Macro Personal Librode trabajode maneraque siempre estamosasu
disposición.El Librode macros personal se carga cada vezque iniciaExcel.Este archivo,
llamadopersonal.xlsb,noexiste hastaque grabe unamacro utilizandoPersonal
Librode macros comodestino.
El Librode macrospersonal que normalmentese encuentraenunaventanaocultapara
mantenerlofuerade el camino.
Para grabar la macro enel librode macros personales,seleccione laopciónLibrode macros
personal enel cuadrode diálogoGrabar macro antesde empezarlagrabación.Esta opciónse
encuentraenlamacro tiendaEn desplegable lista.
Si almacenalas macrosen el libromacrospersonales,ustednotieneque acordarse de abrirla
Librode macros personal cuandose carga un libroque utilizamacros.Cuandose quiere salir,
Excel le preguntarási deseaguardarloscambiosen el libromacrospersonales.
Asignarunamacro a un botóny otroscontrolesde formulario
Al crear macros, esposible que desee tenerunamanera clara y fácil de ejecutarcada macro.
Un básico botónpuede proporcionarunainterfazde usuariosencillaperoeficaz.
La suerte quisoque,Excel ofreceunconjuntode controlesde formulariodiseñado
específicamente paralacreaciónde interfacesde usuariodirectamente enlashojasde cálculo.
Hay variostiposdiferentesde controlesde formulario,de losbotones(el másutilizadade
control) para lasbarras de desplazamiento.
La ideadetrásde usar uncontrol de formularioessimple.Ustedcolocauncontrol de
formularioenunahojade cálculoy después asignarunamacro a ella- es decir,unamacro que
ya ha grabado.Cuandose asignauna macro para el control, esamacro se ejecuta,ojuega,
cuandose hace clic enel control.
Tómese unmomentoparacrear un botónpara lamacro AddTotalRelative creóanteriormente.
He aquí cómo:
1. Haga clicen el botónInsertarbajola fichaProgramador.(VerFigura1-7.)
2. Seleccione el control de formularioBotónde lalistadesplegable que aparece.
3. Haga clicen laubicaciónenla que deseacolocarel botón.Al colocar el control de botón en
la hojade cálculo,el cuadro de diálogoAsignarmacro,comose muestraenla Figura1-8, se
activay le pide que asignauna macro a este botón.
4. Seleccione lamacroque deseaasignaral botóny luegohaga clicenAceptar.
Figura1-7: Puede encontrarloscontrolesde formularioenlafichaProgramador.
Figura1-8: Asignarunamacro al botónque acaba de agregar.
Controlesde formulariofrente aloscontrolesActiveX
Observe loscontrolesde formularioyloscontrolesActiveXenlaFigura1-7. A pesarde que se
parecen,sonbastante diferente.Controlesde formularioestándiseñadosespecíficamente
para su usoen una hojade cálculo,y loscontrolesActiveXsonutilizadotípicamente en
formulariosde usuariode Excel.Comoreglageneral,siempre debeusarloscontrolesde
formulariocuandose trabajaenuna hoja de cálculo.¿Porqué?Los controlesde formulario
tienenmenosgastosgenerales,porloque funcionanmejor, yconfigurarcontrolesde
formularioesmuchomásfácil que la configuraciónde suscontrapartesActiveX.
En este punto,ustedtiene unbotónque ejecutalamacroal hacer clicenél!Tenga encuenta
que todosloscontrolesenel grupode controlesde formulario(quese muestraenlaFigura1-
7) trabajar enla mismaformaque el botónde comando,enque se asignauna macro a
ejecutarcuandose seleccionael control.
La colocaciónde unamacro en labarra de herramientasde accesorápidoTambiénpuede
asignaruna macro a un botónen labarra de herramientasde accesorápidode Excel:
1. Haga clicen labarra de herramientasde accesorápidoyseleccione Personalizarbarrade
herramientasde accesorápido.
2. Haga clicen el botónde la barra de herramientas de accesorápidoa la izquierdadel cuadro
de diálogoOpcionesde Excel.
3. Seleccione Macrosenla listadesplegablede laizquierda.
4. Seleccione lamacroque desee agregaryhaga clic enel botónAgregar.
5. Cambie el iconohaciendoclicenel botónModificar.
Trabajar en el Editor de Visual Basic
El Editorde Visual Basic(VBE) esunaaplicaciónindependienteenel que escribe yeditasus
macros VBA.Ustedno se puede ejecutarel VBEporseparado;Excel debe estarenejecución
para que el VBE se ejecute.
La activación de la VBE
La formamás rápidapara activar el VBE espulsarAlt+ F11 cuandoExcel estáactivo.Para
volveraExcel,pulse Alt+ F11 de nuevo.
Tambiénpuede activarel VBEmediante el comandoDeveloper➜Code➜Visual básico.
ComponentesComprensiónVBE
Figura1-9 muestrael programaVBE con algunasde las partesclave identificados.Porque tanto
que estápasandoen enel VBE,me gustapara maximizarlaventanaparaverlo más posible.
Es probable que suventanadel programaVBE no se veráexactamente igual que loque se ve
enla Figura1-9. El VBE contiene variasventanasyesaltamente personalizable.Puede ocultar
lasventanas,reorganizarlasventanas,ventanasmuelle,yasísucesivamente.
Figura1-9: El VBEcon elementossignificativosidentificados.
Barra de menús
La barra de menúsVBEfuncionacomocualquierotrabarra de menúque ha encontrado.
Contiene comandos que se utilizaparahacerlas cosascon los diversoscomponentesde la
VBE.Usted tambiénencontraráque muchosde los comandosde menútienenteclasde acceso
directoasociadascon ellos.
El VBE tambiéncuentaconmenúscontextuales.Ustedpuede hacerclicenvirtualmente
cualquiercosaenel VBE y obteneruna menúcontextual de comandoscomunes.
Barra de herramientas
La barra de herramientasestándar,que estádirectamentedebajode labarrade menúpor
defecto,esunade las cuatro barras de herramientasVBE disponible.Puede personalizarlas
barras de herramientas,moverlos,mostrarotrasbarrasde herramientas,yasísucesivamente.
Si ustedestátan inclinado,utilice el comandoView➜Toolbarstrabajarconbarras de
herramientasVBE.Lamayoría de lagente sólodejarloscomoestán.
Ventana de proyecto
La ventanade proyectomuestraundiagramade árbol que muestracada libro abierto
actualmente enExcel (Incluidosloscomplementosylibrosocultos).Hagadoble clicenlos
elementosparaexpandirocontraerellos.Nosotrosdiscutirestaventanaconmásdetalle enla
sección"Trabajarcon la ventanadel proyecto"másadelante en estaparte.
Si la ventanaProyectonoesvisible,presioneCtrl +R o utilice el comandoView➜Project
Explorer.Esconderlaventanadel proyecto,hagaclicenel botónCerrar enla barra de título.
Alternativamente,hagaclicencualquierlugarenel Ventanadel proyectoyseleccioneOcultar
enel menúcontextual.
Ventana Código
Una ventanade códigocontiene códigoVBA.Cadaobjetoenunproyectotiene unaventanade
códigoasociado.A ver ventanade códigode un objeto,hagadoble clicenel objetoenla
ventanaProyecto.Porejemplo,paraverla ventanade códigopara el objetoSheet1,haga
doble clicenSheet1enla ventanaProyecto.A menosque ustedtiene añadidoalgode código
VBA,laventanaCódigoestarávacía.
Encontrará más informaciónacercade lasventanasde códigomás adelante enlasección
"Trabajar con una ventanade código"de estaparte.
Ventana Inmediato
La ventanaInmediatopuede onoservisible.Si noestávisible,presione Ctrl +G o utilizarel
View➜ ComandoventanaInmediato.Paracerrarla ventanaInmediato,hagaclicenel botón
Cerrar enla barra de título(Ohaga clic encualquierlugarenlaventanaInmediatoyseleccione
Ocultaren el menúcontextual).
La ventanaInmediatoesmásútil paraejecutardirectamente lasdeclaracionesde VBA ypara
depurarsu código.Si ustedapenasestácomenzandoconVBA,estaventananoserá tan útil,
por loque no dude enocultarloy liberaralgode espacioenlapantallapara otras cosas.
Trabajar con la ventana del proyecto
Cuandose trabaja enel VBE, cada librode Excel y complementoque eslibre esunproyecto.
Puedespensarenunproyectocomouna colecciónde objetosdispuestoscomounesquema.
Puede ampliarunproyectohaciendoclicel signomás(+) a la izquierdadel nombredel
proyecto enla ventanadel proyecto.Contratarunproyectode clicen el signomenos(-) ala
izquierdadel nombre de unproyecto.Obien,puedehacerdoble clicenloselementospara
ampliary contratarlos.
La figura1-10 muestraunaventanade proyectocon dosproyectosfiguran:unlibro
denominadoLibro1yun librollamadoBook2.
Figura1-10: Esta ventanaProyectoenumeradosproyectos.Ellosse expandenparamostrar
sus objetos.
Cada proyectose expande paramostraral menosunnodollamadoMicrosoftExcel Objetos.
Este nodo se expande paramostrarun artículo para cada hoja del libro(cadahojase considera
un objeto),yotro objetollamadoThisWorkbook(que representael objetoWorkbook).Si el
proyectotiene cualquierVBA módulos,el listadode proyectostambiénmuestraunnodo
Módulos.
Adiciónde un nuevomódulo de VBA
Al grabar una macro, Excel insertaautomáticamente unmódulode VBA paramantenerel
códigograbado.La libroque tiene el móduloparalamacro grabadadepende de donde usted
eligióparaalmacenarel grabadomacro, justoantesde empezarlagrabación.
En general,unmódulode VBA puede contenertrestiposde código:
➤ Declarations: Uno o más estadosde informaciónque ustedsuministre aVBA.Porejemplo,
puede declararel tipode datospara las variablesque vaa utilizar,oestableceralgunaotraen
todoel módulo opciones.
➤ Sub procedures: Un conjuntode instruccionesde programaciónque realizaalgunaacción.
Todosregistrado macros seránprocedimientosSub.
➤ Function procedures: Un conjuntode instruccionesde programaciónque devuelve un
solovalor(similarenconceptoauna funciónde hojade cálculo,comoSuma).
Un solomóduloVBA puede almacenarcualquiernúmerode procedimientosSub,
procedimientos,funcionesydeclaraciones.
Cómoorganizarun móduloVBA estotalmente suya.Algunaspersonasprefierenmantener
todosu CódigoVBA para una aplicaciónenunsolomóduloVBA;a otroslesgustadividirel
códigoenvariosdiferentesmódulos.Esunaelecciónpersonal,al igual que laorganizaciónde
losmuebles.
Sigaestospasospara añadirmanualmente unnuevomódulode VBA aun proyecto:
1. Seleccione el nombre delproyectoenlaventanadel proyecto.
2. ElijaInsert➜Module.
O puede
1. Haga clicen el nombre del proyecto.
2. ElijaInsert➜Module enel menúcontextual.
El nuevomódulose añade auna carpeta de módulosenlaventanadel proyecto(verFigura1-
11). cualquiermódulosse creaenun librodeterminadose colocanenestacarpetaMódulos.
Figura1-11: módulosde códigosonvisiblesenlaventanadel proyectoenunacarpetallamada
módulos.
Extracción de un módulode VBA
Es posible que deseeeliminarunmódulode códigoque yano esnecesario.Paraello,siga
estospasos:
1. Seleccione el nombre delmóduloenlaventanadel proyecto.
2. Elijaxxx File➜Remove,dondexxx esel nombre delmódulo.
O
1. Haga clicen el nombre del módulo.
2. Seleccione Eliminarxxx enel menúcontextual.
Excel,siempre tratandode evitarque haciendoalgoque te arrepentirás,le preguntasi desea
exportarel códigoenel móduloantesde eliminarlo.Casi siempre,nolohace.(Si lohaces
quiere exportarel módulo,consultelasiguiente sección,"Trabajarconuna ventanade
código.") Ustedpuede quitarmódulosVBA,peronohayformade eliminarlosotrosmódulos
de código - aquellosparalosobjetosde hojaoThisWorkbook.
Trabajar con una ventana de código
Comollegara dominarcon VBA,ustedpasamuchotiempotrabajandoenventanasde código.
Las macros que grabe se almacenanenunmódulo,yustedpuede escribircódigoVBA
directamente enunmódulode VBA.
Minimizary maximizar ventanas
Ventanasde códigosonmuyparecidosa ventanasde libroenExcel.Ustedpuede minimizarlos,
maximizarellos, cambiarel tamañode ellos,ocultarlos,reorganizarlos, yasísucesivamente.La
mayoría de las personaslesresultamuchomásfácil para maximizarel Ventanade códigoque
estántrabajando.Si lohace, le permite vermásde códigoy le impide obtener distraído.
Para maximizarunaventanade código,hagaclic en el botónde maximizarenlabarra de título
(justoal ladode laX).O solo haga doble clicenla barra de títulopara maximizarlo.Para
restauraruna ventanade códigoa su tamaño original,hagaclicenRestaurar botón.Cuandose
maximizaunaventana,labarra de títulono es muyvisible,porloque encontrarásenel botón
Restaurara laderechadel tipode una preguntapara lacaja de la Ayuda.
A veces,esposible que deseetenerdosomásventanasde códigovisibles.Porejemplo,es
posible que desee compararel códigoendosmódulosocopiarel códigode unmóduloa otro.
Ustedpuede arreglarel ventanasmanualmente,outilizarel Window➜Tile horizontalmente o
verticalmenteWindow➜Tilecomandosparaorganizarlosautomáticamente.
Puede cambiarrápidamente entreventanasde códigopulsandoCtrl +Tab. Si repite esa
combinaciónde teclas, ustedguardael ciclismoatravésde todaslas ventanasde código
abierto.PresionandoShift+Tab Ctrl + ciclosa través las ventanasenordeninverso.
MinimizandounaventanaCódigoconsiguefueradel camino.Tambiénpuedehacerclicenel
botónCerrar de la ventanaenun Barra de títulode la ventanaCódigoparacerrar
completamentelaventana.(Cerrarunaventanajustoloesconde;noloharás perdernada.)
Para abrir de nuevo,bastacon hacer doble clicenel objetoapropiadoenlaventanadel
proyecto.
Trabajar con estasventanasCódigosuenamásdifícil de loque realmente es.
Obtenercódigo VBA enun módulo
Antesde que puedahaceralgo significativo,debe teneralgo de códigoVBA enel módulode
VBA.Puedes obtenerel códigoVBA enunmóduloVBA de tresmaneras:
➤ Utilice lagrabadora de macros de Excel para registrarsus accionesylosconvierte acódigo
VBA
➤ Introducirel códigodirectamente
➤ Copiael códigode un móduloypegarloenotro
Has descubiertoel excelentemétodoparacrearcódigoutilizandolagrabadorade macros de
Excel.
Sinembargo,notodas lastareas puedensertraducidosaVBA mediante el registrode una
macro. A menudose tiene que introducirsu códigodirectamente enel módulo.Introducción
del códigodirectamente básicamente significaobienescribiendoel códigode ti mismo o
copiary pegar el códigoque haya encontradoenotrolugar.
Introducciónyediciónde textoenunmóduloVBA funcionacomose podríaesperar.Puede
seleccionar,copiar,cortar, pegar,yhacer otras cosas al texto.
Una sola líneade códigoVBA puede sertan largocomo quieras.Sinembargo,esposible que
desee utilizarel line-continuation carácterpara romperlargaslíneas de código.Para continuar
con una solalíneade código(también conocidocomounadeclaración) de unalíneaa la
siguiente,ponerfinalaprimeralíneacon un espacioseguidoporun guiónbajo(_).Luego
continuarla declaraciónenlalíneasiguiente.He aquíun ejemplode unúnicoestado dividido
entres líneas:
Selection.Sort Key1:=Range(“A1”), _
Order1:=xlAscending, Header:=xlGuess, _
Orientation:=xlTopToBottom
Esta declaraciónse realice de lamismamanerasi se introduce enunasolalínea(sin
linecontinuationcaracteres).Tengaencuentaque lasegundayterceralíneasde esta
declaraciónsonsangría.
Sangría es opcional,peroayudaaaclarar el hechode que estaslíneasno soncomunicados
separados.
El VBE tiene múltiplesnivelesde deshacery rehacer.Si ha eliminadounadeclaraciónque
ustednodeberíatener,el usoel botónDeshacerde la barra de herramientas(opresione Ctrl +
Z) hastaque la declaraciónaparece de nuevo.Despuésde deshacer,se puedeutilizarel botón
Rehacerpara realizarloscambiosque ha deshecho.
Listopara entrar enalgunos,códigode carne y hueso?Pruebe lossiguientespasos:
1. Cree un nuevolibroenExcel.
2. Pulse Alt+ F11 para activar el VBE.
3. Haga clicen el nombre del nuevolibroenlaventanadel proyecto.
4. ElijaInsert➜Module parainsertarunmódulode VBA enel proyecto.
5. Escriba el siguiente códigoenel módulo:
Sub GuessName()
Dim Msg as String
Dim Ans As Long
Msg= “Is your name “ & Application.UserName& “?”
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then MsgBox “Oh, never mind.”
If Ans = vbYes Then MsgBox “I must be clairvoyant!”
End Sub
6. Asegúrese de que el cursorse encuentraencualquierlugardentrodel textoque escribióy
presione F5para ejecutarel procedimiento.
F5 es un accesodirectopara el comandoSub / UserFormRun➜Run.
Cuandose introduce el códigoque aparece enel paso5, puede notarque el VBEhace algunos
ajustesparael textoque introduzca.Porejemplo,despuésde escribirlainstrucciónSub,el
VBE insertaautomáticamenteel TermineinstrucciónSub.Ysi se omite el espacioanteso
despuésde unsignoigual,el VBEinsertalaespacioparati. Además,el VBEcambiael colory la
capitalizaciónde algúntexto.Todoestoesperfectamente normal.
Es sóloforma de mantenerlascosaslimpiasylegiblesde laVBE.
Si ha seguidolospasosanteriores,que acabade crear un procedimientoSubVBA,también
conocidocomouna macro.
Al pulsarF5, Excel ejecutael códigoysigue lasinstrucciones.Enotraspalabras,Excel evalúa
cada declaraciónyhace loque le dijiste que hiciera.Puede ejecutarestamacrocualquier
númerode veces - aunque tiende aperdersuatractivodespuésde unascuantasdocenasde
ejecuciones.
Este simple macroutilizalossiguientesconceptos:
➤ DefinirunprocedimientoSub(laprimeralínea)
➤ lasvariablesDeclaraciónde lasdeclaraciones(DIM)
➤ La asignaciónde valoresalasvariables(Msgy Ans)
➤ Concatenación(joining) unacadena (usandoel operador&)
➤ Utilizandounafunciónintegradade VBA (MsgBox)
➤ Uso de constantesintegradasde VBA (vbYesNo,vbNoyvbYes)
➤ El usode un If-Then construir(dosveces)
➤ Terminarun procedimientoSub(laúltimalínea)
Comomencionamosanteriormente,puede copiarypegarel códigoenun móduloVBA.Por
ejemplo, un Sub oProcedimientode Function que usted escribeparaunproyectotambién
puede serútil enotroproyecto.enlugar de perderel tiempovolveraentraren el código,
puede activarel móduloyutilizarlacopia-andpaste normalesprocedimientos(Ctrl +Cpara
copiary Ctrl + V para pegar).Después de pegarenun módulode VBA,puede modificarel
códigosegúnseanecesario.
Personalizaciónde la VBA MedioAmbiente
Si ustedesserioacerca de convertirse enunprogramadorde Excel,ustedpasamuchotiempo
con módulosVBA enlapantalla.Paraayudar a hacer lascosas lo máscómoda posible,el VBE
ofrece unbuennúmerode personalizaciónopciones.
Cuandoel VBE esactiva,elijaTools➜Options.Veráuncuadrode diálogoconcuatro pestañas:
Editor,EditorFormato,General y de acoplamiento.Tome unmomento paraexploraralgunas
de las opcionesque se encuentranencadaficha.
La ficha Editor
Figura1-12 muestralas opcionesque se accede haciendoclicenlafichaEditordel cuadrode
diálogoOpciones.utilizarel opciónenlafichaEditorde controlarcómo ciertascosas enel VBE.
Figura1-12: La fichaEditordel cuadro de diálogoOpciones.
La opciónRevisar sintaxisAuto
La Comprobarconfiguraciónde sintaxisautomáticadeterminasi el VBEaparece uncuadro de
diálogosi se descubre unerror de sintaxismientrasse estáintroduciendosucódigoVBA.El
cuadro de diálogole dice máso menosloque esel problema.
Si no seleccionaestaopción,banderasVBEsintaxiserroresmostrándolosenuncolordiferente
de el restodel código,y ustednotiene que hacerfrente aloscuadros de diálogoapareciendo
enla pantalla.
Normalmente me mantengoeste ajusteapagué porque creoque loscuadrosde diálogoson
molestosyyopor lo general puede averiguarloque estámal enuncomunicado.Antesyoera
un veteranode VBA,Iencontradoeste ajuste muyútil.
La opciónRequerirdeclaración de variables
Si la opciónRequerirdeclaraciónde variablesse establece,VBEinsertalasiguiente declaración
al comienzode cadanuevomóduloVBA inserta:
OptionExplicit
El cambiode este ajuste sóloafectaa losnuevosmódulos,nolosmódulosexistentes.Si esta
declaraciónaparece ensumódulo,debe definirexplícitamente cadavariable que utiliza.
Usando unainstrucciónDimesuna manerade declararvariables.
La opciónLista de miembrosautomática
Si la opciónListade miembrosautomáticase establece,VBEofrece unpocode ayudacuando
se está introduciendosucódigoVBA.
Se muestrauna listaque completaríalógicamenteladeclaraciónque estásescribiendo.Estaes
una de las mejorescaracterísticasde laVBE.
La opciónAuto Quick Info
Si se seleccionalaopciónAutoInformaciónrápida,VBEmuestrainformaciónacercade las
funcionesysusargumentosmientrasescribe.Estoessimilaralaforma enque Excel se
enumeran losargumentosparaunafuncióna medidaque empiezanaescribirunanueva
fórmula.
La opciónConsejosde datos automática
Si la opciónConsejosde datosautomáticase establece,VBEmuestrael valorde lavariable
sobre la que el cursor se encuentracolocadocuandoestásdepuraciónde código.Estose activa
de forma predeterminaday,amenudomuyútil.Tienesningunarazónparaactivar esta
opción.
El ajuste Sangría automática
El ajuste Sangría automáticadeterminasi VBEsangrade forma automáticacada nuevalíneade
códigodel igual que lalíneaanterior.Soygrande enel uso de muescasenmi código,así que
mantengoestaopción.
Por cierto,se debe utilizarlateclaTabpara sangrar el código,no labarra espaciadora.
Tambiéntúpuede utilizarShift+Tab para "Unindent"unalíneade código.Si deseasangrar
más de una línea,seleccionetodaslaslíneasque deseasangraryluegopresione lateclaTab.
Editar barra de herramientasdel VBE(que estáocultade manerapredeterminada) contiene
dos botonesútiles:SangríayAnularsangría.
Estos botonesle permitenrápidamenteguióno"Unindent"unbloque de código.Seleccioneel
códigoy haga clicen unode estosbotonesparacambiarla sangría del bloque.
La opciónde ediciónde arrastrar y soltar texto
La opciónde ediciónde arrastrary soltartexto,cuandoestáactivada,le permite copiary
movertextoarrastrandoy cayendocon el ratón.Mantengoestaopciónactivada,peronunca
louso. Yo prefierocopiarymoverutilizandoel teclado.
El defectoenFull Module Ampliaropción
El defectoenFull Module Ampliaropciónestableceel estadopordefectoparalosnuevos
módulos.(Noafectaexistentemódulos.)Si se establece,losprocedimientosenlaventanade
códigoaparecencomouna única listadesplazable.Si estaopciónesapagado,se puede ver
sóloun procedimientoalavez.Mantengoestaopciónactivada.
La opciónde ProcedimientoSeparador
Cuandola opciónProcedimientoseparadorestáencendido,barrasseparadorasaparecenal
final de cada procedimientode enunaventanade código.Me gusta la ideade barras
separadoras,así que mantenerestaopciónactivada.
La pestaña Editor de formato
La figura1-13 muestralafichaEditor de formatodel cuadrode diálogoOpciones.Conesta
ficha,puede personalizarlaformaenque el VBEparece.
Figura1-13: Cambiarmiradasdel VBE con la pestañaEditorde formato.
La opciónColoresCódigo
La opciónde códigode coloresle permite ajustarel colordel textoyel colorde fondoque se
muestrapara varioselementosde códigoVBA.Estoesengran medidaunacuestiónde
preferenciapersonal.Personalmente,creoque loscolorespordefectoparaserbien.Peropara
un cambiode escenario,de vezencuandojugarcon estosajustes.
La opciónde fuente
La opciónde fuente le permite seleccionarel tipode letraque se utilizaenlosmódulosde
VBA.Para obtenerlosmejoresresultados,seguirconunfont-anchofijocomoCourierNew.En
una fuente de anchofijo,todoslospersonajessonexactamente lamismaanchura.
Esto hace que el códigosea más legibleporque lospersonajesestánmuybienalineados
verticalmenteypuedesdistinguirfácilmente múltiplesespacios(que avecesesútil).
El valor de Tamaño
El ajuste Tamañoespecificael tamañoenpuntosde lafuente enlosmódulos VBA.Esta
configuraciónesunacuestiónde preferenciapersonal determinadoporsuresoluciónde
pantallade vídeoy lobienque suvistaestá.
La opciónMargen Indicador Bar
Esta opcióncontrolala visualizaciónde labarra indicadorade margenvertical ensusmódulos.
Usteddebe mantenerestaencendido;de locontrario,ustednoserácapaz de ver los
indicadoresgráficosútil cuandoestásdepurarel código.
La ficha General
Figura1-14 muestralas opcionesdisponiblesenlafichaGeneral del cuadrode diálogo
Opciones.Encasi todos loscasos,losvalorespredeterminadossonmuybien.
El ajuste másimportante enlafichaGeneral esError reventado.Le sugerimosque utilice la
Abrete nocontroladaentornoerrores.EstoaseguraExcel puede identificarloserroresal
escribirel código.
Figura1-14: La fichaGeneral del cuadrode diálogoOpciones.
La ficha de acoplamiento
La figura1-15 muestralafichaSoporte.Estasopcionesdeterminancómolasdistintasventanas
de la VBE comportarse.Cuandose acoplauna ventana,se fijaensulugar a lolargo de uno de
losbordesdel programaVBE ventana.Estohace que seamucho másfácil de identificary
localizarunaventanaparticular.Si apaga todo atraque,tienesungranlío, confusode las
ventanas.Engeneral,los ajustespordefectofuncionanbien.
Figura1-15: La pestañade acoplamientodel cuadrode diálogoOpciones.
Descubriendoel modelode objetosde Excel
En Excel,a lidiarconloslibrosde trabajo,hojasde trabajo y rangosen unabase diaria.Usted
probablemente piensade cadade estos"objetos"comoparte de Excel,enrealidadnolos
separaen sumente.Sinembargo,Excel piensasobre estosinternamente comoparte de un
modelojerárquicollamadoel modelode objetosde Excel.El objetode Excel modelo esun
claramente definidounconjuntode objetosque se estructurande acuerdoalas relaciones
entre ellos.
En estasección,le damosuna breve descripcióndelmodelode objetos,asícomoalgunosde
lasotras terminologíasylosconceptosque se encontraránenlospróximos101 macros.
La comprensiónde los objetos
En el mundoreal,puede describirtodoloque ve como unobjeto.Cuandoustedmiraa su
casa, esun objeto.Sucasa tiene habitaciones;esashabitacionestambiénsonobjetos
separados.Esashabitacionespuedentenerarmarios.
Estos armariossontambiénobjetos.Al pensarensucasa,las habitaciones,ylosarmarios,es
posible que verunarelaciónjerárquicaentre ellos.Excel funcionade lamismamanera.
En Excel,el objetoApplicationesel objetoque loabarcatodo - similara su casa. Dentroel
objetoApplication,Excel tieneunlibro.Dentrode unlibroesunahoja de cálculo.En el interior
esun gama. Estosson todoslosobjetosque vivenenunaestructurajerárquica.
Para apuntar a un objetoespecíficoenVBA,se puede recorrerel modelode objetos.Por
ejemplo, parallegaralaceldaA1 en la hoja1, se puede introducirel código:
Application.Activeworbook.Sheets(“Sheet1”).Range(“A1”).Select
En la mayoría de loscasos, lajerarquía del modelode objetosse entiende,porloque notiene
que escribirtodoslosniveles.
Al entrar eneste códigotambiénse que ala celdaA1 porque Excel infiere que te refieresal
libroactivo, yla hojaactiva:
Range(“A1”).Select
De hecho,si ustedtiene yacursoren laceldaA1, sólotiene que utilizarel objetoActiveCell,
negandolanecesidadde escribirenrealidadfueradel rango.
Activecell.Select
ColeccionesComprensión
Muchos de losobjetosde Excel pertenecena colecciones.Sucasase encuentradentrode un
barrio,por ejemplo, que esunconjuntode casasdenominadasunbarrio.Cadabarriose sienta
enuna colecciónde barriosllamanunaciudad.Excel consideracoleccionesde serobjetos
mismos.
En cada objetolibro,ustedtiene unacolecciónde hojasde trabajo.La colecciónde hojasde
trabajoes unaobjetoque se puede pediratravésde VBA.Cada hojade cálculoenel librovive
enla ColecciónHojasde trabajo.
Si usteddeseahacerreferenciaauna hojade cálculoenla colecciónHojasde trabajo,puede
hacer referenciaaellaporsuposición enlacolección,comounnúmerode índice a partirde 1,
o por su nombre,comotextocitado.Si ejecutaestos doslíneasde códigoenunlibroque tiene
una solahojade cálculollamadaMySheet,amboshacenlomismo cosa:
Worksheets(1).Select
Worksheets(“MySheet”).Select
Si tiene doshojasdel libroactivoque tienenlaMySheetnombresyYourSheet,en ese orden,
ustedpuede referirse alasegundahojade cálculo,escribacualquierade estasdeclaraciones:
Worksheets(2).Select
Worksheets(“YourSheet”).Select
Si usteddeseahacerreferenciaauna hojade cálculoenun librollamadoMySheetenunlibro
enparticularque no esactiva, debe calificarlareferenciade hojade cálculoyla referenciade
libro,de lasiguiente manera:
Workbooks(“MyData.xls”).Worksheets(“MySheet”).Select
La comprensiónde propiedades
Las propiedadessonesencialmente lascaracterísticasde unobjeto.Sucasa tiene uncolor,una
cantidadcuadrada, unala edad,y así sucesivamente.Algunaspropiedadesse puedencambiar
- al igual que el colorde su casa. otras propiedades nose puede cambiar- como laedadde su
casa.
Del mismomodo,unobjetoenExcel comoel objetoWorksheettieneunapropiedadde
nombre de la hojaque puede ser cambiado,yuna propiedadfilaRows.Countque nose puede.
Ustedse refiere alapropiedadde unobjetoporreferenciaal objeto,yluegolapropiedad.Por
ejemplo, se puede cambiarel nombre de lahojade cálculocambiandosupropiedadName.
En este ejemplo,estácambiandoel nombre Hoja1aMySheet:
Sheets(“Sheet1”).Name = “MySheet”
Algunaspropiedadessonde sólolectura,loque significaque nose puede asignarunvalora
ellosdirectamente –para ejemplo,lapropiedadText del celular.LapropiedadTextle dala
aparienciaconformatodel valorenuna celda,perono se puede sobrescribirocambiarlo.
MétodosComprensión
Los métodossonlasaccionesque se puedenrealizarcontraunobjeto.Ayudaapensaren
métodoscomoverbos.Ustedpuede pintarsucasa, porlo que enVBA,que se traduce enalgo
así como
house.paint
Un ejemplosimple de unmétodode Excel esel métodoSelectdel objetoRange:
Range(“A1”).Select
Otro es el método de copy del objeto Range:
Range(“A1”).Copy
Algunosmétodostienenparámetrosque puede dictarlaformaenque se aplica.Por ejemplo,
el métodoPaste se puede utilizarde maneramáseficazmediante ladefiniciónexplícitadel
parámetroDestination
ActiveSheet.Paste Destination:=Range(“B1”)
Tomar una breve mirada envariables
Otro conceptopodrásvera travésde las macrosde este libroesel conceptode variables.
Nosotros necesitarádedicarunaspalabrasaeste concepto,yaque juegaun papel importante
enla mayoría de las macros que se encontraráaquí.
Ustedpuede pensarenvariablescomocontenedoresde memoriaque puede utilizarensus
procedimientos.Hay diferentestiposde variables,cadatareade lacelebraciónde untipo
específicode datos.
Algunosde lostiposcomunesde lasvariablesse veráeneste libroson
➤ String: Almacenadatostextuales
➤ Integer: Almacenalosdatosnuméricosque vandesde 32.768 a 32.767
➤ Long: Almacenalosdatosnuméricosque vandesde -2147483648 a 2147483647
➤ Double: Holdspuntoflotante de datosnuméricos
➤ Variant: Almacenacualquiertipode datos
➤ Boolean: Almacenadatosbinariosque retornaVerdaderooFalso
➤ Object: Sostiene unobjetoreal apartirdel modelode objetosde Excel
El términoque se utilizaparalacreaciónde unavariable enunamacro está declarandouna
variable.Lohace mediante laintroducciónde Dim(Unaabreviaturade dimensión),el nombre
de la variable,yluegoel tipo. Porejemplo:
Dim MyText as String
Dim MyNumber as Integer
Dim MyWorksheet as Worksheet
Despuésde crearla variable,puede llenarlode datos.Aquíhayalgunosejemplossencillosde
cómo crearía una variable yasignarle unvalora la misma:
Dim MyText as String
Mytext = Range(“A1”).Value
Dim MyNumber as Integer
MyNumber = Range(“B1”).Value * 25
Dim MyObject as Worksheet
Set MyWorksheet = Sheets(“Sheet1”)
Los valoresque se asignana lasvariablesamenudoprovienende losdatosalmacenadosen
sus células.Sinembargo,el Losvalorestambiénpuedenserinformaciónque ustedmismo
cree.Todo depende de latareaencuestión.Este nociónse vuelvemásclaraa medidaque
avanza a travésde las macros enel libro.
Acerca de las macros eneste libro
Comomencionamosenlaintroducción,lasmacrosde este libroestándiseñadospara
conseguirque lapuestaenmarcha con VBA enla forma másrápida posible.Cadatacleadas
macro una tarea comúnque se beneficiade laautomatización.
La ideaaquíes aprenderatravésde laaplicación.Este libroestádiseñadoparaque pueda
ponerenpráctica la macro, al obtenerunacomprensiónclarade loque hace la macro y cómo
funciona.
Obtenciónde losarchivos de ejemplo
Cada macro eneste librotiene unarchivode muestraasociada.Estosarchivosde ejemplole
dan lacapacidad de verel trabajo macro, así como la posibilidadde revisarel código.También
puede utilizarlosarchivosde ejemploparacopiary pegarel códigoen suentorno(enlugarde
escribircada macro ena partir de cero).Verla sección"Acercade la Webdel compañero"en
la Introducciónde este libroparaobtenerinstruccionescompletassobre cómodescargarel
códigode ejemplo.
El uso de losarchivos de muestra
Cada macro eneste librotiene instruccionesdetalladassobre dónde copiarypegarel código.
Debierasabrael archivode ejemploasociadoalamacro, ir al Editorde Visual Basic(pulsando
Alt+ F11), y luegocopiarel código.Despuésde que hayascopiadoel código,ustedpuede ira
su libro,entraenlaEditor de Visual Basicy pegue el códigoenel lugarapropiado.
Tengaen cuentaque enalgunosde losejemplosde macroseneste libro,esnecesariocambiar
algúnaspectode la macro para adaptarse a susituación.Porejemplo,lamacro12 de la Parte
II demuestracómoabrirtodoslosarchivosde Excel enun directorio.Enese ejemplo,
señalamosala carpetaC:  Temp  directorio.Antesde utilizareste particularmacro,es
necesariomodificarlaparte de la macro para apuntar a su directoriode destino.
Si una macro no funcionapara usted,esprobablementeporque esnecesariocambiaralgún
componente de lamacro.Preste especial atenciónalasdireccionesde lagama,nombresde
directorios,ycualesquieraotrosnombresnomodificables.
Construimosestosvaloresnomodificablesenlamacro para finesde demostración;conla
intencióncompletaque usted,el lector,seríamodificarlamacropara cambiarestosnombres
no modificablesparaadaptarse asu situación.
Cosas a tener encuenta
Aquí hayalgunascosas finalesatenerencuentaal trabajar con las macrosde este libro:
➤ extensionesde archivode macro-enabled:Recuerde que cualquierarchivoque contiene
una macro debe tenerel extenstionarchivo.xlsm.Vealasecciónllamada"lasextensionesde
archivode macro-enabled"enlapresente parte paramásdetalles.
➤ seguridad Macro: Tengaen cuentaque Excel nose ejecutaráhastaque lasmacros están
habilitadas.Comotu aplicarestasmacros,esimportante entenderlospasosque ustedysus
clientes tendráque tomarparacumplircon lasmedidasde seguridadde macrosde Excel. La
secciónenla presente parte llamado"laseguridadde macrosenExcel 2010" pone de relieve
estospasos.
➤ No puede deshaceraccionesde macro:Al trabajarenExcel,a menudose puede deshacer
lasacciones que ha tomado.Esto se debe a que Excel guarda unregistro(llamadolapilade
deshacer) que registralaúltima 100 accionesque ha tomado.Sinembargo,ejecutaruna
macro destruye automáticamente el deshacer apilar,borrarel registrode lasaccionesque ha
tomado.Usteddebe tenerestoencuentaa medidaque empiezan escribiryejecutarsus
propiasmacros.No se puede deshacerlaacciónse toma enuna macro.
➤ ¿A dónde irdesde aquí:Comose mencionóantes,estasmacrosse handiseñadoparaque
puedaempezarconVBA.Si ustedencuentraunapasiónen desarrolloparaExcel VBA,es
posible que desee saberdónde obtenerun referenciamásdetalladasobre Excel VBA en
general.PermítanosrecomendamosExcel2010 Potencia ProgramaciónconVBA por John
Walkenbach(Wiley) comoel siguientepasoensuaprendizaje.Este referenciaesunaguía
completade VBA,el buceoprofundoenel modelode objetosde Excel.
Parte II
Trabajando con Libros de Trabajo
Esta parte contiene lasmacros relacionadascon librosde trabajo: apertura ellos,cerrarlos,
los protegen,y muchas otras acciones.
En estaparte
Macro 1 Creaciónde unnuevolibrode trabajodesde cero..........................................
......................39
Macro 2 Guardar un librode trabajocuandoun particularde la célulase cambia
.....................................41
Macro 3 Guardar un librode trabajoantesde cerrar ...........................................
................................43
Macro 4 Protegerunahojade cálculoen el librode trabajoCerrar ..........................................
.....................46
Macro 5 desprotegerunahojade cálculoen el librode trabajoabierto
.........................................................48
Macro 6 Abrirun librode trabajode una pestañaespecífica.........................................
.................................50
Macro 7 Aperturade unlibrode trabajo específicosdefinidosporel usuario
...........................................52
Macro 8 determinarsi unlibrode trabajoya estáabierto..............................................54
Macro 9 determinarsi unlibrode trabajoexiste enundirectorio......................................57
Macro 10 ConexionesActualizartodoslosdatosde librode trabajoenAbrir
........................................59
Macro 11 Cierre todosloslibrosde trabajoa la vez...........................................
............................................61
Macro 12 Abrirtodoslos librosde trabajoenun directorio..........................................
...............................63
Macro 13 Imprimirtodosloslibrosde trabajoenun directorio..........................................
...................................65
Macro 14 Prevenirel Cuadernode Trabajode clausurahastaque una célulase llena
..................67
Macro 15 Crear una copiade seguridadde unlibrode trabajo actual con la fechade hoy
.............................69
Un librono essóloun archivode Excel;tambiénesunobjetoenel modelode objetosde Excel
(unajerarquíade programaciónque expone piezasde Excel VBA).Estosignificaque usted
puede hacerreferenciaaloslibrosde trabajoa travésde VBA para hacercosas interesantes
como creanautomáticamente nuevoslibrosde trabajo,evitarque losusuarioslibros de cierre,
automáticamente copiasde loslibrosde trabajo,ymuchomás.Comenzamosnuestralistade
101 macrosaquí con unalistade las macros del librode trabajomás útiles.
Si ustedesnuevoa Excel VBA,esmuyrecomendable que primerotomaunamirada rápidaen
la Parte I. Allí,se encuentrael fundamentobásicoque necesitaparaentendermuchosde los
conceptosque se encuentranenlasmacros de estaParte.
El códigopara estaparte se puede encontrarenel sitiowebel compañerode este libro.Ver
este librode Introducciónparamás enel sitiowebde compañía.
Macro 1: Creación de un nuevolibrode trabajo desde cero
A vecesse puede quereronecesitarparacrear unnuevolibroenunaforma automatizada.Por
ejemplo, puede sernecesariocopiardatos de unatablay pegarlaenun librode trabajode
nuevacreación.La siguiente macrocopiaunrango de celdasde la hojaactivay pastas de los
datosen un libronuevo.
Cómo funciona
Esta macro es relativamente intuitivocomoustedleeatravésde las líneasdel código.
Sub Macro1()
‘Step 1 Copy thedata
Sheets(“Example 1”).Range(“B4:C15”).Copy
‘Step 2 Create a new workbook
Workbooks.Add
‘Step 3 Paste thedata
ActiveSheet.Paste Destination:=Range(“A1”)
‘Step 4 Turn off application alerts
Application.DisplayAlerts= False
‘Step 5 Save thenewly created workbook
ActiveWorkbook.SaveAs _
Filename:=”C:TempMyNewBook.xlsx”
‘Step 6 Turn application alerts back on
Application.DisplayAlerts= True
End Sub
Así escomo funciona esta macro:
1. En el paso1, simplemente copiarlosdatosque vadesde lasceldasB4 a C15.
Lo que hay que destacaraquí es que estáespecificandolacopiayla gama por su nombre.Este
esuna buenapráctica cuandose estátrabajandocon varioslibrosabiertosal mismotiempo.
2. Estamos utilizandoel métodoAdddel objetoWorkbookparacrearun nuevolibro.Estoes
equivale ahacerclicmanualmente File➜New➜BlankDocumentoenlacintade opcionesde
Excel.
3. En este paso,se utilizael métodoPaste paraenviarlosdatosque hacopiadoa la celdaA1
de la nuevalibrode trabajo.
Preste atenciónal hechode que el códigose refiere al objetoActiveSheet.Al agregarun libro,
el libronuevode inmediatoganafoco,convirtiéndose enel libroactivo.Este esel mismo
comportamientoque se veríasi tuvieraque añadirunlibroa mano.
4. En el Paso4 del Código,que establece el métodoDisplayAlertsenFalse,convirtiendo
efectivamentefueraLasadvertenciasde Excel.Hacemosestoporque enel pasosiguiente del
código,ahorramosel reciéncreado librode trabajo.Podemosejecutarestamacrovarias
veces,encuyocaso, Excel intentasalvarel presentarvariasveces.
¿Qué sucede cuandointentaguardarun librovariasveces?Asíes - Excel advierte que yaexiste
un archivode por ahí con ese nombre y luegole preguntasi deseasobrescribir el archivoya
existente.Debidoaque suobjetivoesautomatizarlacreaciónde lanueva libro,que desea
suprimiresaadvertencia.
5. En el Paso5, que guarde el archivoutilizandoel métodoSaveAs.Tengaencuentaque
estamosentrandoenel pleno caminode laubicaciónde almacenamiento,incluyendoel
nombre del archivofinal.
6. Porque nosvolvimosaplicaciónalterafueraenel paso4, tenemosque volveraactivarlos.Si
no lohacemos, Excel continúasuprimiendotodaslasadvertenciasparalavidade la sesión
actual.
Cómo usarlo
Para implementarestamacro,puede copiarypegarloenun móduloestándar:
1. Active el Editorde Visual BasicpresionandoALT+ F11.
2. Haga clicen el nombre del proyecto/ libroenlaventanadel proyecto.
3. ElijaInsert➜Module.
4. Escriba o pegue el códigoenel móduloreciéncreado.Esprobable que tengaque cambiarel
nombre de la hoja,ladirecciónde rango,y la ubicaciónenGuardar.
Macro 2: Guardar un librode trabajo Cuandoun especial de la célulase cambia
A veces,ustedpuede estartrabajandoendatosque estansensible que usteddeseaguardar
cada vezque un particular,se cambiaceldao rango de celdas.Estamacro le permite definirel
rango de celdasque,cuandose cambiada,obligaal libropara guardar.
Cómo funciona
El secretode este códigoesel métodoIntersect.Porque noqueremossalvarlahojade cálculo
cuandolos cambioscelularesviejos,utilizamosel métodoIntersectparadeterminarsi lacélula
diana(lacélulaEso cambió) intersectaconlagama hemosespecificadoque el rangode
disparo(C5: C16 eneste caso).
El métodoIntersectvuelve unade doscosas:o bienunobjetoRange que define laintersección
entre lasdos gamasindicadaso nada.Así que enesencia,tenemosque tirarlacéluladiana
contra el métodoIntersectparacomprobarsi hayun valorde nada.En ese punto,podemos
hacer que el decisiónsi deseaguardarel libro.
Private Sub Worksheet_Change(ByVal Target As Range)
‘Step 1: Does the changed range intersect specified range?
If Intersect(Target, Range(“C5:C16”)) Is Nothing Then
‘Step 2: If there is no intersection, exit procedure
Exit Sub
‘Step 3: If there is an intersection, save the workbook
Else
ActiveWorkbook.Save
‘Close out theIf statement
End If
End Sub
1. En el paso1, simplemente estamoscomprobandosi lacéluladiana(lacélulaque ha
cambiado) se encuentraenlarango especificadoporel métodoIntersect.Unvalorde Nada
significalascataratasde célulasdianafueradel rango especificado.
2. Paso 2 obligaala macro para parar y salirdel procedimientosi nohayintersecciónentre la
céluladianayde lagama especificada.
3. Si hay unaintersección,Paso3fuegosel métodoSave del libroactivo,sobrescribiendola
versiónanterior.
4. En el paso4, simplemente cierre lainstrucciónIf.Cadavezque unainstanciade un
If…Then…Else check, Cheque Si no,debe cerrarel partidocon unfinal correspondiente End If
Cómo usarlo
Para implementarestamacro,tiene que copiarypegar enel códigode evento
Worksheet_Change ventana.Lacolocaciónde lamacro aquí permite que se ejecute cadavez
que realice algúncambioenlahoja.
1. Active el Editorde Visual BasicpresionandoALT+ F11.
2. En laventanade proyecto,encuentratuproyecto/ nombre del libroyhagaclic enel signo
más juntoa ellaenPara vertodas lashojas.
3. Haga clicen lafichade la que deseaactivarel código.
4. Seleccione el eventoChange de lalistadesplegablede eventos(verFigura2-1).
5. Escriba o pegue el códigoenel móduloreciéncreado,el cambiode ladirecciónde gama
para adaptarse a su necesita.
Figura2-1: Introduzcao pegarel códigoenla ventanade códigode evento
Worksheet_Change.
Macro 3: Guardar un librode trabajo
Antesde Cierre
Esta macro es unaexcelentemanerade protegeralosusuariosde formainadvertidacerrarsu
archivoantesde guardar. ¿Cuándoimplementado,estamacrogarantizaque Excel guarda
automáticamente antesde cerrarel libro.
Excel normalmente adviertealosusuariosque estántratandode cerrar un libroque no son
salvos,dandoenuna opciónpara guardarantesde cerrar. Sinembargo,muchosusuarios
puedensoplarel pasadoadvertenciaysindarse cuenta,haga clicen No,diciendoExcel para
cerrar singuardar. con este macro,estánprotegiendocontraestaguardando
automáticamente antesdel cierre.
Cómo funciona
Este códigose activapor eventosBeforeClose del libro.Cuandointentacerrarel libro,este
eventose desencadena,que ejecutael códigodentro.El quiddel códigoessimple - se le
preguntaal usuariosi realmente quierecerrarel libro(verFigura2-2).La macro luegoevalúasi
el usuariose hace clicenAceptar o Cancelar.
Figura2-2: Un cuadro de mensaje se activacuandose intentacerrarel libro.
La evaluaciónse hace conuna instrucciónSelectCase.LainstrucciónSelectCase esuna
alternativaala instrucciónIf ...Then...Else,que le permite realizarcomprobacionesde estado
ensus macros. La construcciónbásicade una instrucciónSelectCase essimple.
Select Case <some expression to check>
Case Is = <some value>
<do something>
Case Is=<some other value>
<do something else>
Case Is=<some 3rd value>
<do some 3rd thing>
End Select
Con unainstrucciónSelectCase,puede realizarmuchasverificacionescondicionales.Eneste
caso, estamossimplemente lacomprobaciónde AceptaroCancelar. Echaun vistazoal código.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
‘Step 1: Activatethe message box and start thecheck
Select Case MsgBox(“Save and close?”, vbOKCancel)
‘Step 2: Cancel button pressed, cancel the close
Case Is = vbCancel
Cancel = True
‘Step 3: OK button pressed, save the workbook and close
Case Is = vbOK
ActiveWorkbook.Save
‘Step 4: Close your Select Case statement
End Select
End Sub
En el Paso 1, activamosel cuadrode mensaje comoel cheque condiciónparalainstrucción
SelectCase.
Aquí,utilizamosel argumentovbOKCancelparaasegurarque el botonesAceptaryCancelarse
presentancomoopciones.
2. Si el usuariohace clic enCancelarenel cuadro de mensaje,lamacrodice Excel para cancelar
la Workbook_Close evento.Estose hace pasando True al CancelarBoole.
3. Si el usuariohace clic enAceptarenel cuadro de mensaje,Paso3 entraen vigor.Aquíle
decimosaExcel para guardar la librode trabajo.Y porque no nosfijamosel Cancelarbooleano
True,Excel continúacon el cierre.
4. En el paso4, simplemente cierre lainstrucciónSelectCase.Cadavezque unainstancia de un
Seleccione el asunto,debe cerrarloconuncorrespondiente EndSelect.
Cómo usarlo
Para implementarestamacro,tiene que copiarypegar enel eventoWorkbook_BeforeClose
ventanade código.La colocaciónde la macro no permite que se ejecutecadavez que se
intentacerrarel libro.
1. Active el Editorde Visual BasicpresionandoALT+ F11 enel teclado.
2. En laventanade proyecto,encuentratuproyecto/ nombre del libroyhagaclic enel signo
más juntoa ellaen Para vertodas lashojas.
3. Haga clicen ThisWorkbook.
4. Seleccione el eventoBeforeClose enlalistadesplegable de eventos(verFigura2-3).
5. Escriba o pegue el códigoenel móduloreciéncreado.
Figura2-3: Escribao pegue el códigoenlaventanade códigode evento
Workbook_BeforeClose.
Macro 4: Proteger una hoja de cálculo el Libro de Trabajo Cerrar
A vecesesnecesarioenviarel libroporel mundoconla protecciónde lashojasde trabajo
específicas.
Si ustedencuentraque ustedestáconstantemente protegerydesprotegerlashojasantesde
distribuirloslibros,estamacropuede ayudar.
Cómo funciona
Este códigose activapor eventosBeforeClose del libro.Cuandointentacerrarel libro,este
eventose desencadena,que ejecutael códigodentro.Lamacroprotege automáticamente la
hojaespecificadaconlacontraseñadada,y luegoguardael libro.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
‘Step 1: Protect thesheet with a password
Sheets(“Sheet1”).Protect Password:=”RED”
‘Step 2: Save the workbook
ActiveWorkbook.Save
End Sub
1. En el paso1, estamosespecificandode formaexplícitaque lahojaque queremosproteger -
Hoja1, eneste caso.
Tambiénestamosproporcionandoel argumentode lacontraseña,lacontraseña:=ROJO. Esto
define lacontraseñanecesariopara quitarla protección.
Este argumentode la contraseñaescompletamenteopcional.Si omite este conjunto,lahoja
será todavíaser protegidos,peroustednonecesitaráunacontraseñaparadesprotegerla
misma.Además,tengaencuentaque lascontraseñasde Excel entre mayúsculasyminúsculas,
por loque querrá prestaratencióna lacontraseñaexactay capitalizaciónque estáutilizando.
2. Paso 2 le dice a Excel para guardar el libro.Si nosalvamosel libro,laprotecciónde lahoja
simplementeaplicamosno estaráenefectolapróximavezque se abre el libro.
Cómo usarlo
Para implementarestamacro,tiene que copiarypegar enel eventoWorkbook_BeforeClose
ventanade código.La colocaciónde la macro aquí permite que se ejecute cadavezque se
intentacerrarel libro.
1. Active el Editorde Visual BasicpresionandoALT+ F11.
2. En laventanade proyecto,encuentratuproyecto/ nombre del libroyhagaclic enel signo
más juntoa ellaenPara vertodas lashojas.
3. Haga clicen ThisWorkbook.
4. Seleccione el eventoBeforeClose enlalistadesplegable de eventos(verFigura2-4).
5. Escriba o pegue el códigoenel módulode nuevacreación,lamodificacióndel nombre de la
hoja(si es necesario) ylacontraseña.Tengaencuentaque ustedpuede protegerhojas
adicionalesmediantelaadiciónde declaracionesadicionalesantesde lainstrucción
ActiveWorkbook.Save.
Figura 2-4:Escriba o pegue el códigoenla ventana de código de eventoWorkbook_BeforeClose.
Macro 5: desproteger una hoja de trabajo el libro de trabajo abierto
Si ustedha distribuido libros con láminas protegidas, es probable que obtenga los libros de vuelta con el hojas
todavía protegidos. A menudo, es necesariodesproteger lashojas de unlibroantes de continuar tu trabajo. Si usted
encuentra que desea desproteger continuamente hojas de trabajo, esta macro puede ser justo La entrada.
Cómo funciona
Este código se activa por eventoOpendel libro. Al abrir un libro de trabajo, este evento se dispara, ejecuta el código
dentro. Esta macro desprotege automáticamente la hoja especificada conel dadocontraseña cuandose abre el
libro.
Private Sub Workbook_Open()
‘Step 1: Protect thesheet with a password
Sheets(“Sheet1”).Unprotect Password:=”RED”
End Sub
La macro explícitamente los nombres de la hoja que queremos desproteger - Hoja1, en este caso. Entonces se pasa
el requiere contraseña para desproteger la hoja. Tenga en cuenta que las contraseñas de Excel entre mayúsculas y
minúsculas, así que presta atencióna la contraseña exacta ycapitalización que está utilizando.
Cómo usarlo
Para implementar esta macro, tiene que copiar ypegar en el códigode eventoWorkbook_Open ventana. La
colocación de la macro aquípermite que se ejecute cada vez que el libro se abre.
1. Active el Editor de VisualBasic presionandoALT + F11.
2. En la ventana de proyecto, encuentra tu proyecto / nombre dellibroyhaga clic enel signomás juntoa ella en
Para ver todas las hojas.
3. Haga clic enThisWorkbook.
4. Seleccione el evento Openenla lista desplegable de eventos (ver Figura 2-5).
5. Escriba o pegue el códigoenel módulo de nueva creación, la modificacióndel nombre de la hoja (si es necesario)
y la contraseña. Observe que puede desproteger hojas adicionales agregando adicional declaraciones.
Figura 2-5:Escriba o pegue el códigoenla ventana de código de eventoWorkbook_Open.
Macro 6: Abrir un libro de trabajo a una ficha específica
En algunas situaciones, es imperativo que se iniciael libro enuna hoja de cálculo específica. coneste macro, si un
usuarioestá trabajando conel libro, nopuedenir por mal camino, porque el librose inicia en la hoja de cálculo
exacto que necesita.
Cómo funciona
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros
101 ready to-use excel macros

Más contenido relacionado

Destacado

Petit Lume Candlestakes
Petit Lume CandlestakesPetit Lume Candlestakes
Petit Lume Candlestakesmichelstong
 
Social media und recht claudia keller
Social media und recht claudia kellerSocial media und recht claudia keller
Social media und recht claudia kellerSocial Hub Zürich
 
Practica creacion inmobiliaria
Practica creacion inmobiliariaPractica creacion inmobiliaria
Practica creacion inmobiliariajoyfred
 
How Omni-Channel Data Collection Can Power Marketing Measurement
How Omni-Channel Data Collection Can Power Marketing MeasurementHow Omni-Channel Data Collection Can Power Marketing Measurement
How Omni-Channel Data Collection Can Power Marketing MeasurementEnsighten
 
Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...
Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...
Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...Eduardo Grizendi
 
EQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorro
EQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorroEQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorro
EQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorroHosteltur
 
Chapter 05 Emergency Communications Sytems
Chapter 05  Emergency Communications Sytems Chapter 05  Emergency Communications Sytems
Chapter 05 Emergency Communications Sytems Training1PFD
 
Antibióticos corrigido
Antibióticos corrigidoAntibióticos corrigido
Antibióticos corrigidoFilipe Mira
 
Apoyo nutricional-del-paciente-quirurgico (1)
Apoyo nutricional-del-paciente-quirurgico (1)Apoyo nutricional-del-paciente-quirurgico (1)
Apoyo nutricional-del-paciente-quirurgico (1)Jonathan Trejo
 
Adoption of the Material Flow Cost Accounting approach to integrate physical ...
Adoption of the Material Flow Cost Accounting approach to integrate physical ...Adoption of the Material Flow Cost Accounting approach to integrate physical ...
Adoption of the Material Flow Cost Accounting approach to integrate physical ...Filippo Tresca
 
The Chemistry of the Landing Page with Live Critiques
The Chemistry of the Landing Page with Live CritiquesThe Chemistry of the Landing Page with Live Critiques
The Chemistry of the Landing Page with Live CritiquesAffiliate Summit
 

Destacado (15)

Petit Lume Candlestakes
Petit Lume CandlestakesPetit Lume Candlestakes
Petit Lume Candlestakes
 
Hg pitanja
Hg pitanjaHg pitanja
Hg pitanja
 
Bison Production
Bison ProductionBison Production
Bison Production
 
Social media und recht claudia keller
Social media und recht claudia kellerSocial media und recht claudia keller
Social media und recht claudia keller
 
Practica creacion inmobiliaria
Practica creacion inmobiliariaPractica creacion inmobiliaria
Practica creacion inmobiliaria
 
How Omni-Channel Data Collection Can Power Marketing Measurement
How Omni-Channel Data Collection Can Power Marketing MeasurementHow Omni-Channel Data Collection Can Power Marketing Measurement
How Omni-Channel Data Collection Can Power Marketing Measurement
 
Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...
Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...
Palestra encontro provedores regionais montes claros 22 07_2015 eduardo grize...
 
Las nueve musas griegas
Las nueve musas griegasLas nueve musas griegas
Las nueve musas griegas
 
EQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorro
EQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorroEQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorro
EQUIPAMIENTO HOTELERO. Las claves de la eficiencia energética y el ahorro
 
Chapter 05 Emergency Communications Sytems
Chapter 05  Emergency Communications Sytems Chapter 05  Emergency Communications Sytems
Chapter 05 Emergency Communications Sytems
 
Xinpi dortoka
Xinpi dortoka Xinpi dortoka
Xinpi dortoka
 
Antibióticos corrigido
Antibióticos corrigidoAntibióticos corrigido
Antibióticos corrigido
 
Apoyo nutricional-del-paciente-quirurgico (1)
Apoyo nutricional-del-paciente-quirurgico (1)Apoyo nutricional-del-paciente-quirurgico (1)
Apoyo nutricional-del-paciente-quirurgico (1)
 
Adoption of the Material Flow Cost Accounting approach to integrate physical ...
Adoption of the Material Flow Cost Accounting approach to integrate physical ...Adoption of the Material Flow Cost Accounting approach to integrate physical ...
Adoption of the Material Flow Cost Accounting approach to integrate physical ...
 
The Chemistry of the Landing Page with Live Critiques
The Chemistry of the Landing Page with Live CritiquesThe Chemistry of the Landing Page with Live Critiques
The Chemistry of the Landing Page with Live Critiques
 

Similar a 101 ready to-use excel macros (20)

Cómo automatizar tareas rutinarias con excel macros
Cómo automatizar tareas rutinarias con excel macrosCómo automatizar tareas rutinarias con excel macros
Cómo automatizar tareas rutinarias con excel macros
 
2 p inf 10 rmb.odt
2 p inf 10 rmb.odt2 p inf 10 rmb.odt
2 p inf 10 rmb.odt
 
Deber de tablas de diagrama mayra
Deber de tablas de diagrama mayraDeber de tablas de diagrama mayra
Deber de tablas de diagrama mayra
 
Evidencias 4
Evidencias 4Evidencias 4
Evidencias 4
 
Mundo informatico
Mundo informaticoMundo informatico
Mundo informatico
 
Presentación3 IDE0712817
Presentación3 IDE0712817Presentación3 IDE0712817
Presentación3 IDE0712817
 
Pres 3
Pres 3Pres 3
Pres 3
 
Mobile Processing Introduccion
Mobile Processing IntroduccionMobile Processing Introduccion
Mobile Processing Introduccion
 
Manual de instalacion_my_sql_sergio
Manual de instalacion_my_sql_sergioManual de instalacion_my_sql_sergio
Manual de instalacion_my_sql_sergio
 
Manual instalacion adobe dreamweaver
Manual instalacion adobe dreamweaverManual instalacion adobe dreamweaver
Manual instalacion adobe dreamweaver
 
Manual instalacion adoble dreamweaver
Manual instalacion adoble dreamweaverManual instalacion adoble dreamweaver
Manual instalacion adoble dreamweaver
 
In seguridad de aplicaciones web
In seguridad de aplicaciones webIn seguridad de aplicaciones web
In seguridad de aplicaciones web
 
Ofimática.
Ofimática.Ofimática.
Ofimática.
 
Unidad 2 Tema 5
Unidad 2 Tema 5Unidad 2 Tema 5
Unidad 2 Tema 5
 
Unidad 2 Tema 5
Unidad 2 Tema 5Unidad 2 Tema 5
Unidad 2 Tema 5
 
Unidad 2 Tema 5
Unidad 2 Tema 5Unidad 2 Tema 5
Unidad 2 Tema 5
 
Unidad 2 tema 5
Unidad 2 tema 5Unidad 2 tema 5
Unidad 2 tema 5
 
Unidad 2 Tema 5
Unidad 2 Tema 5Unidad 2 Tema 5
Unidad 2 Tema 5
 
1 introduccion a dreamweaver
1 introduccion a dreamweaver1 introduccion a dreamweaver
1 introduccion a dreamweaver
 
4 p clei 4 inf-rmb
4 p clei 4 inf-rmb4 p clei 4 inf-rmb
4 p clei 4 inf-rmb
 

Más de Marcia Padilla

76560466 test-cleaver-manual
76560466 test-cleaver-manual76560466 test-cleaver-manual
76560466 test-cleaver-manualMarcia Padilla
 
Atajos de-teclado-acadevor
Atajos de-teclado-acadevorAtajos de-teclado-acadevor
Atajos de-teclado-acadevorMarcia Padilla
 
Atajos de-teclado-acadevor
Atajos de-teclado-acadevorAtajos de-teclado-acadevor
Atajos de-teclado-acadevorMarcia Padilla
 
= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...
= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...
= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...Marcia Padilla
 
Manual de imagen_corporativa
Manual de imagen_corporativaManual de imagen_corporativa
Manual de imagen_corporativaMarcia Padilla
 
Manual de imagen_corporativa
Manual de imagen_corporativaManual de imagen_corporativa
Manual de imagen_corporativaMarcia Padilla
 

Más de Marcia Padilla (6)

76560466 test-cleaver-manual
76560466 test-cleaver-manual76560466 test-cleaver-manual
76560466 test-cleaver-manual
 
Atajos de-teclado-acadevor
Atajos de-teclado-acadevorAtajos de-teclado-acadevor
Atajos de-teclado-acadevor
 
Atajos de-teclado-acadevor
Atajos de-teclado-acadevorAtajos de-teclado-acadevor
Atajos de-teclado-acadevor
 
= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...
= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...
= Iso 8859-1-q_curso=5_f_redacci=f3n_de_informes_t=e9cnicos=5fgide_____filena...
 
Manual de imagen_corporativa
Manual de imagen_corporativaManual de imagen_corporativa
Manual de imagen_corporativa
 
Manual de imagen_corporativa
Manual de imagen_corporativaManual de imagen_corporativa
Manual de imagen_corporativa
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (16)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

101 ready to-use excel macros

  • 1. 101 Ready-to-Use Excel® Macros Publicadopor JohnWiley& Sons,Inc. 111 RiverStreet Hoboken,NJ07030-5774 www.wiley.com Copyright© 2012 por JohnWiley&Sons,Inc.,Hoboken,NuevaJersey PublicadoporJohnWiley&Sons,Inc.,Hoboken,NuevaJersey Publicadosimultáneamente enCanadá Ningunaparte de estapublicaciónpuede serreproducida,almacenadaensistemasde recuperaciónotransmitidaencualquierformaoporcualquiermedio, electrónico,mecánico, fotocopia,grabación,escaneoode otra manera,salvolopermitidobajolasSecciones107 o 108 de la Leyde PropiedadIntelectual de 1976 de EstadosUnidos,sinque el permisoprevioy por escritodel editor,oautorización mediante el pagode latarifacorrespondiente porcopiaal CopyrightClearance Center,222 RosewoodDrive,Danvers,MA 01923, (978) 750 hasta8400, fax (978) 646-8600. Pide a la Editorial de autorizacióndeberándirigirse ala Permisosde Departamento,JohnWiley&Sons,Inc.,111 RiverStreet,Hoboken,NJ07030, (201) 748 a 6011, fax (201) 748- 6008, o en líneaenhttp://www.wiley.com/go/permissions. Marcas registradas:Wileyyel logotipode Wileysonmarcascomercialesomarcas comerciales registradasde JohnWiley&Sons,Inc. y / o su filialesenEstadosUnidosyotrospaíses,y no puedenserutilizadossinautorizaciónescrita.Excel esunamarcaregistrada marca comercial de MicrosoftCorporation.Todaslas demásmarcas sonpropiedadde susrespectivosdueños. JohnWiley& Sons, Inc.no estáasociadacon ningúnproductoo proveedormencionadoen este libro. LÍMITE DE RESPONSABILIDAD/RENUNCIA DE GARANTÍA:EL EDITOR Y EL AUTOR NOSON REPRESENTACIÓN O GARANTÍASCON RESPECTOA LA EXACTITUD O INTEGRIDADDEL CONTENIDODE ESTE TRABAJOY ESPECÍFICAMENTE RECHAZAN TODASLAS GARANTÍAS, INCLUYENDOSIN LIMITACIÓN LASGARANTÍASDE IDONEIDADPARA UN DETERMINADO FINALIDAD.NINGUNA GARANTÍA PUEDESER CREADA NIEXTENDIDA PORVENTASO MATERIALES PROMOCIONALES.ELASESORAMIENTOY ESTRATEGIAS CONTENIDASEN ESTE DOCUMENTO NO PUEDE SER ADECUADOPARA CADA SITUACIÓN.ESTE TRABAJOSE VENDE CON EL ENTENDIMIENTO Que la editorial nose dedicaaprestar LEGAL, CONTABILIDADU OTROS SERVICIOSPROFESIONALES. SI AYUDA PROFESIONALSEREQUIERE, LOS SERVICIOSDE UN PROFESIONALCOMPETENTE DEBE Buscarse.NIEL EDITOR NIEL AUTOR SERÁN RESPONSABLESPORDAÑOSCAUSADOSesta norma el nacimiento.LA HECHODE QUE UNA ORGANIZACIÓN OSITIOWEB SE HACE REFERENCIA EN ESTE TRABAJOCOMO CITACIÓN Y / O UN POTENCIAL FUENTE DE INFORMACIÓN NOSIGNIFICA QUEEL AUTOR O EL EDITOR Hace suya la INFORMACIÓN ELSITIO WEB ORGANIZACIÓN Ose dispongaorecomendacionesque pueda hacer.Además,LECTORES Debensaberque SITIOSWEB DE INTERNET QUE FIGURAN EN ESTE TRABAJOPUEDEN HABER CAMBIADOO DESAPARECIDOENTRE CUANDOESTE TRABAJOFUE ESCRITO Y CUANDOSE LEA.
  • 2. Para obtenerinformacióngeneral sobre nuestrosproductosyservicios,porfavorpóngase en contacto con nuestroDepartamentode atenciónal cliente dentrode la EstadosUnidosen 877-762-2974, fuerade losEE.UU. en317-572-3993 o enviarporfax 317-572-4002. Para obtenerasistenciatécnica,visitewww.wiley.com/techsupport. Wileypublicaenunavariedadde formatosimpresosyelectrónicosyde impresiónbajo demanda.Parte del material incluidoconlanorma versionesimpresasde este libronopueden serincluidosenloslibroselectrónicosoenlaimpresiónbajodemanda.Si este librose refierea losmediosde comunicacióntales comounCD o DVDque no está incluidoenlaversiónque haya adquirido,ustedpuede descargareste material en http://booksupport. wiley.com.Paraobtenermásinformaciónacercade losproductosde Wiley,visite www.wiley.com. Bibliotecadel Congresode control el númeroestádisponible enel Editor. ISBN 978-1-118-28121-5 (pbk);978-1-118-33068-5 (ebk);978-1-118-33353-2 (ebk);978-1-118- 33466-9 (ebk) FabricadoenlosEstados Unidosde América 10 9 8 7 6 5 4 3 2 1 Acerca de losautores Mike AlexanderesunMicrosoftCertifiedApplicationDeveloper(MCAD) yautorde varios libros enel análisisde negocioavanzadoconMicrosoftAccessyExcel.Cuentaconmás de 15 años de experienciaconsultoríaydesarrollode solucionesde Office.Michaelhasido nombradoMVP de Microsoftpara su constantescontribucionesalacomunidadExcel.Ensu tiempolibre,se encuentraconunsitiotutorial gratuito,www.datapigtechnologies. com, donde comparte Excel yAccessconsejos. JohnWalkenbachesautorde más de 50 librosde hojasde cálculoy vive enel surde Arizona. Visitasusitiowebenhttp://spreadsheetpage.com. Dedicación A María - Mike Alexander Agradecimientosde losautores Nuestrosmásprofundosgraciasa la brillante equipode profesionalesque ayudaronallevar este libroa buentérmino. Reconocimientosdel editor Estamosorgullososde este libro;envíenossus comentarioshttp://dummies.custhelp.com. Para otros comentarios,porfavorpóngase encontactocon nuestroDepartamentode atenciónal cliente dentrode losEE.UU. al 877-762-2974, fuerade losEE.UU. al 317-572-3993, o fax 317-572-4002. Algunasde laspersonasque ayudarona llevareste libroal mercadosonlassiguientes:
  • 3. Adquisicionesyeditorial Editordel proyecto:LindaMorris AdquisicionesEditorSenior:Katie Feltman CopyEditor:Linda Morris EditorTécnico:Juan Walkenbach Gerente editorial:Jodi Jensen Asistente editorial:Leslie Saxman Sr. Asistente editorial:Cherie Caso ServiciosComposición Coordinadordel proyecto:ShereeMontgomery Diseñoyartes gráficas:Carrie A.Cesavice, AndreaHornberger Indexador:IndexaciónBIMyCorrecciónServicios Editorial yde RedacciónenTecnologíaDummies RichardSwadley,VicepresidenteyEjecutivodel GrupoEditorial AndyCummings,VicepresidenteyEditor María Bednarek,DirectorEjecutivode Adquisiciones Mary C.Corder,DirectorEditorial La publicaciónde losmaniquíesdel Consumidor KathleenNebenhaus,Vicepresidente yEditorEjecutivo ServiciosComposición Debbie Stailey,Directorde Serviciosde Composición
  • 4. Mapa de contenidos Introducción.1 Parte I: Introduccióna Excel Macros ..........................................5 Parte II: Trabajar con librosde trabajo....................................................37 Parte III: Automatizaciónde tareasHojade trabajocon macros ..........................71 Parte IV: Selección ymodificaciónde Rangos.......................................103 Parte V: Trabajocon datos ...........................................................137 Parte VI: Trabajar con tablasdinámicas................................................187 Parte VII:ManipulaciónGráficosconMacros ....................................233 Parte VIII:E-Mailingdesde Excel .....................................................253 Parte IX: La integraciónde Excel yotras aplicacionesofimáticas.................273 Índice.302
  • 5. Tabla de contenidos Introducción.1 TemasCubiertos.1 Lo que necesitassaber.2 Lo que ustednecesitatener.2 Cómoestá organizadoeste libro.2 Parte I: PrimerospasosconExcel Macros. 3 Parte II: Trabajar con librosde trabajo. 3 Parte III: Automatizaciónde tareasHojade trabajocon macros.3 Parte IV: La selecciónymodificaciónde rangos.3 Parte V: Trabajocon datos. 3 Parte VI: Trabajar con tablasdinámicas.3 Parte VII:ManipulaciónGráficosconmacros. 3 Parte VIII:E-Mailingdesde Excel.4 Parte IX: La integraciónde Excel yotras aplicacionesde Office.4 Convenioseneste libro.4 ¿Qué significanlosiconos.4 Sobre el sitiowebdel compañero.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Parte I: Introduccióna Excel Macros ..................................5 Familiarizarseconlosfundamentosde grabaciónde macros.7 Comparandoabsolutayrelativade grabaciónde macros. 11 Grabaciónde macros con referenciasabsolutas.11 Grabaciónde macros con referenciasrelativas.13 En cuanto a otros conceptosde grabaciónde macros. 15 Extensionesde archivoMacro habilitado.15 La seguridadde macrosenExcel 2010. 16 Las ubicacionesde confianza.16 El almacenamientode macrosenel librode macros personal.17 Asignarunamacro a un botóny otroscontrolesde formulario.17 La colocaciónde unamacro en labarra de herramientasde accesorápido.19 TrabajandoEn el Editor de Visual Basic.19
  • 6. La activaciónde laVBE. 19 ComponentesVBEcomprensión.19 Trabajar con la ventanadel proyecto.21 Adiciónde unnuevomódulode VBA.22 Extracciónde un módulode VBA.23 Trabajar con una ventanade código.24 Minimizarymaximizarventanas.24 ObtenercódigoVBA enunmódulo.25 Personalizaciónde laVBA MedioAmbiente.27 La pestañaEditor.27 La pestañaEditorde formato.29
  • 7. La pestañaGeneral.30 La fichade acoplamiento.31 Descubriendoel modelode objetosde Excel.31 La comprensiónde los objetos.31 Coleccionescomprensión.32 La comprensiónde laspropiedades.33 Métodosde comprensión.33 Tomar una breve miradaenvariables.34 Acerca de lasmacros en este libro.35 Obtenciónde losarchivosde ejemplo.35 El usode losarchivosde ejemplo.35 Cosasa tenerencuenta.36 Parte II: Trabajar con librosde trabajo............................................37 Macro 1: Creaciónde unnuevolibrode trabajodesde cero.39 Cómofunciona.39 Cómousarlo.40 Macro 2: Guardar un librode trabajocuandoun particularde la célulase cambia.41 Cómofunciona.41 Cómousarlo.42 Macro 3: Guardar un librode trabajoantesdel cierre.43 Cómofunciona.43 Cómousarlo.44 Macro 4: Protegerunahojade cálculoen el librode trabajoenCerrar. 46 Cómofunciona.46 Cómousarlo.46 Macro 5: desprotegerunahojade trabajo enlibroabierto.48 Cómofunciona.48 Cómousarlo.48 Macro 6: Abrirunlibrode trabajo a una fichaespecífica.50 Cómofunciona.50 Cómousarlo.50 Macro 7: Abrirunlibrode trabajo específicosdefinidosporel usuario.52
  • 8. Cómofunciona.52 Cómousarlo.53 Macro 8: Determinarsi unlibroestáabierto.54 Cómofunciona.54 Cómousarlo.56 Macro 9: Determinarsi unlibroexiste enundirectorio.57 Cómofunciona.57 Cómousarlo.58 Macro 10: ConexionesActualizartodoslosdatosde librode trabajoenAbrir.59 Cómofunciona.59 Cómousarlo.59
  • 9. Macro 11: Cierre todosloslibrosala vez.61 Cómofunciona.61 Cómousarlo.61 Macro 12: Abre todosloslibrosenun directorio.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Cómofunciona.63 Cómousarlo.64 Macro 13: Imprimirtodosloslibrosde trabajoenun directorio.65 Cómofunciona.65 Cómousarlo.66 Macro 14: Prevencióndel Librode Trabajode clausurahastaque una célulase llena.67 Cómofunciona.67 Cómousarlo.68 Macro 15: Crear una copiade seguridadde unlibrode trabajo actual con la fechade hoy.69 Cómofunciona.69 Cómousarlo.70 Parte III: Automatizaciónde tareasHojade trabajocon macros ...................71 Macro 16: Agregary Nombrauna nuevahoja.73 Cómofunciona.73 Cómousarlo.74 Macro 17: Eliminartodoperola hojade cálculoactiva.75 Cómofunciona.75 Cómousarlo. 76 Macro 18: Ocultartodo perola hojade cálculoactiva. 77 Cómofunciona.77 Cómousarlo.78 Macro 19: Unhide todaslashojas de un libro.79 Cómofunciona.79 Cómousarlo.79 Macro 20: Hojas de Desplazamiento.81 Cómofunciona.81 Cómousarlo.81
  • 10. Macro 21: ClasificarporNombre Hojasde trabajo.83 Cómofunciona.83 Cómousarlo.84 Macro 22: Grupo de hojasde trabajopor color.85 Cómofunciona.85 Cómousarlo.86 Macro 23: Copiaruna hojade trabajopara un nuevolibro.87 Cómofunciona.87 Cómousarlo. 87 Macro 24: Crear un nuevolibroparacada hoja.88 Cómofunciona.88 Cómousarlo.89
  • 11. Macro 25: ImprimirHojasde trabajoespecificados.90 Cómofunciona.90 Cómousarlo.90 Macro 26: Protegertodaslashojas.92 Cómofunciona.92 Cómousarlo.92 Macro 27: desprotegertodosHojasde trabajo.94 Cómofunciona.94 Cómousarlo.95 Macro 28: Crear una tablade contenidoparalas hojasde cálculo.96 Cómofunciona.96 Cómousarlo.98 Macro 29: Acercamientoyalejamientode unahojade trabajocon doble clic. 99 Cómofunciona.99 Cómousarlo.100 Macro 30: Resalte lafilaactivay Columna.101 Cómofunciona.101 Cómousarlo.102 Parte IV: SelecciónyrangosModificación...............................103 Macro 31: Selecciónyformateode unrango.105 Cómofunciona.105 Cómousarlo.107 Macro 32: Crear y seleccionarrangosconnombre.108 Cómofunciona.109 Cómousarlo.110 Macro 33: EnumerarA travésde un rango de celdas.111 Cómofunciona.111 Cómousarlo.112 Macro 34: SeleccionaryFormatoTodoslos rangos con nombre.113 Cómofunciona.113 Cómousarlo.114 Macro 35: Inserciónde filasenblancoenunrango. 115
  • 12. Cómofunciona.115 Cómousarlo.116 Macro 36: enMostrar todaslas filasycolumnas.117 Cómofunciona.117 Cómousarlo.117 Macro 37: Eliminaciónde filasenblanco.118 Cómofunciona.118 Cómousarlo.119 Macro 38: Eliminaciónde columnasenblanco.120 Cómofunciona.120 Cómousarlo.121 xii Macro 39: SeleccionaryFormatoTodosfórmulasenunlibrode trabajo.122 Cómofunciona.122 Cómousarlo.123 Macro 40: Buscar y seleccionarlaprimerafilaenblancoocolumna.125 Cómofunciona.125 Cómousarlo.127 Macro 41: Aplicarcoloralternativobandas.128 Cómofunciona.128 Cómousarlo.129 Macro 42: ordenarun rango de Double-Click.130 Cómofunciona.130 Cómousarlo.131 Macro 43: Límite Movimientorangoa unárea en particular.132 Cómofunciona.132 Cómousarlo.132 Macro 44: Dinámicamente Ajuste el áreade impresiónde unahojade cálculo.134 Cómofunciona.134 Cómousarlo.134 Parte V: Trabajocon datos ...................................................137 Macro 45: Copiary pegar unrango. 139
  • 13. Cómofunciona.139 Cómousarlo.140 Macro 46: Convertirtodaslasfórmulasenunrango de valores.141 Cómofunciona.141 Cómousarlo.142 Macro 47: Realice el textoencolumnasde comandosentodaslascolumnas.143 Cómofunciona.144 Cómousarlo.146 Macro 48: ConvertirTrailingMinussignos.147 Cómofunciona.147 Cómousarlo.149 Macro 49: Recorte Espaciosde todas lasceldasde un rango.150 Cómofunciona.150 Cómousarlo.151 Macro 50: Truncar códigospostalesalos Cincoizquierda.152 Cómofunciona.152 Cómousarlo.154 Macro 51: Rellenocélulasconceros.155 Cómofunciona.155 Cómousarlo.157 Macro 52: Vuelvaacolocar lascélulas Blanksconun Valor.158 Cómofunciona.158 Cómousarlo.160 xiii Macro 53: Añadirtextoa laizquierdaoderechade suscélulas.161 Cómofunciona.161 Cómousarlo.162 Macro 54: Crear un CleanupSuperMacrode Datos.163 Cómofunciona.163 Cómousarlo.165 Macro 55: Personajesde Limpiezanoimprimibles.166 Cómofunciona.166
  • 14. Cómousarlo.167 Macro 56: Resaltarduplicadosenunaserie de datos.168 Cómofunciona.168 Cómousarlo.169 Macro 57: Ocultartodas lasfilas,perolosque contienendatosduplicados.170 Cómofunciona.170 Cómousarlo.171 Macro 58: selectivamenteOcultarAutofiltrodesplegablesFlechas.172 Cómofunciona.173 Cómousarlo.174 Macro 59: Copiarfilasfiltradasde unnuevolibro.175 Cómofunciona.175 Cómousarlo.176 Macro 60: Crear una nuevahojapara cada elementode unAutofiltro.177 Cómofunciona.177 Cómousarlo.182 Macro 61: Mostrar Columnasfiltradasenlabarrade estado.183 Cómofunciona.183 Cómousarlo.185 Parte VI: Trabajar con tablasdinámicas ........................................187 Macro 62: Crear una tabladinámicaal revés-compatible.189 Cómofunciona.190 Cómousarlo.191 Macro 63: ActualizarTodotablasdinámicaslibro.192 Cómofunciona.192 Cómousarlo.193 Macro 64: Crear un resumende inventariode tabladinámica.194 Cómofunciona.194 Cómousarlo.196 Macro 65: Haga todas lastablas dinámicasusenel mismopivote caché.197 Cómofunciona.197 Cómousarlo.198
  • 15. Macro 66: OcultarTodos lossubtotalesenunatabladinámica.199 Cómofunciona.199 Cómousarlo.201 xiv Macro 67: Ajuste TodoslosTítulosPivotde camposde datos.202 Cómofunciona.202 Cómousarlo.203 Macro 68: Establecertodoslosarticulosde Datosde Suma. 204 Cómofunciona.204 Cómousarlo.206 Macro 69: Aplicarformatode númeropara todosloselementosde datos.207 Cómofunciona.207 Cómousarlo.210 Macro 70: OrdenarTodoslos camposenordenalfabético.211 Cómofunciona.211 Cómousarlo.212 Macro 71: AplicarOrdenpersonalizadoparaelementosde datos.213 Cómofunciona.213 Cómousarlo.214 Macro 72: Aplicarrestriccionesde tabladinámica.215 Cómofunciona.215 Cómousarlo.216 Macro 73: AplicarRestriccionesPivotde campo.217 Cómofunciona.217 Cómousarlo.218 Macro 74: Eliminarautomáticamentelatablapivote hojasde desglose.219 Cómofunciona.219 Cómousarlo.221 Macro 75: ImprimirPivotTable paracada filtrode informe de artículo.223 Cómofunciona.223 Cómousarlo.225 Macro 76: Crear nuevolibrode trabajopara cada filtrode informe de artículo.226
  • 16. Cómofunciona.226 Cómousarlo.228 Macro 77: Transposicióndel rangode datoscompletaconuna tabladinámica.229 Cómofunciona.230 Cómousarlo.231 Parte VII:ManipulaciónGráficosconMacros .............................233 Macro 78: Cambiarel tamaño de todasListas enuna hojade cálculo.235 Cómofunciona.235 Cómousarlo.236 Macro 79: Alinearungráficoa un rango específico.237 Cómofunciona.237 Cómousarlo.238 Macro 80: Crear un conjuntode gráficosdesconectados.239 Cómofunciona. 239 Cómousarlo.240 xv Macro 81: ImprimirtodosListasenuna hojade cálculo.241 Cómofunciona.241 Cómousarlo.242 Macro 82: Etiquetaprimeryúltimopuntode gráfico.243 Cómofunciona.243 Cómousarlo.245 Macro 83: Carta de colorde la serie a la fuente de teléfonoColors.246 Cómofunciona.246 Cómousarlo.249 Macro 84: Puntosde color Gráficode datos para que coincidacon lafuente de célulasColores. 250 Cómofunciona.250 Cómousarlo.252 Parte VIII:E-Mailingdesde Excel ..............................................253 Macro 85: MailingActive librocomounarchivoadjunto.255 Cómofunciona.255
  • 17. Cómousarlo.257 Macro 86: Mailingunrango específicocomoAdjunto.258 Cómofunciona.258 Cómousarlo.259 Macro 87: Mailingunasola hojacomo unarchivo adjunto.260 Cómofunciona.260 Cómousarlo.261 Macro 88: Enviarel correo con un enlace anuestrolibro... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0,262 Cómofunciona.262 Cómousarlo.263 Macro 89: MailingDireccionesde todoel correoelectrónicoennuestralistade contactos... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0,264 Cómofunciona.264 Cómousarlo.265 Macro 90: AhorroTodos losarchivosadjuntosauna carpeta. 266 Cómofunciona.266 Cómousarlo.268 Macro 91: AhorroCiertosarchivosadjuntosauna carpeta.269 Cómofunciona.269 Cómousarlo.271 Parte IX: La integraciónde Excel yotras aplicacionesofimáticas..........273 Macro 92: Ejecuciónde una consultade Accessdesde Excel.275 Cómofunciona.275 Cómousarlo.277 Macro 93: Ejecuciónde unamacro de accesodesde Excel.278 Cómofunciona.278 Cómousarlo.279 xvi Macro 94: Aperturade un informe de accesodesde Excel.280 Cómofunciona.280 Cómousarlo.281 Macro 95: Aperturade un formulariode Accessdesde Excel.282
  • 18. Cómofunciona.282 Cómousarlo.283 Macro 96: espacioenuna base de datosAccessdesde Excel.284 Cómofunciona.284 Cómousarlo.285 Macro 97: Envío de datos de Excel a un documentode Word.286 Cómofunciona.286 Cómousarlo.288 Macro 98: Simulaciónde combinarcorrespondenciaconundocumentode Word.289 Cómofunciona.289 Cómousarlo.292 Macro 99: Envío de datos de Excel a una presentaciónde PowerPoint.293 Cómofunciona.293 Cómousarlo.295 Macro 100: El envíode todosListasde Excel a unapresentaciónde PowerPoint.296 Cómofunciona.296 Cómousarlo.298 Macro 101: Convertirunlibrode trabajoenuna presentaciónde PowerPoint.299 Cómofunciona.299 Cómousarlo. 301
  • 19. Introducción En su sentidomásamplio,unamacrode Excel esuna secuenciade instruccionesque automatizaalgúnaspectode Excel para que puedatrabajarde maneramás eficiente ycon menoserrores.Ustedpuede crearunamacro, por ejemplo,para formateare imprimirsu informe de ventasde finde mes.Despuésse desarrollólamacro,puede ejecutarel macropara realizarmuchosprocedimientosque requierenmuchotiempode formaautomática. Las macros estánescritasenVBA,siglasde Visual Basicpara Aplicaciones.VBA esenrealidad una programación lenguaje desarrolladoporMicrosoft,yesuna herramientaque se utiliza para desarrollarprogramasque controlanExcel. La terminologíade programaciónde Excel puede serunpococonfuso.Porejemplo,VBA esun lenguaje de programación, sinoque tambiénsirvecomounlenguaje de macros.¿Cómose llamaalgoescritoenVBA y ejecutadoen Excel?¿Esuna macro o se trata de un programa? Sistemade Ayudade Excel a menudose refiere alosprocedimientosde VBA comomacros,por loesta esla terminologíautilizadaeneste libro.Perotambiénse puede llamaracódigoVBA un programa. Tambiénveráel términoautomatizarlolargode este libro.Este términosignificaque unaserie de pasos son completadoautomáticamente.Porejemplo,si escribesunamacroque agrega colora algunascélulas,imprime el hojade cálculo,yluegoeliminael color,ustedha automatizadoesostrespasos. La gente utilizaExcel paramilesde diferentestareas.Éstossonsóloalgunosejemplos: ➤ Mantenerlistasde cosas talescomonombresytransaccionesde losclientes ➤ Presupuestaciónyprevisión ➤ Analizardatoscientíficos ➤ Creaciónde facturasy otras formas ➤ Desarrollartablasde datos La listapodríaseguiry seguir.El puntoessimplemente que Excelse utilizaparauna amplia variedadde tareas,y todoslosque leaneste librotiene diferentesnecesidadesyexpectativas con respectoa Excel.Una cosa virtualmente cadalectortiene encomúneslanecesidadde automatizaralgúnaspectode Excel.Esoes loque VBA (y esto libro) se trata. TemasCubiertos Este libroaborda el temade las macros de Excel con el reconocimientode que la programacióncon VBA toma tiempoypráctica- el tiempoque ustednopuede tenereneste momento.De hecho,muchosanalistasnotienen el lujode tomarunpar de semanasde descansopara convertirse enunexpertoenVBA.Asíque enlugarde la mismaengeneral visióngeneral de lostemasde VBA,este libroofrece 101 del mundoreal másutilizadoExcel Macros. Cada segmentodel librodescribe unproblemacomúnque necesitaserresueltoyproporciona la real macro de Excel para resolverel problema,juntoconunaexplicacióndetalladade cómo funcionalamacro y dónde utilizarlamacro.
  • 20. Lo que necesitassaber Con el finde obtenerel máximoprovechode estelibro,que se suponeque tieneuncierto conjuntode habilidades.El candidatoideal paraeste librotiene experienciatrabajandocon datosen Excel,juntoconla familiaridadconel básico conceptosde análisisde datos,tales como trabajarcon tablas,la agregaciónde datos,realizarcálculos, ylacreaciónde gráficos. Lo que hay que tener Ustednecesitarálasiguiente conel finde descargaryutilizarlosejemplosdestacadoseneste libro. ➤ Una copia con licenciade Excel 2007 o Excel 2010 ➤ Una conexiónaInternetparapoderdescargar losarchivosde ejemplo Cómoestá organizadoeste libro El estilode este libroestáenel formatode losConsejosytrucoslibros,donde cadasegmento muestracómo para realizarunatarea comúna travésde macros de Excel.Estole permite, nuestrolectorestimada,utilizael librocomoun referenciaprácticapara labúsquedade una macro que resuelve unproblemacomún. Cada segmentodel librosigueestasencillaconstrucción: ➤ El problema ➤ La soluciónmacro ➤ ¿Cómofunciona? Despuésde leercadasegmentode este libro,usteddeberíasercapaz de ➤ implementarinmediatamente lamacrorequeridaExcel ➤ Comprendercómofuncionalamacrodados ➤ Reutilizarlamacrodada enotros librosoen conjuntoconotras macros Los capítulosde este librose agrupanen nueve partesprincipales.
  • 21. Parte I: PrimerospasosconExcel Macros Parte I sirve comouna introducciónaExcel Macros y VBA engeneral.Aquí,ustedobtieneun resumenconcisode cómofuncionaVBA conExcel,que le da el fundamentobásicoque necesitaparatrabajar con los101 macrosen este libro. Parte II: Trabajar con librosde trabajo En la Parte II se descubre cómohacer referenciaalibrosde trabajoa travésde VBA para hacer cosas interesantescomoautomáticamente crearnuevoslibros,evitarque losusuarioslibros de cierre,copiasde seguridadautomáticaslibros,ymuchomás. Parte III: Automatizaciónde tareasHojade trabajocon macros Parte III se centra enlastareas de automatizaciónrelacionadosconhojasde cálculo.Tantosi se trata unhidingtodaslashojasenunalibro,o imprimirtodaslashojasal mismotiempo, muchasde lastareas se puedenautomatizarparaahorrar tiempoyganar eficiencia.Enesta parte cubrimosalgunasde las macrosmás útilesrelacionadosconlashojasde trabajo. Parte IV: SelecciónyrangosModificación Cuandoustedestátratando de automatizarsutrabajo a travésde VBA,ustedencontraráque la navegación de suhojade cálculosigue siendounaparte importante del procesode zutomatización.Enmuchoscasos,esnecesarionavegarymanipulardinámicamenterangosde Excel,tal como loharía manualmente - sóloatravésde VBA código.Parte IV proporcionaalgunasde lasmacros más utilizadosentérminosde navegacióny de trabajo con rangos. Parte V: Trabajocon datos Parte V muestraalgunasde lasmacros más útilesque puede utilizarparatransformar dinámicamentelosdatosensuslibros.Laideaes que se puede ejecutarvariasde estasmacros enuna secuenciaque,básicamente,automatizael lavadoylaconformaciónde susdatos. Parte VI: Trabajar con tablasdinámicas Algunastareasrelacionadastabladinámica-nosonfácilesde manejarconlagrabadora de macros. Aquíes donde laParte VIcentra su atención.Aquí,cubrimoslosescenariosmás comunesdonde macrosayudana ganar eficienciacuandose trabajacontablas dinámicas. Parte VII:ManipulaciónGráficosconmacros En la Parte VIIa descubrircómoVBA puede ayudara ahorrar tiempoytrabajar con gráficosde maneramás eficiente.Aquíhacerfrente alosaspectosde la cartografía que se prestana un poco de automatización. Parte VIII:E-correodesde Excel En la Parte VIIIdescubriralgunosejemplosde cómose puede integrarExcel yOutlook.Aquí vesejemplosde macrosque envíanmensajesde correoelectrónico,enviararchivosadjuntos, y tirar de archivosdirectamente de Outlook. Parte IX: La integraciónde Excel yotras aplicacionesde OfficeDatosde Excel se utilizaa menudoenotrasaplicacionesde Office:MicrosoftAccess,MicrosoftWordyMicrosoft
  • 22. PowerPoint.EnlaParte IXnos fijamosenalgunasde lasmacros útilesque puedesponeren práctica para tenerExcel integrarconalgunasotras aplicacionesde Office. Convenioseneste libroLoscomandosde menúde este libroestánseparadosporunaflecha (➜).Porejemplo,File➜Opensignificaira En el menúArchivo,hagaclicen él y seleccione Abrirenla listaque aparece. Todo el códigoeneste libroaparece enunafuente monoespaciada,al igual que losmétodos, propiedades,valoresyargumentos. Textode lostiposde lectoresaparece ennegrita. Textode marcador de posiciónque debe serreemplazadoconinformaciónespecíficaasus necesidadesaparece encursiva. ¿Qué significanlosiconos UtilizamosiconosTipparaindicarun punterose debe archivarpara futurasconsultas. Consejossuelehacersuvidamás fácil. El iconoNotaindicaque debe prestarespecial atenciónaesto. UtilizamosiconosPrecauciónparaindicarlascosasque puedencausarproblemas. Sobre el sitiowebdel compañero Cada macro eneste librotiene unarchivode muestraasociada.Estosarchivosde ejemplole permitenverlamacro enacción,así comoque le da la posibilidadde revisarel código.Los archivosde ejemplose puedendescargardesde sitiowebcomplementariode este libroen www.wiley.com/go/101excelmacros.
  • 23. PARTE I EmpezandoconExcel Macros Esta parte esuna introducciónalasmacros de Excel,que abarca todo loque necesita saber acerca de lasmacros de Excel y VBA para empezarcon los101 macros en todoel restode este libro.
  • 24. En estaparte Familiarizarseconlosfundamentosde grabaciónde macros... . . . . . . . . . . . . . . . . . . . . . . . 7 Comparandoabsolutay relativade grabaciónde macros. . . . . . . . . . . . . . . . . . . . . 11 Grabaciónde macros con referenciasabsolutas.... . . . . . . . . . . . . . . . . . . . . 11 Grabaciónde macros con referenciasrelativas.... . . . . . . . . . . . . . . . . . . . . . . 13 En cuanto a otros conceptosde grabaciónde macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Extensionesde archivoMacro habilitado.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 La seguridad de macrosenExcel 2010. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Las ubicacionesde confianza.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 El almacenamientode macrosenel librode macros personal.... . . . . . . . . . . . . . . 17 Asignarunamacro a un botóny otroscontrolesde formulario.... . . . . . . . . . 17 La colocaciónde unamacro en labarra de herramientasde accesorápido... . . . . . . . . . . . . . . . . . . . . 19 TrabajandoEn el Editor de Visual Basic... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 La activaciónde laVBE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 ComponentesVBEcomprensión.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Trabajar con la ventanadel proyecto.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Adiciónde unnuevomódulode VBA... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Extracciónde un módulode VBA.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Trabajar con una ventanade código... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Minimizarymaximizarventanas.... . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ObtenercódigoVBA enunmódulo... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Personalizaciónde laVBA MedioAmbiente.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 La pestañaEditor... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 La pestañaEditorde formato.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 La pestañaGeneral.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 La fichade acoplamiento.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Descubriendoel modelode objetosde Excel.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 La comprensiónde losobjetos.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Coleccionescomprensión.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 La comprensiónde laspropiedades.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Métodosde comprensión.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
  • 25. Tomar una breve miradaenvariables.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Acerca de lasmacros en este libro... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Obtenciónde losarchivosde ejemplo.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 El usode losarchivosde ejemplo.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Cosasa tenerencuenta.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
  • 26. Introducción Excel Macros Ustedno necesitaserunusuarioavanzadopara crear y utilizarmacrosVBA simples.Inclusolos usuariosocasionalespuedensimplemente enciendamacrograbadorde Excel. Grabaciónde una macro escomo laprogramaciónde unnúmerode teléfonoensuteléfono celular.Ustedprimeromarcarmanualmente y guardar un número.Luego,cuandolodesea,puede volveramarcar losnúmerosconel toque de un botón. Al igual que con losnúmerosenun teléfonocelular,puedegrabarsusaccionesenExcel mientras realizarlas.Mientrasgraba,Excel se llenaenel fondo,latraducciónde laspulsacionesdel tecladoy clicsdel ratón para códigoVBA escrito.Despuésde que hayagrabadouna macro,puede reproduciresasacciones cualquiermomentoque desee. Esta piezasirve comouna introducciónaExcel Macros y VBA en general.Aquí,le damosun resumenconcisode cómofuncionaVBA conExcel,que le da el fundamentobásicoque necesitaparatrabajar con los101 macros que figuraneneste libro. Familiarizarsecon Conceptosbásicosde grabaciónde macros Para iniciarlagrabaciónde suprimeramacro, esnecesarioencontrarprimerolagrabadorade macros, que estáenel FichaProgramador.Desafortunadamente,Excelque sale de lacajacon la fichaProgramador escondido - ustedpuede no verloensuversiónde Excel enunprimermomento.Si vaa trabajarcon macros VBA,usted querráhacer Asegúrese de que lafichaProgramadoresvisible.Paramostrarestaficha 1. Seleccione OpcionesOffice➜Excel. 2. En el cuadrode diálogoOpcionesde Excel,seleccione Personalizarcintade opciones. 3. En el cuadrode listade la derecha,coloque unamarcade verificaciónjuntoal desarrollador. 4. Haga clicen Aceptarpara volveraExcel. Ahoraque tiene lafichaProgramadormuestraenla cinta de opcionesde Excel,se puede ponerenmarcha el Macro
  • 27. Grabadora seleccionandoGrabarmacro de lafichaProgramador.Esto activa el cuadrode diálogoGrabar macro caja, comose muestraenla Figura1-1. Figura1.1: El cuadro de diálogoGrabar macro. Estas sonlas cuatro partesdel cuadro de diálogoGrabar macro: ➤ Nombre de macro: Esto debe explicarse porsímismo.Excel daun nombre pordefectoa la macro, como Macro1, perousteddebe darsu nombre macro másdescriptivode loque enrealidad lohace. Porejemplo,esposible que el nombrede unamacro que da formatoa una tabla genéricacomoformattable. ➤ Teclade atajo:Cada macro necesitaunevento,oalgoasí suceda,para que se ejecute.Este evento puede serunapulsaciónde botón,unaaperturade libro,oeneste caso, unacombinaciónde teclas.¿Cuándo asignauna teclade acceso directoa la macro,entrandoenesa combinaciónde teclasque desencadenasu macro para funcionar.Este esun campo opcional. ➤ Macro TiendaEn: Este libroesla opciónpordefecto.Almacenamientode lamacroen este librode trabajo Simplementesignificaque lamacro se almacenajuntocon el archivoactivoExcel.La próxima vezque abrir ese libroenparticular,lamacro estádisponible parafuncionar.Del mismomodo,si usted envíael libro a otro usuario,el usuariopuede ejecutarlamacro,así (siempre que laseguridadde macroses
  • 28. adecuadamente definidoporel usuario - mássobre estomás adelante enla presente parte,en la seccióntitulada"Mirando Otros Conceptosde grabaciónde macros"). ➤ Descripción:Este esuncampo opcional,peropuede serútil si ustedtienenumerosos macros enuna hojade cálculoo si tiene que dara unusuariouna descripción másdetalladade loque el macro hace. Con el cuadrode diálogoGrabarmacro abierto,sigaestospasosparacrear una macro simple que entraen su nombre enuna celdade hojade cálculo: 1. Introduzcaun nuevonombre de unasolapalabra para la macro para reemplazarel nombre predeterminadoMacro1.Un buen nombrarpara este ejemploesMiNombre. 2. Asignarestamacro para el accesodirectode teclasCtrl + Shift+ N mediante laintroducción de mayúsculasN en el cuadrode edición etiquetadoTeclade atajo. 3. Haga clicen Aceptarpara cerrar el cuadro de diálogoGrabar Macro y empezara grabar sus acciones. 4. Seleccione cualquierceldade lahojade cálculoExcel,escribasunombre enla celda seleccionada,yluego presione ENTRAR. 5. ElijaDeveloper➜Code➜Stopgrabación(ohagaclicenel botón Detenergrabaciónenel barra de estado). El examende lamacro La macro se grabó enun nuevomódulodenominadoModule1.Paraverel códigode este módulo, debe activarel Editorde Visual Basic.Puede activarel Editorde Visual Basicenunade dos maneras: ➤ Presione Alt+F11. ➤ ElijaDeveloper➜Code➜Visual básico. En el Editor de Visual Basic,laventanade proyectomuestraunalistade todosloslibros abiertosycomplementos.Estalistaes se muestracomo un diagramade árbol,que se puede expandirocontraer.El códigoque ha grabado previamente se almacenaenModule1 enel libroactual.Al hacer doble clicenel módulo1,el códigode
  • 29. el móduloaparece enlaventanade código. La macro deberíaseralgocomo esto: Sub MyName() ‘ ‘ MyNameMacro ‘ ‘ Keyboard Shortcut: Ctrl+Shift+N ‘ ActiveCell.FormulaR1C1 = “Michael Alexander” End Sub La macro grabadaes un procedimientoSubque se nombraMiNombre.LosestadosdicenExcel qué hacer cuandose ejecutalamacro. Observe que Excel insertaalgunoscomentariosenlaparte superiordel procedimiento.Estos son algunosde loscomentarioslainformaciónque aparecióenel cuadrode diálogoGrabar macro. Estas líneasde comentarios(que empiezanconunapóstrofe) noson realmente necesarios,yeliminarlosnotiene efectoencómose ejecutalamacro. Si ignora loscomentarios,veráque este procedimientotieneunasoladeclaraciónVBA: ActiveCell.FormulaR1C1 = “Michael Alexander” Esta soladeclaraciónhace que el nombre que escribiódurante lagrabaciónparasu inserción enla celdaactiva. Pruebade la macro Antesde grabar estamacro, se establece unaopciónque le asignalamacro a laShift+ Ctrl + N combinaciónde teclasde accesodirecto.Paraprobar la macro, vuelva aExcel mediante unade lassiguientesmétodos: ➤ Presione Alt+F11. ➤ Haga clic enel botónVerMicrosoft Excel enlabarra de herramientasEditorde VB. CuandoExcel estáactivo,activar unahoja de cálculo.(Puede serenel libroque contiene el módulode VBA o encualquierotrolibro.) Seleccione unCtrl + Shiftcelularypulse + N.La macro entra inmediatamente asunombraren la célula. En el ejemploanterior,notaque haseleccionadolacélulaparaserformateadoantes empezadoagrabar la macro. Este paso esimportante.Si seleccionaunaceldamientrasla macro grabadora estáencendida,lacélulareal que haseleccionadose grabaráenla macro. En tal caso, lamacro siempre formatoque celularparticular,ynosería unamacro de propósito general. Ediciónde la macro Despuésde grabaruna macro, puede realizarcambiosenél (aunque hayque saberloque estáshaciendo). Por ejemplo,supongaque deseaque sunombre seanegrita.Ustedpodríavolvera grabar la macro, peroestamodificaciónessimple,de modoeditarel códigoesmáseficiente.Presione
  • 30. Alt+ F11 para activarel Editor de Visual Basicventana.A continuación,active Module1e insertarlasiguiente declaraciónante lainstrucciónEndSub: ActiveCell.Font.Bold = True La macro editadoaparece de lasiguientemanera: Sub MyName() ‘ ‘ MyNameMacro ‘ ‘ Keyboard Shortcut: Ctrl+Shift+N ‘ ActiveCell.Font.Bold = True ActiveCell.FormulaR1C1 = “Michael Alexander” End Sub Pona pruebaestanuevamacro,y vesque funcionacomodebería. Comparando absolutayrelativagrabaciónde macros Ahoraque ustedha leídoacerca de losconceptosbásicosde lainterfazMacro Recorder,esel momentode irmás profundoycomenzara grabar macros.La primeracosa que ustednecesita entenderantesde empezaresque Excel tiene dosmodosde grabación - absolutareferenciay referenciarelativa. Grabaciónde macros con referenciasabsolutas Modo de grabación pordefectode Excel esenreferenciaabsoluta.Comoustedessaben,el términode referenciaabsolutose utilizaamenudoenel contextode lasreferenciasde celda que se encuentraenlasfórmulas.Cuandounareferenciade celdaenunafórmulaesuna referenciaabsoluta,que nose ajustaautomáticamente cuandolafórmulase pegaauna nueva ubicación. La mejormanerade entendercómoeste conceptose aplicaalasmacros es probarlo.Abrael Capítulo1 Ejemplode archivoFile.xlsx ygrabarun macro que cuentalas filasenlalistaBranch hojade trabajo.(VerFigura1-2.) Figura1-2: Su hojade trabajo pre-totalizaroncontiene dostablas.
  • 31. El conjuntode datosde lamuestrautilizadaenlapresente parte se puede encontrarenel sitio webel compañerode este libro. VerIntroducciónde este libroparaobtenermásenel sitiowebde compañía. Sigaestospasospara grabar la macro: 1. Antesde grabar, haga esté seleccionadalaceldaA1. 2. Seleccione Grabarmacro de la fichaProgramador. 3. Nombre el AddTotal macro. 4. Seleccionaeste librode trabajoenel almacenamiento. 5. Haga clicen Aceptarpara iniciarlagrabación. En este punto,Excel estágrabandosusacciones.Aunque Excel eslagrabación,realice el siguiente pasos: 6. Seleccione A16celularyel tipototal en lacélula. 7. Seleccione laprimeraceldavacíade la columnaD (D16) y el tipo= CONTARA (D2:D15). esto da un recuentode losnúmerosde sucursalesenlaparte inferiorde lacolumnaD.Usted necesitausarla funciónCONTARA porque losnúmerosde ramificaciónse almacenancomo texto. 8. Haga clicen DetenergrabaciónenlafichaProgramadorpara detenerlagrabaciónde la macro. La hojade trabajo conformato deberíaparecerse ala de la Figura1-3. Figura1-3: Su hojade trabajo posttotalizado. Para verla macro en laacción, elimine lafilade totalesque acabade agregary reproducirla macro siguiendoestospasos: 1. Seleccione Macrosde la fichaProgramador. 2. Busque y seleccionelamacroAddTotal que acaba de grabar.
  • 32. 3. Haga clicen el botónEjecutar. Si todo va bien,lamacro se reproduce susaccionesa una T y le da a su mesaun total.Ahora aquí estála cosa. Noimportacuánto te esfuerces,nose puede hacerel trabajoAddTotal macro enla segundatabla. ¿Por qué?Debidoaque ha grabado comouna macro absoluta. Para entenderloque estosignifica,examinarel códigosubyacente.Paraexaminarel código, seleccione Macrosde lafichaProgramador para obtenerel cuadrode diálogoMacro que se ve enla figura1-4. Figura4.1: El cuadro de diálogoMacro Excel. Seleccione lamacroAddTotal yhaga clicen el botónEditar.Esto abre el Editor de Visual Basic para mostrar el códigoque fue escritocuandograbó lamacro: Sub AddTotal() Range(“A16”).Select ActiveCell.FormulaR1C1 = “Total” Range(“D16”).Select ActiveCell.FormulaR1C1 = “=COUNTA(R[-14]C:R[-1]C)” End Sub A16 y luegoD16, esascélulas sonexactamente loque se haseleccionado.Debidoaque la macro se registróenabsolutomodode referencia,Excel interpretasuseleccióngamacomo absoluto.Enotras palabras,si seleccionaA16célula,esacélulaesloque le da Excel.Enla siguiente sección,se echaunvistazoalo que la mismamacro parece que cuandose graba en el modode referenciarelativa. Grabaciónde macros con referenciasrelativasEnel contextode lasmacrosde Excel,medios relativosrelativosalaceldaactiva enese momento.Porloque debe utilizarcuidadoconsu elecciónceldaactiva- tantoal grabar la macro referenciarelativaycuandoque loejecute. En primerlugar,asegúrese de que el archivoFile.xlsxCapítulo1de lamuestraestáabierta. (Este archivoestádisponibleenel compañerode este libro.páginaweb) A continuación, utilice lossiguientespasosparagrabar una macro referenciarelativa: 1. Seleccione laopciónde referenciasrelativasUsode lafichaProgramador,comose muestra enla Figura1-5.
  • 33. 2. Antes de grabar, haga esté seleccionadalaceldaA1. 3. Seleccione Grabarmacro de la fichaProgramador. 4. Asigne unnombre al AddTotalRelative macro. 5. Seleccionaeste librode trabajoenel almacenamiento. 6. Haga clicen Aceptarpara iniciarlagrabación. 7. Seleccione A16celularyel tipototal en lacélula. 8. Seleccione laprimeraceldavacíade la columnaD (D16) y el tipo= CONTARA (D2:D15). 9. Haga clicen DetenergrabaciónenlafichaProgramadorpara detenerlagrabaciónde la macro. Figura1.5: Grabaciónde una macro con referenciasrelativas. Creadomacro. Seleccione MacrosenlafichaProgramador para abrirel cuadro de diálogoMacro.Aquí, elijala AddTotalRelativemacroyhaga clic enEditar. Una vez más,estoabre el Editor de Visual Basic para mostrarel códigoque fue escritocuando grabó su macro.Esta vez,el códigose ve algocomo losiguiente: Sub AddTotalRelative() ActiveCell.Offset(15, 0).Range(“A1”).Select ActiveCell.FormulaR1C1 = “Total” ActiveCell.Offset(0, 3).Range(“A1”).Select ActiveCell.FormulaR1C1 = “=COUNTA(R[-14]C:R[-1]C)” End Sub Tengaen cuentaque no hayreferenciasacualquierrangode celdasespecíficasenabsoluto (que noseanel puntode partida"A1").Tomemosunmomentopara echarun rápidovistazoa loque las partespertinentesde este códigoVBA realmente significar. Observe que enlalínea2, Excel utilizalapropiedadOffsetde laceldaactiva.Esta propiedad indicael cursor para moverunciertonúmerode célulasarribao hacia abajoy un cierto númerode célulasizquierdaoderecha. El códigode la propiedadOffsetle dice aExcel para mover15 hilerasde plumasy0 columnas frente ala activa célula(eneste caso,A1).Nohay necesidadde Excel paraseleccionar explícitamente uncelularcomolohizodurante la grabaciónde un macro referenciaabsoluta. Para veresta macro enacción,eliminarlafilatotal paraambas tablasy hacer losiguiente: 1. Seleccione laceldaA1. 2. Seleccione Macrosde la fichaProgramador.
  • 34. 3. Busque y seleccionelamacroAddTotalRelative. 4. Haga clicen el botónEjecutar. 5. Ahora seleccionelaceldaF1. 6. Seleccione Macrosde la fichaProgramador. 7. Busque y seleccionelamacroAddTotalRelative. 8. Haga clicen el botónEjecutar. Tengaen cuentaque estamacro, a diferenciade la macroanterior,funcionaenambos conjuntosde datos.Debidoaque la macro aplicalostotalesrelativosalaceldaactiva enese momento,lostotalesse aplicancorrectamente. Por estamacro funcione,sólohayque asegurarse de que ➤ Ustedha seleccionadolaceldade partidacorrectoantesde ejecutarlamacro. ➤ El bloque de datostiene el mismonúmerode filasycolumnascomolosdatosenel que se grabado lamacro. Con suerte,este sencilloejemploque hadadouna sólidacomprensiónde lagrabaciónde macros con tantoabsolutocomoreferenciasrelativas. En cuanto a otros conceptosde grabaciónde macros En este punto,usteddebe sentirse cómodograbar su propiaExcel Macros. Ahora aquí estánalgunasde losotros conceptos importantesque tendrásque tenerencuentacuandose trabajacon macros. Extensionesde archivoMacro habilitadoEmpezandoconExcel 2007, Excel tiene unaextensión de archivodiferente paralibrosque contienenmacros. Ustedve,Excel 2010 librostienenlaextensiónde archivo.xlsx estándar.Losarchivosconla extensión.xlsxnopuede contenermacros.Si el librocontiene macrosy,acontinuación, guardar ese librocomoun. archivoxlsx,lasmacrosse eliminanautomáticamente.Excel le advierteque el contenidode macro se desactivaráal guardar unlibrocon macros comoun archivo.xlsx. Si deseaconservarlasmacros, debe guardarel archivocomo un librode trabajohabilitada para macros de Excel.Este da su archivouna extensión.xlsm.Laideaesque todosloslibros con una extensiónde archivo.xlsxsonautomáticamente conocidoporserseguro,mientras que ustedpuede reconocer.xlsmarchivoscomounaamenazapotencial. La seguridadde macrosenExcel 2010 Con el lanzamientode Office 2010,Microsoft introdujocambiossignificativosensumodelode seguridadde Office. Uno de loscambiosmássignificativosesel conceptode documentosde confianza.Sinentrar enla minuciatécnica,undocumentode confianzaesesencialmenteunlibroque ha consideradoseguroal permitirmacros. Si abre un libroque contiene macrosenExcel 2010, aparece un mensaje de labarra amarilla bajola Cintaindicandoque lasmacros(contenidoactivo) tienenenefecto,hadesactivado.
  • 35. Si hace clicen Habilitar,se convierte automáticamente enundocumentode confianza.Esto significaque yanoestánse le pidapara que el contenidosiempreycuandose abre ese archivo ensu ordenador.La ideabásicaesque si le dijiste aExcel que "laconfianza",unlibroen particularal permitirmacros,esmuyprobable que ustedhabilitarlasmacroscada vezque lo abra. Por lotanto,Excel recuerdaque ha habilitadomacrosantese inhibe cualquierotros mensajesacercade macros para ese libro. Esta es unagran noticiapara ustedy susclientes.Despuésde habilitarlasmacrossólounavez, no loharán estar molestoporlosmensajesconstantessobre macros,yustednotendráque preocuparse de que susalpicaderomacro-enabledfracasaráporque lasmacros se han desactivado. Las ubicacionesde confianzaSi laideade cualquier mensaje macroviene (inclusounavez) que enerva,se puede establecerunubicaciónde confianzaparasusarchivos.Una ubicaciónde confianzaesundirectorioque se consideraunazonaseguradonde sólolibrosde trabajode confianzase colocan.Una ubicaciónde confianzapermite que ustedysusclientespara ejecutarunamacro-enabledcuadernode trabajosinrestriccionesde seguridad,siempre y cuandoel librose encuentraenese lugar. Para configuraruna ubicaciónde confianza,sigaestospasos: 1. Seleccione el botónSeguridadde macrosenlafichaProgramador. Esto activael cuadro de diálogoCentrode confianza. 2. Haga clicen el botónde ubicacionesde confianza.Estoabre el menúde ubicacionesde confianza(verFigura1-6),que le muestratodoslosdirectoriosque sonconsideradosde confianza. 3. Haga clicen el botónAgregarnuevoUbicación. 4. Haga clicen Examinarpara buscar yespecificarel directorioque seráconsideradouna ubicaciónde confianza. Despuésde especificarunaubicaciónde confianza,cualquierarchivode Excel que se abre desde estaubicacióntendrámacroshabilitadoautomáticamente. Figura1.6: El menúde ubicacionesde confianzale permite añadirdirectoriosque se consideranconfiables.
  • 36. El almacenamientode macrosensu librode macrospersonal La mayoría de las macros creadaspor el usuarioestándiseñadosparasuuso enun libroespecífico,peroesposible que desee utilizaralgunasmacrosentodosu trabajo.Puede almacenarestasmacrosde uso general enel Macro Personal Librode trabajode maneraque siempre estamosasu disposición.El Librode macros personal se carga cada vezque iniciaExcel.Este archivo, llamadopersonal.xlsb,noexiste hastaque grabe unamacro utilizandoPersonal Librode macros comodestino. El Librode macrospersonal que normalmentese encuentraenunaventanaocultapara mantenerlofuerade el camino. Para grabar la macro enel librode macros personales,seleccione laopciónLibrode macros personal enel cuadrode diálogoGrabar macro antesde empezarlagrabación.Esta opciónse encuentraenlamacro tiendaEn desplegable lista. Si almacenalas macrosen el libromacrospersonales,ustednotieneque acordarse de abrirla Librode macros personal cuandose carga un libroque utilizamacros.Cuandose quiere salir, Excel le preguntarási deseaguardarloscambiosen el libromacrospersonales. Asignarunamacro a un botóny otroscontrolesde formulario Al crear macros, esposible que desee tenerunamanera clara y fácil de ejecutarcada macro. Un básico botónpuede proporcionarunainterfazde usuariosencillaperoeficaz. La suerte quisoque,Excel ofreceunconjuntode controlesde formulariodiseñado específicamente paralacreaciónde interfacesde usuariodirectamente enlashojasde cálculo. Hay variostiposdiferentesde controlesde formulario,de losbotones(el másutilizadade control) para lasbarras de desplazamiento. La ideadetrásde usar uncontrol de formularioessimple.Ustedcolocauncontrol de formularioenunahojade cálculoy después asignarunamacro a ella- es decir,unamacro que ya ha grabado.Cuandose asignauna macro para el control, esamacro se ejecuta,ojuega, cuandose hace clic enel control. Tómese unmomentoparacrear un botónpara lamacro AddTotalRelative creóanteriormente. He aquí cómo: 1. Haga clicen el botónInsertarbajola fichaProgramador.(VerFigura1-7.) 2. Seleccione el control de formularioBotónde lalistadesplegable que aparece. 3. Haga clicen laubicaciónenla que deseacolocarel botón.Al colocar el control de botón en la hojade cálculo,el cuadro de diálogoAsignarmacro,comose muestraenla Figura1-8, se activay le pide que asignauna macro a este botón. 4. Seleccione lamacroque deseaasignaral botóny luegohaga clicenAceptar.
  • 37. Figura1-7: Puede encontrarloscontrolesde formularioenlafichaProgramador. Figura1-8: Asignarunamacro al botónque acaba de agregar. Controlesde formulariofrente aloscontrolesActiveX Observe loscontrolesde formularioyloscontrolesActiveXenlaFigura1-7. A pesarde que se parecen,sonbastante diferente.Controlesde formularioestándiseñadosespecíficamente para su usoen una hojade cálculo,y loscontrolesActiveXsonutilizadotípicamente en formulariosde usuariode Excel.Comoreglageneral,siempre debeusarloscontrolesde formulariocuandose trabajaenuna hoja de cálculo.¿Porqué?Los controlesde formulario tienenmenosgastosgenerales,porloque funcionanmejor, yconfigurarcontrolesde formularioesmuchomásfácil que la configuraciónde suscontrapartesActiveX. En este punto,ustedtiene unbotónque ejecutalamacroal hacer clicenél!Tenga encuenta que todosloscontrolesenel grupode controlesde formulario(quese muestraenlaFigura1- 7) trabajar enla mismaformaque el botónde comando,enque se asignauna macro a ejecutarcuandose seleccionael control. La colocaciónde unamacro en labarra de herramientasde accesorápidoTambiénpuede asignaruna macro a un botónen labarra de herramientasde accesorápidode Excel: 1. Haga clicen labarra de herramientasde accesorápidoyseleccione Personalizarbarrade herramientasde accesorápido.
  • 38. 2. Haga clicen el botónde la barra de herramientas de accesorápidoa la izquierdadel cuadro de diálogoOpcionesde Excel. 3. Seleccione Macrosenla listadesplegablede laizquierda. 4. Seleccione lamacroque desee agregaryhaga clic enel botónAgregar. 5. Cambie el iconohaciendoclicenel botónModificar. Trabajar en el Editor de Visual Basic El Editorde Visual Basic(VBE) esunaaplicaciónindependienteenel que escribe yeditasus macros VBA.Ustedno se puede ejecutarel VBEporseparado;Excel debe estarenejecución para que el VBE se ejecute. La activación de la VBE La formamás rápidapara activar el VBE espulsarAlt+ F11 cuandoExcel estáactivo.Para volveraExcel,pulse Alt+ F11 de nuevo. Tambiénpuede activarel VBEmediante el comandoDeveloper➜Code➜Visual básico. ComponentesComprensiónVBE Figura1-9 muestrael programaVBE con algunasde las partesclave identificados.Porque tanto que estápasandoen enel VBE,me gustapara maximizarlaventanaparaverlo más posible. Es probable que suventanadel programaVBE no se veráexactamente igual que loque se ve enla Figura1-9. El VBE contiene variasventanasyesaltamente personalizable.Puede ocultar lasventanas,reorganizarlasventanas,ventanasmuelle,yasísucesivamente. Figura1-9: El VBEcon elementossignificativosidentificados. Barra de menús
  • 39. La barra de menúsVBEfuncionacomocualquierotrabarra de menúque ha encontrado. Contiene comandos que se utilizaparahacerlas cosascon los diversoscomponentesde la VBE.Usted tambiénencontraráque muchosde los comandosde menútienenteclasde acceso directoasociadascon ellos. El VBE tambiéncuentaconmenúscontextuales.Ustedpuede hacerclicenvirtualmente cualquiercosaenel VBE y obteneruna menúcontextual de comandoscomunes. Barra de herramientas La barra de herramientasestándar,que estádirectamentedebajode labarrade menúpor defecto,esunade las cuatro barras de herramientasVBE disponible.Puede personalizarlas barras de herramientas,moverlos,mostrarotrasbarrasde herramientas,yasísucesivamente. Si ustedestátan inclinado,utilice el comandoView➜Toolbarstrabajarconbarras de herramientasVBE.Lamayoría de lagente sólodejarloscomoestán. Ventana de proyecto La ventanade proyectomuestraundiagramade árbol que muestracada libro abierto actualmente enExcel (Incluidosloscomplementosylibrosocultos).Hagadoble clicenlos elementosparaexpandirocontraerellos.Nosotrosdiscutirestaventanaconmásdetalle enla sección"Trabajarcon la ventanadel proyecto"másadelante en estaparte. Si la ventanaProyectonoesvisible,presioneCtrl +R o utilice el comandoView➜Project Explorer.Esconderlaventanadel proyecto,hagaclicenel botónCerrar enla barra de título. Alternativamente,hagaclicencualquierlugarenel Ventanadel proyectoyseleccioneOcultar enel menúcontextual. Ventana Código Una ventanade códigocontiene códigoVBA.Cadaobjetoenunproyectotiene unaventanade códigoasociado.A ver ventanade códigode un objeto,hagadoble clicenel objetoenla ventanaProyecto.Porejemplo,paraverla ventanade códigopara el objetoSheet1,haga doble clicenSheet1enla ventanaProyecto.A menosque ustedtiene añadidoalgode código VBA,laventanaCódigoestarávacía. Encontrará más informaciónacercade lasventanasde códigomás adelante enlasección "Trabajar con una ventanade código"de estaparte. Ventana Inmediato La ventanaInmediatopuede onoservisible.Si noestávisible,presione Ctrl +G o utilizarel View➜ ComandoventanaInmediato.Paracerrarla ventanaInmediato,hagaclicenel botón Cerrar enla barra de título(Ohaga clic encualquierlugarenlaventanaInmediatoyseleccione Ocultaren el menúcontextual). La ventanaInmediatoesmásútil paraejecutardirectamente lasdeclaracionesde VBA ypara depurarsu código.Si ustedapenasestácomenzandoconVBA,estaventananoserá tan útil, por loque no dude enocultarloy liberaralgode espacioenlapantallapara otras cosas. Trabajar con la ventana del proyecto
  • 40. Cuandose trabaja enel VBE, cada librode Excel y complementoque eslibre esunproyecto. Puedespensarenunproyectocomouna colecciónde objetosdispuestoscomounesquema. Puede ampliarunproyectohaciendoclicel signomás(+) a la izquierdadel nombredel proyecto enla ventanadel proyecto.Contratarunproyectode clicen el signomenos(-) ala izquierdadel nombre de unproyecto.Obien,puedehacerdoble clicenloselementospara ampliary contratarlos. La figura1-10 muestraunaventanade proyectocon dosproyectosfiguran:unlibro denominadoLibro1yun librollamadoBook2. Figura1-10: Esta ventanaProyectoenumeradosproyectos.Ellosse expandenparamostrar sus objetos. Cada proyectose expande paramostraral menosunnodollamadoMicrosoftExcel Objetos. Este nodo se expande paramostrarun artículo para cada hoja del libro(cadahojase considera un objeto),yotro objetollamadoThisWorkbook(que representael objetoWorkbook).Si el proyectotiene cualquierVBA módulos,el listadode proyectostambiénmuestraunnodo Módulos. Adiciónde un nuevomódulo de VBA Al grabar una macro, Excel insertaautomáticamente unmódulode VBA paramantenerel códigograbado.La libroque tiene el móduloparalamacro grabadadepende de donde usted eligióparaalmacenarel grabadomacro, justoantesde empezarlagrabación. En general,unmódulode VBA puede contenertrestiposde código: ➤ Declarations: Uno o más estadosde informaciónque ustedsuministre aVBA.Porejemplo, puede declararel tipode datospara las variablesque vaa utilizar,oestableceralgunaotraen todoel módulo opciones.
  • 41. ➤ Sub procedures: Un conjuntode instruccionesde programaciónque realizaalgunaacción. Todosregistrado macros seránprocedimientosSub. ➤ Function procedures: Un conjuntode instruccionesde programaciónque devuelve un solovalor(similarenconceptoauna funciónde hojade cálculo,comoSuma). Un solomóduloVBA puede almacenarcualquiernúmerode procedimientosSub, procedimientos,funcionesydeclaraciones. Cómoorganizarun móduloVBA estotalmente suya.Algunaspersonasprefierenmantener todosu CódigoVBA para una aplicaciónenunsolomóduloVBA;a otroslesgustadividirel códigoenvariosdiferentesmódulos.Esunaelecciónpersonal,al igual que laorganizaciónde losmuebles. Sigaestospasospara añadirmanualmente unnuevomódulode VBA aun proyecto: 1. Seleccione el nombre delproyectoenlaventanadel proyecto. 2. ElijaInsert➜Module. O puede 1. Haga clicen el nombre del proyecto. 2. ElijaInsert➜Module enel menúcontextual. El nuevomódulose añade auna carpeta de módulosenlaventanadel proyecto(verFigura1- 11). cualquiermódulosse creaenun librodeterminadose colocanenestacarpetaMódulos. Figura1-11: módulosde códigosonvisiblesenlaventanadel proyectoenunacarpetallamada módulos. Extracción de un módulode VBA Es posible que deseeeliminarunmódulode códigoque yano esnecesario.Paraello,siga estospasos: 1. Seleccione el nombre delmóduloenlaventanadel proyecto. 2. Elijaxxx File➜Remove,dondexxx esel nombre delmódulo.
  • 42. O 1. Haga clicen el nombre del módulo. 2. Seleccione Eliminarxxx enel menúcontextual. Excel,siempre tratandode evitarque haciendoalgoque te arrepentirás,le preguntasi desea exportarel códigoenel móduloantesde eliminarlo.Casi siempre,nolohace.(Si lohaces quiere exportarel módulo,consultelasiguiente sección,"Trabajarconuna ventanade código.") Ustedpuede quitarmódulosVBA,peronohayformade eliminarlosotrosmódulos de código - aquellosparalosobjetosde hojaoThisWorkbook. Trabajar con una ventana de código Comollegara dominarcon VBA,ustedpasamuchotiempotrabajandoenventanasde código. Las macros que grabe se almacenanenunmódulo,yustedpuede escribircódigoVBA directamente enunmódulode VBA. Minimizary maximizar ventanas Ventanasde códigosonmuyparecidosa ventanasde libroenExcel.Ustedpuede minimizarlos, maximizarellos, cambiarel tamañode ellos,ocultarlos,reorganizarlos, yasísucesivamente.La mayoría de las personaslesresultamuchomásfácil para maximizarel Ventanade códigoque estántrabajando.Si lohace, le permite vermásde códigoy le impide obtener distraído. Para maximizarunaventanade código,hagaclic en el botónde maximizarenlabarra de título (justoal ladode laX).O solo haga doble clicenla barra de títulopara maximizarlo.Para restauraruna ventanade códigoa su tamaño original,hagaclicenRestaurar botón.Cuandose maximizaunaventana,labarra de títulono es muyvisible,porloque encontrarásenel botón Restaurara laderechadel tipode una preguntapara lacaja de la Ayuda. A veces,esposible que deseetenerdosomásventanasde códigovisibles.Porejemplo,es posible que desee compararel códigoendosmódulosocopiarel códigode unmóduloa otro. Ustedpuede arreglarel ventanasmanualmente,outilizarel Window➜Tile horizontalmente o verticalmenteWindow➜Tilecomandosparaorganizarlosautomáticamente. Puede cambiarrápidamente entreventanasde códigopulsandoCtrl +Tab. Si repite esa combinaciónde teclas, ustedguardael ciclismoatravésde todaslas ventanasde código abierto.PresionandoShift+Tab Ctrl + ciclosa través las ventanasenordeninverso. MinimizandounaventanaCódigoconsiguefueradel camino.Tambiénpuedehacerclicenel botónCerrar de la ventanaenun Barra de títulode la ventanaCódigoparacerrar completamentelaventana.(Cerrarunaventanajustoloesconde;noloharás perdernada.) Para abrir de nuevo,bastacon hacer doble clicenel objetoapropiadoenlaventanadel proyecto. Trabajar con estasventanasCódigosuenamásdifícil de loque realmente es. Obtenercódigo VBA enun módulo Antesde que puedahaceralgo significativo,debe teneralgo de códigoVBA enel módulode VBA.Puedes obtenerel códigoVBA enunmóduloVBA de tresmaneras: ➤ Utilice lagrabadora de macros de Excel para registrarsus accionesylosconvierte acódigo VBA
  • 43. ➤ Introducirel códigodirectamente ➤ Copiael códigode un móduloypegarloenotro Has descubiertoel excelentemétodoparacrearcódigoutilizandolagrabadorade macros de Excel. Sinembargo,notodas lastareas puedensertraducidosaVBA mediante el registrode una macro. A menudose tiene que introducirsu códigodirectamente enel módulo.Introducción del códigodirectamente básicamente significaobienescribiendoel códigode ti mismo o copiary pegar el códigoque haya encontradoenotrolugar. Introducciónyediciónde textoenunmóduloVBA funcionacomose podríaesperar.Puede seleccionar,copiar,cortar, pegar,yhacer otras cosas al texto. Una sola líneade códigoVBA puede sertan largocomo quieras.Sinembargo,esposible que desee utilizarel line-continuation carácterpara romperlargaslíneas de código.Para continuar con una solalíneade código(también conocidocomounadeclaración) de unalíneaa la siguiente,ponerfinalaprimeralíneacon un espacioseguidoporun guiónbajo(_).Luego continuarla declaraciónenlalíneasiguiente.He aquíun ejemplode unúnicoestado dividido entres líneas: Selection.Sort Key1:=Range(“A1”), _ Order1:=xlAscending, Header:=xlGuess, _ Orientation:=xlTopToBottom Esta declaraciónse realice de lamismamanerasi se introduce enunasolalínea(sin linecontinuationcaracteres).Tengaencuentaque lasegundayterceralíneasde esta declaraciónsonsangría. Sangría es opcional,peroayudaaaclarar el hechode que estaslíneasno soncomunicados separados. El VBE tiene múltiplesnivelesde deshacery rehacer.Si ha eliminadounadeclaraciónque ustednodeberíatener,el usoel botónDeshacerde la barra de herramientas(opresione Ctrl + Z) hastaque la declaraciónaparece de nuevo.Despuésde deshacer,se puedeutilizarel botón Rehacerpara realizarloscambiosque ha deshecho. Listopara entrar enalgunos,códigode carne y hueso?Pruebe lossiguientespasos: 1. Cree un nuevolibroenExcel. 2. Pulse Alt+ F11 para activar el VBE. 3. Haga clicen el nombre del nuevolibroenlaventanadel proyecto. 4. ElijaInsert➜Module parainsertarunmódulode VBA enel proyecto. 5. Escriba el siguiente códigoenel módulo: Sub GuessName() Dim Msg as String Dim Ans As Long Msg= “Is your name “ & Application.UserName& “?” Ans = MsgBox(Msg, vbYesNo) If Ans = vbNo Then MsgBox “Oh, never mind.” If Ans = vbYes Then MsgBox “I must be clairvoyant!” End Sub
  • 44. 6. Asegúrese de que el cursorse encuentraencualquierlugardentrodel textoque escribióy presione F5para ejecutarel procedimiento. F5 es un accesodirectopara el comandoSub / UserFormRun➜Run. Cuandose introduce el códigoque aparece enel paso5, puede notarque el VBEhace algunos ajustesparael textoque introduzca.Porejemplo,despuésde escribirlainstrucciónSub,el VBE insertaautomáticamenteel TermineinstrucciónSub.Ysi se omite el espacioanteso despuésde unsignoigual,el VBEinsertalaespacioparati. Además,el VBEcambiael colory la capitalizaciónde algúntexto.Todoestoesperfectamente normal. Es sóloforma de mantenerlascosaslimpiasylegiblesde laVBE. Si ha seguidolospasosanteriores,que acabade crear un procedimientoSubVBA,también conocidocomouna macro. Al pulsarF5, Excel ejecutael códigoysigue lasinstrucciones.Enotraspalabras,Excel evalúa cada declaraciónyhace loque le dijiste que hiciera.Puede ejecutarestamacrocualquier númerode veces - aunque tiende aperdersuatractivodespuésde unascuantasdocenasde ejecuciones. Este simple macroutilizalossiguientesconceptos: ➤ DefinirunprocedimientoSub(laprimeralínea) ➤ lasvariablesDeclaraciónde lasdeclaraciones(DIM) ➤ La asignaciónde valoresalasvariables(Msgy Ans) ➤ Concatenación(joining) unacadena (usandoel operador&) ➤ Utilizandounafunciónintegradade VBA (MsgBox) ➤ Uso de constantesintegradasde VBA (vbYesNo,vbNoyvbYes) ➤ El usode un If-Then construir(dosveces) ➤ Terminarun procedimientoSub(laúltimalínea) Comomencionamosanteriormente,puede copiarypegarel códigoenun móduloVBA.Por ejemplo, un Sub oProcedimientode Function que usted escribeparaunproyectotambién puede serútil enotroproyecto.enlugar de perderel tiempovolveraentraren el código, puede activarel móduloyutilizarlacopia-andpaste normalesprocedimientos(Ctrl +Cpara copiary Ctrl + V para pegar).Después de pegarenun módulode VBA,puede modificarel códigosegúnseanecesario. Personalizaciónde la VBA MedioAmbiente Si ustedesserioacerca de convertirse enunprogramadorde Excel,ustedpasamuchotiempo con módulosVBA enlapantalla.Paraayudar a hacer lascosas lo máscómoda posible,el VBE ofrece unbuennúmerode personalizaciónopciones. Cuandoel VBE esactiva,elijaTools➜Options.Veráuncuadrode diálogoconcuatro pestañas: Editor,EditorFormato,General y de acoplamiento.Tome unmomento paraexploraralgunas de las opcionesque se encuentranencadaficha.
  • 45. La ficha Editor Figura1-12 muestralas opcionesque se accede haciendoclicenlafichaEditordel cuadrode diálogoOpciones.utilizarel opciónenlafichaEditorde controlarcómo ciertascosas enel VBE. Figura1-12: La fichaEditordel cuadro de diálogoOpciones. La opciónRevisar sintaxisAuto La Comprobarconfiguraciónde sintaxisautomáticadeterminasi el VBEaparece uncuadro de diálogosi se descubre unerror de sintaxismientrasse estáintroduciendosucódigoVBA.El cuadro de diálogole dice máso menosloque esel problema. Si no seleccionaestaopción,banderasVBEsintaxiserroresmostrándolosenuncolordiferente de el restodel código,y ustednotiene que hacerfrente aloscuadros de diálogoapareciendo enla pantalla. Normalmente me mantengoeste ajusteapagué porque creoque loscuadrosde diálogoson molestosyyopor lo general puede averiguarloque estámal enuncomunicado.Antesyoera un veteranode VBA,Iencontradoeste ajuste muyútil. La opciónRequerirdeclaración de variables Si la opciónRequerirdeclaraciónde variablesse establece,VBEinsertalasiguiente declaración al comienzode cadanuevomóduloVBA inserta: OptionExplicit El cambiode este ajuste sóloafectaa losnuevosmódulos,nolosmódulosexistentes.Si esta declaraciónaparece ensumódulo,debe definirexplícitamente cadavariable que utiliza. Usando unainstrucciónDimesuna manerade declararvariables.
  • 46. La opciónLista de miembrosautomática Si la opciónListade miembrosautomáticase establece,VBEofrece unpocode ayudacuando se está introduciendosucódigoVBA. Se muestrauna listaque completaríalógicamenteladeclaraciónque estásescribiendo.Estaes una de las mejorescaracterísticasde laVBE. La opciónAuto Quick Info Si se seleccionalaopciónAutoInformaciónrápida,VBEmuestrainformaciónacercade las funcionesysusargumentosmientrasescribe.Estoessimilaralaforma enque Excel se enumeran losargumentosparaunafuncióna medidaque empiezanaescribirunanueva fórmula. La opciónConsejosde datos automática Si la opciónConsejosde datosautomáticase establece,VBEmuestrael valorde lavariable sobre la que el cursor se encuentracolocadocuandoestásdepuraciónde código.Estose activa de forma predeterminaday,amenudomuyútil.Tienesningunarazónparaactivar esta opción. El ajuste Sangría automática El ajuste Sangría automáticadeterminasi VBEsangrade forma automáticacada nuevalíneade códigodel igual que lalíneaanterior.Soygrande enel uso de muescasenmi código,así que mantengoestaopción. Por cierto,se debe utilizarlateclaTabpara sangrar el código,no labarra espaciadora. Tambiéntúpuede utilizarShift+Tab para "Unindent"unalíneade código.Si deseasangrar más de una línea,seleccionetodaslaslíneasque deseasangraryluegopresione lateclaTab. Editar barra de herramientasdel VBE(que estáocultade manerapredeterminada) contiene dos botonesútiles:SangríayAnularsangría. Estos botonesle permitenrápidamenteguióno"Unindent"unbloque de código.Seleccioneel códigoy haga clicen unode estosbotonesparacambiarla sangría del bloque. La opciónde ediciónde arrastrar y soltar texto La opciónde ediciónde arrastrary soltartexto,cuandoestáactivada,le permite copiary movertextoarrastrandoy cayendocon el ratón.Mantengoestaopciónactivada,peronunca louso. Yo prefierocopiarymoverutilizandoel teclado. El defectoenFull Module Ampliaropción El defectoenFull Module Ampliaropciónestableceel estadopordefectoparalosnuevos módulos.(Noafectaexistentemódulos.)Si se establece,losprocedimientosenlaventanade códigoaparecencomouna única listadesplazable.Si estaopciónesapagado,se puede ver sóloun procedimientoalavez.Mantengoestaopciónactivada. La opciónde ProcedimientoSeparador
  • 47. Cuandola opciónProcedimientoseparadorestáencendido,barrasseparadorasaparecenal final de cada procedimientode enunaventanade código.Me gusta la ideade barras separadoras,así que mantenerestaopciónactivada. La pestaña Editor de formato La figura1-13 muestralafichaEditor de formatodel cuadrode diálogoOpciones.Conesta ficha,puede personalizarlaformaenque el VBEparece. Figura1-13: Cambiarmiradasdel VBE con la pestañaEditorde formato. La opciónColoresCódigo La opciónde códigode coloresle permite ajustarel colordel textoyel colorde fondoque se muestrapara varioselementosde códigoVBA.Estoesengran medidaunacuestiónde preferenciapersonal.Personalmente,creoque loscolorespordefectoparaserbien.Peropara un cambiode escenario,de vezencuandojugarcon estosajustes. La opciónde fuente La opciónde fuente le permite seleccionarel tipode letraque se utilizaenlosmódulosde VBA.Para obtenerlosmejoresresultados,seguirconunfont-anchofijocomoCourierNew.En una fuente de anchofijo,todoslospersonajessonexactamente lamismaanchura. Esto hace que el códigosea más legibleporque lospersonajesestánmuybienalineados verticalmenteypuedesdistinguirfácilmente múltiplesespacios(que avecesesútil). El valor de Tamaño
  • 48. El ajuste Tamañoespecificael tamañoenpuntosde lafuente enlosmódulos VBA.Esta configuraciónesunacuestiónde preferenciapersonal determinadoporsuresoluciónde pantallade vídeoy lobienque suvistaestá. La opciónMargen Indicador Bar Esta opcióncontrolala visualizaciónde labarra indicadorade margenvertical ensusmódulos. Usteddebe mantenerestaencendido;de locontrario,ustednoserácapaz de ver los indicadoresgráficosútil cuandoestásdepurarel código. La ficha General Figura1-14 muestralas opcionesdisponiblesenlafichaGeneral del cuadrode diálogo Opciones.Encasi todos loscasos,losvalorespredeterminadossonmuybien. El ajuste másimportante enlafichaGeneral esError reventado.Le sugerimosque utilice la Abrete nocontroladaentornoerrores.EstoaseguraExcel puede identificarloserroresal escribirel código. Figura1-14: La fichaGeneral del cuadrode diálogoOpciones. La ficha de acoplamiento La figura1-15 muestralafichaSoporte.Estasopcionesdeterminancómolasdistintasventanas de la VBE comportarse.Cuandose acoplauna ventana,se fijaensulugar a lolargo de uno de losbordesdel programaVBE ventana.Estohace que seamucho másfácil de identificary localizarunaventanaparticular.Si apaga todo atraque,tienesungranlío, confusode las ventanas.Engeneral,los ajustespordefectofuncionanbien.
  • 49. Figura1-15: La pestañade acoplamientodel cuadrode diálogoOpciones. Descubriendoel modelode objetosde Excel En Excel,a lidiarconloslibrosde trabajo,hojasde trabajo y rangosen unabase diaria.Usted probablemente piensade cadade estos"objetos"comoparte de Excel,enrealidadnolos separaen sumente.Sinembargo,Excel piensasobre estosinternamente comoparte de un modelojerárquicollamadoel modelode objetosde Excel.El objetode Excel modelo esun claramente definidounconjuntode objetosque se estructurande acuerdoalas relaciones entre ellos. En estasección,le damosuna breve descripcióndelmodelode objetos,asícomoalgunosde lasotras terminologíasylosconceptosque se encontraránenlospróximos101 macros. La comprensiónde los objetos En el mundoreal,puede describirtodoloque ve como unobjeto.Cuandoustedmiraa su casa, esun objeto.Sucasa tiene habitaciones;esashabitacionestambiénsonobjetos separados.Esashabitacionespuedentenerarmarios. Estos armariossontambiénobjetos.Al pensarensucasa,las habitaciones,ylosarmarios,es posible que verunarelaciónjerárquicaentre ellos.Excel funcionade lamismamanera. En Excel,el objetoApplicationesel objetoque loabarcatodo - similara su casa. Dentroel objetoApplication,Excel tieneunlibro.Dentrode unlibroesunahoja de cálculo.En el interior esun gama. Estosson todoslosobjetosque vivenenunaestructurajerárquica. Para apuntar a un objetoespecíficoenVBA,se puede recorrerel modelode objetos.Por ejemplo, parallegaralaceldaA1 en la hoja1, se puede introducirel código: Application.Activeworbook.Sheets(“Sheet1”).Range(“A1”).Select
  • 50. En la mayoría de loscasos, lajerarquía del modelode objetosse entiende,porloque notiene que escribirtodoslosniveles. Al entrar eneste códigotambiénse que ala celdaA1 porque Excel infiere que te refieresal libroactivo, yla hojaactiva: Range(“A1”).Select De hecho,si ustedtiene yacursoren laceldaA1, sólotiene que utilizarel objetoActiveCell, negandolanecesidadde escribirenrealidadfueradel rango. Activecell.Select ColeccionesComprensión Muchos de losobjetosde Excel pertenecena colecciones.Sucasase encuentradentrode un barrio,por ejemplo, que esunconjuntode casasdenominadasunbarrio.Cadabarriose sienta enuna colecciónde barriosllamanunaciudad.Excel consideracoleccionesde serobjetos mismos. En cada objetolibro,ustedtiene unacolecciónde hojasde trabajo.La colecciónde hojasde trabajoes unaobjetoque se puede pediratravésde VBA.Cada hojade cálculoenel librovive enla ColecciónHojasde trabajo. Si usteddeseahacerreferenciaauna hojade cálculoenla colecciónHojasde trabajo,puede hacer referenciaaellaporsuposición enlacolección,comounnúmerode índice a partirde 1, o por su nombre,comotextocitado.Si ejecutaestos doslíneasde códigoenunlibroque tiene una solahojade cálculollamadaMySheet,amboshacenlomismo cosa: Worksheets(1).Select Worksheets(“MySheet”).Select Si tiene doshojasdel libroactivoque tienenlaMySheetnombresyYourSheet,en ese orden, ustedpuede referirse alasegundahojade cálculo,escribacualquierade estasdeclaraciones: Worksheets(2).Select Worksheets(“YourSheet”).Select Si usteddeseahacerreferenciaauna hojade cálculoenun librollamadoMySheetenunlibro enparticularque no esactiva, debe calificarlareferenciade hojade cálculoyla referenciade libro,de lasiguiente manera: Workbooks(“MyData.xls”).Worksheets(“MySheet”).Select La comprensiónde propiedades Las propiedadessonesencialmente lascaracterísticasde unobjeto.Sucasa tiene uncolor,una cantidadcuadrada, unala edad,y así sucesivamente.Algunaspropiedadesse puedencambiar - al igual que el colorde su casa. otras propiedades nose puede cambiar- como laedadde su casa. Del mismomodo,unobjetoenExcel comoel objetoWorksheettieneunapropiedadde nombre de la hojaque puede ser cambiado,yuna propiedadfilaRows.Countque nose puede. Ustedse refiere alapropiedadde unobjetoporreferenciaal objeto,yluegolapropiedad.Por ejemplo, se puede cambiarel nombre de lahojade cálculocambiandosupropiedadName. En este ejemplo,estácambiandoel nombre Hoja1aMySheet:
  • 51. Sheets(“Sheet1”).Name = “MySheet” Algunaspropiedadessonde sólolectura,loque significaque nose puede asignarunvalora ellosdirectamente –para ejemplo,lapropiedadText del celular.LapropiedadTextle dala aparienciaconformatodel valorenuna celda,perono se puede sobrescribirocambiarlo. MétodosComprensión Los métodossonlasaccionesque se puedenrealizarcontraunobjeto.Ayudaapensaren métodoscomoverbos.Ustedpuede pintarsucasa, porlo que enVBA,que se traduce enalgo así como house.paint Un ejemplosimple de unmétodode Excel esel métodoSelectdel objetoRange: Range(“A1”).Select Otro es el método de copy del objeto Range: Range(“A1”).Copy Algunosmétodostienenparámetrosque puede dictarlaformaenque se aplica.Por ejemplo, el métodoPaste se puede utilizarde maneramáseficazmediante ladefiniciónexplícitadel parámetroDestination ActiveSheet.Paste Destination:=Range(“B1”) Tomar una breve mirada envariables Otro conceptopodrásvera travésde las macrosde este libroesel conceptode variables. Nosotros necesitarádedicarunaspalabrasaeste concepto,yaque juegaun papel importante enla mayoría de las macros que se encontraráaquí. Ustedpuede pensarenvariablescomocontenedoresde memoriaque puede utilizarensus procedimientos.Hay diferentestiposde variables,cadatareade lacelebraciónde untipo específicode datos. Algunosde lostiposcomunesde lasvariablesse veráeneste libroson ➤ String: Almacenadatostextuales ➤ Integer: Almacenalosdatosnuméricosque vandesde 32.768 a 32.767 ➤ Long: Almacenalosdatosnuméricosque vandesde -2147483648 a 2147483647 ➤ Double: Holdspuntoflotante de datosnuméricos ➤ Variant: Almacenacualquiertipode datos ➤ Boolean: Almacenadatosbinariosque retornaVerdaderooFalso ➤ Object: Sostiene unobjetoreal apartirdel modelode objetosde Excel El términoque se utilizaparalacreaciónde unavariable enunamacro está declarandouna variable.Lohace mediante laintroducciónde Dim(Unaabreviaturade dimensión),el nombre de la variable,yluegoel tipo. Porejemplo: Dim MyText as String Dim MyNumber as Integer Dim MyWorksheet as Worksheet
  • 52. Despuésde crearla variable,puede llenarlode datos.Aquíhayalgunosejemplossencillosde cómo crearía una variable yasignarle unvalora la misma: Dim MyText as String Mytext = Range(“A1”).Value Dim MyNumber as Integer MyNumber = Range(“B1”).Value * 25 Dim MyObject as Worksheet Set MyWorksheet = Sheets(“Sheet1”) Los valoresque se asignana lasvariablesamenudoprovienende losdatosalmacenadosen sus células.Sinembargo,el Losvalorestambiénpuedenserinformaciónque ustedmismo cree.Todo depende de latareaencuestión.Este nociónse vuelvemásclaraa medidaque avanza a travésde las macros enel libro. Acerca de las macros eneste libro Comomencionamosenlaintroducción,lasmacrosde este libroestándiseñadospara conseguirque lapuestaenmarcha con VBA enla forma másrápida posible.Cadatacleadas macro una tarea comúnque se beneficiade laautomatización. La ideaaquíes aprenderatravésde laaplicación.Este libroestádiseñadoparaque pueda ponerenpráctica la macro, al obtenerunacomprensiónclarade loque hace la macro y cómo funciona. Obtenciónde losarchivos de ejemplo Cada macro eneste librotiene unarchivode muestraasociada.Estosarchivosde ejemplole dan lacapacidad de verel trabajo macro, así como la posibilidadde revisarel código.También puede utilizarlosarchivosde ejemploparacopiary pegarel códigoen suentorno(enlugarde escribircada macro ena partir de cero).Verla sección"Acercade la Webdel compañero"en la Introducciónde este libroparaobtenerinstruccionescompletassobre cómodescargarel códigode ejemplo. El uso de losarchivos de muestra Cada macro eneste librotiene instruccionesdetalladassobre dónde copiarypegarel código. Debierasabrael archivode ejemploasociadoalamacro, ir al Editorde Visual Basic(pulsando Alt+ F11), y luegocopiarel código.Despuésde que hayascopiadoel código,ustedpuede ira su libro,entraenlaEditor de Visual Basicy pegue el códigoenel lugarapropiado. Tengaen cuentaque enalgunosde losejemplosde macroseneste libro,esnecesariocambiar algúnaspectode la macro para adaptarse a susituación.Porejemplo,lamacro12 de la Parte II demuestracómoabrirtodoslosarchivosde Excel enun directorio.Enese ejemplo, señalamosala carpetaC: Temp directorio.Antesde utilizareste particularmacro,es necesariomodificarlaparte de la macro para apuntar a su directoriode destino. Si una macro no funcionapara usted,esprobablementeporque esnecesariocambiaralgún componente de lamacro.Preste especial atenciónalasdireccionesde lagama,nombresde directorios,ycualesquieraotrosnombresnomodificables. Construimosestosvaloresnomodificablesenlamacro para finesde demostración;conla intencióncompletaque usted,el lector,seríamodificarlamacropara cambiarestosnombres no modificablesparaadaptarse asu situación.
  • 53. Cosas a tener encuenta Aquí hayalgunascosas finalesatenerencuentaal trabajar con las macrosde este libro: ➤ extensionesde archivode macro-enabled:Recuerde que cualquierarchivoque contiene una macro debe tenerel extenstionarchivo.xlsm.Vealasecciónllamada"lasextensionesde archivode macro-enabled"enlapresente parte paramásdetalles. ➤ seguridad Macro: Tengaen cuentaque Excel nose ejecutaráhastaque lasmacros están habilitadas.Comotu aplicarestasmacros,esimportante entenderlospasosque ustedysus clientes tendráque tomarparacumplircon lasmedidasde seguridadde macrosde Excel. La secciónenla presente parte llamado"laseguridadde macrosenExcel 2010" pone de relieve estospasos. ➤ No puede deshaceraccionesde macro:Al trabajarenExcel,a menudose puede deshacer lasacciones que ha tomado.Esto se debe a que Excel guarda unregistro(llamadolapilade deshacer) que registralaúltima 100 accionesque ha tomado.Sinembargo,ejecutaruna macro destruye automáticamente el deshacer apilar,borrarel registrode lasaccionesque ha tomado.Usteddebe tenerestoencuentaa medidaque empiezan escribiryejecutarsus propiasmacros.No se puede deshacerlaacciónse toma enuna macro. ➤ ¿A dónde irdesde aquí:Comose mencionóantes,estasmacrosse handiseñadoparaque puedaempezarconVBA.Si ustedencuentraunapasiónen desarrolloparaExcel VBA,es posible que desee saberdónde obtenerun referenciamásdetalladasobre Excel VBA en general.PermítanosrecomendamosExcel2010 Potencia ProgramaciónconVBA por John Walkenbach(Wiley) comoel siguientepasoensuaprendizaje.Este referenciaesunaguía completade VBA,el buceoprofundoenel modelode objetosde Excel.
  • 54. Parte II Trabajando con Libros de Trabajo Esta parte contiene lasmacros relacionadascon librosde trabajo: apertura ellos,cerrarlos, los protegen,y muchas otras acciones.
  • 55. En estaparte Macro 1 Creaciónde unnuevolibrode trabajodesde cero.......................................... ......................39 Macro 2 Guardar un librode trabajocuandoun particularde la célulase cambia .....................................41 Macro 3 Guardar un librode trabajoantesde cerrar ........................................... ................................43 Macro 4 Protegerunahojade cálculoen el librode trabajoCerrar .......................................... .....................46 Macro 5 desprotegerunahojade cálculoen el librode trabajoabierto .........................................................48 Macro 6 Abrirun librode trabajode una pestañaespecífica......................................... .................................50 Macro 7 Aperturade unlibrode trabajo específicosdefinidosporel usuario ...........................................52 Macro 8 determinarsi unlibrode trabajoya estáabierto..............................................54 Macro 9 determinarsi unlibrode trabajoexiste enundirectorio......................................57 Macro 10 ConexionesActualizartodoslosdatosde librode trabajoenAbrir ........................................59 Macro 11 Cierre todosloslibrosde trabajoa la vez........................................... ............................................61 Macro 12 Abrirtodoslos librosde trabajoenun directorio.......................................... ...............................63 Macro 13 Imprimirtodosloslibrosde trabajoenun directorio.......................................... ...................................65 Macro 14 Prevenirel Cuadernode Trabajode clausurahastaque una célulase llena ..................67 Macro 15 Crear una copiade seguridadde unlibrode trabajo actual con la fechade hoy .............................69
  • 56. Un librono essóloun archivode Excel;tambiénesunobjetoenel modelode objetosde Excel (unajerarquíade programaciónque expone piezasde Excel VBA).Estosignificaque usted puede hacerreferenciaaloslibrosde trabajoa travésde VBA para hacercosas interesantes como creanautomáticamente nuevoslibrosde trabajo,evitarque losusuarioslibros de cierre, automáticamente copiasde loslibrosde trabajo,ymuchomás.Comenzamosnuestralistade 101 macrosaquí con unalistade las macros del librode trabajomás útiles. Si ustedesnuevoa Excel VBA,esmuyrecomendable que primerotomaunamirada rápidaen la Parte I. Allí,se encuentrael fundamentobásicoque necesitaparaentendermuchosde los conceptosque se encuentranenlasmacros de estaParte. El códigopara estaparte se puede encontrarenel sitiowebel compañerode este libro.Ver este librode Introducciónparamás enel sitiowebde compañía. Macro 1: Creación de un nuevolibrode trabajo desde cero A vecesse puede quereronecesitarparacrear unnuevolibroenunaforma automatizada.Por ejemplo, puede sernecesariocopiardatos de unatablay pegarlaenun librode trabajode nuevacreación.La siguiente macrocopiaunrango de celdasde la hojaactivay pastas de los datosen un libronuevo. Cómo funciona Esta macro es relativamente intuitivocomoustedleeatravésde las líneasdel código. Sub Macro1() ‘Step 1 Copy thedata Sheets(“Example 1”).Range(“B4:C15”).Copy ‘Step 2 Create a new workbook Workbooks.Add ‘Step 3 Paste thedata ActiveSheet.Paste Destination:=Range(“A1”) ‘Step 4 Turn off application alerts Application.DisplayAlerts= False ‘Step 5 Save thenewly created workbook ActiveWorkbook.SaveAs _ Filename:=”C:TempMyNewBook.xlsx” ‘Step 6 Turn application alerts back on Application.DisplayAlerts= True End Sub Así escomo funciona esta macro: 1. En el paso1, simplemente copiarlosdatosque vadesde lasceldasB4 a C15. Lo que hay que destacaraquí es que estáespecificandolacopiayla gama por su nombre.Este esuna buenapráctica cuandose estátrabajandocon varioslibrosabiertosal mismotiempo. 2. Estamos utilizandoel métodoAdddel objetoWorkbookparacrearun nuevolibro.Estoes equivale ahacerclicmanualmente File➜New➜BlankDocumentoenlacintade opcionesde Excel. 3. En este paso,se utilizael métodoPaste paraenviarlosdatosque hacopiadoa la celdaA1 de la nuevalibrode trabajo. Preste atenciónal hechode que el códigose refiere al objetoActiveSheet.Al agregarun libro, el libronuevode inmediatoganafoco,convirtiéndose enel libroactivo.Este esel mismo comportamientoque se veríasi tuvieraque añadirunlibroa mano.
  • 57. 4. En el Paso4 del Código,que establece el métodoDisplayAlertsenFalse,convirtiendo efectivamentefueraLasadvertenciasde Excel.Hacemosestoporque enel pasosiguiente del código,ahorramosel reciéncreado librode trabajo.Podemosejecutarestamacrovarias veces,encuyocaso, Excel intentasalvarel presentarvariasveces. ¿Qué sucede cuandointentaguardarun librovariasveces?Asíes - Excel advierte que yaexiste un archivode por ahí con ese nombre y luegole preguntasi deseasobrescribir el archivoya existente.Debidoaque suobjetivoesautomatizarlacreaciónde lanueva libro,que desea suprimiresaadvertencia. 5. En el Paso5, que guarde el archivoutilizandoel métodoSaveAs.Tengaencuentaque estamosentrandoenel pleno caminode laubicaciónde almacenamiento,incluyendoel nombre del archivofinal. 6. Porque nosvolvimosaplicaciónalterafueraenel paso4, tenemosque volveraactivarlos.Si no lohacemos, Excel continúasuprimiendotodaslasadvertenciasparalavidade la sesión actual. Cómo usarlo Para implementarestamacro,puede copiarypegarloenun móduloestándar: 1. Active el Editorde Visual BasicpresionandoALT+ F11. 2. Haga clicen el nombre del proyecto/ libroenlaventanadel proyecto. 3. ElijaInsert➜Module. 4. Escriba o pegue el códigoenel móduloreciéncreado.Esprobable que tengaque cambiarel nombre de la hoja,ladirecciónde rango,y la ubicaciónenGuardar. Macro 2: Guardar un librode trabajo Cuandoun especial de la célulase cambia A veces,ustedpuede estartrabajandoendatosque estansensible que usteddeseaguardar cada vezque un particular,se cambiaceldao rango de celdas.Estamacro le permite definirel rango de celdasque,cuandose cambiada,obligaal libropara guardar. Cómo funciona El secretode este códigoesel métodoIntersect.Porque noqueremossalvarlahojade cálculo cuandolos cambioscelularesviejos,utilizamosel métodoIntersectparadeterminarsi lacélula diana(lacélulaEso cambió) intersectaconlagama hemosespecificadoque el rangode disparo(C5: C16 eneste caso). El métodoIntersectvuelve unade doscosas:o bienunobjetoRange que define laintersección entre lasdos gamasindicadaso nada.Así que enesencia,tenemosque tirarlacéluladiana contra el métodoIntersectparacomprobarsi hayun valorde nada.En ese punto,podemos hacer que el decisiónsi deseaguardarel libro. Private Sub Worksheet_Change(ByVal Target As Range) ‘Step 1: Does the changed range intersect specified range? If Intersect(Target, Range(“C5:C16”)) Is Nothing Then ‘Step 2: If there is no intersection, exit procedure Exit Sub ‘Step 3: If there is an intersection, save the workbook Else ActiveWorkbook.Save ‘Close out theIf statement End If
  • 58. End Sub 1. En el paso1, simplemente estamoscomprobandosi lacéluladiana(lacélulaque ha cambiado) se encuentraenlarango especificadoporel métodoIntersect.Unvalorde Nada significalascataratasde célulasdianafueradel rango especificado. 2. Paso 2 obligaala macro para parar y salirdel procedimientosi nohayintersecciónentre la céluladianayde lagama especificada. 3. Si hay unaintersección,Paso3fuegosel métodoSave del libroactivo,sobrescribiendola versiónanterior. 4. En el paso4, simplemente cierre lainstrucciónIf.Cadavezque unainstanciade un If…Then…Else check, Cheque Si no,debe cerrarel partidocon unfinal correspondiente End If Cómo usarlo Para implementarestamacro,tiene que copiarypegar enel códigode evento Worksheet_Change ventana.Lacolocaciónde lamacro aquí permite que se ejecute cadavez que realice algúncambioenlahoja. 1. Active el Editorde Visual BasicpresionandoALT+ F11. 2. En laventanade proyecto,encuentratuproyecto/ nombre del libroyhagaclic enel signo más juntoa ellaenPara vertodas lashojas. 3. Haga clicen lafichade la que deseaactivarel código. 4. Seleccione el eventoChange de lalistadesplegablede eventos(verFigura2-1). 5. Escriba o pegue el códigoenel móduloreciéncreado,el cambiode ladirecciónde gama para adaptarse a su necesita. Figura2-1: Introduzcao pegarel códigoenla ventanade códigode evento Worksheet_Change. Macro 3: Guardar un librode trabajo Antesde Cierre
  • 59. Esta macro es unaexcelentemanerade protegeralosusuariosde formainadvertidacerrarsu archivoantesde guardar. ¿Cuándoimplementado,estamacrogarantizaque Excel guarda automáticamente antesde cerrarel libro. Excel normalmente adviertealosusuariosque estántratandode cerrar un libroque no son salvos,dandoenuna opciónpara guardarantesde cerrar. Sinembargo,muchosusuarios puedensoplarel pasadoadvertenciaysindarse cuenta,haga clicen No,diciendoExcel para cerrar singuardar. con este macro,estánprotegiendocontraestaguardando automáticamente antesdel cierre. Cómo funciona Este códigose activapor eventosBeforeClose del libro.Cuandointentacerrarel libro,este eventose desencadena,que ejecutael códigodentro.El quiddel códigoessimple - se le preguntaal usuariosi realmente quierecerrarel libro(verFigura2-2).La macro luegoevalúasi el usuariose hace clicenAceptar o Cancelar. Figura2-2: Un cuadro de mensaje se activacuandose intentacerrarel libro. La evaluaciónse hace conuna instrucciónSelectCase.LainstrucciónSelectCase esuna alternativaala instrucciónIf ...Then...Else,que le permite realizarcomprobacionesde estado ensus macros. La construcciónbásicade una instrucciónSelectCase essimple. Select Case <some expression to check> Case Is = <some value> <do something> Case Is=<some other value> <do something else> Case Is=<some 3rd value> <do some 3rd thing> End Select Con unainstrucciónSelectCase,puede realizarmuchasverificacionescondicionales.Eneste caso, estamossimplemente lacomprobaciónde AceptaroCancelar. Echaun vistazoal código. Private Sub Workbook_BeforeClose(Cancel As Boolean) ‘Step 1: Activatethe message box and start thecheck Select Case MsgBox(“Save and close?”, vbOKCancel) ‘Step 2: Cancel button pressed, cancel the close Case Is = vbCancel Cancel = True ‘Step 3: OK button pressed, save the workbook and close Case Is = vbOK ActiveWorkbook.Save ‘Step 4: Close your Select Case statement End Select End Sub En el Paso 1, activamosel cuadrode mensaje comoel cheque condiciónparalainstrucción SelectCase. Aquí,utilizamosel argumentovbOKCancelparaasegurarque el botonesAceptaryCancelarse presentancomoopciones.
  • 60. 2. Si el usuariohace clic enCancelarenel cuadro de mensaje,lamacrodice Excel para cancelar la Workbook_Close evento.Estose hace pasando True al CancelarBoole. 3. Si el usuariohace clic enAceptarenel cuadro de mensaje,Paso3 entraen vigor.Aquíle decimosaExcel para guardar la librode trabajo.Y porque no nosfijamosel Cancelarbooleano True,Excel continúacon el cierre. 4. En el paso4, simplemente cierre lainstrucciónSelectCase.Cadavezque unainstancia de un Seleccione el asunto,debe cerrarloconuncorrespondiente EndSelect. Cómo usarlo Para implementarestamacro,tiene que copiarypegar enel eventoWorkbook_BeforeClose ventanade código.La colocaciónde la macro no permite que se ejecutecadavez que se intentacerrarel libro. 1. Active el Editorde Visual BasicpresionandoALT+ F11 enel teclado. 2. En laventanade proyecto,encuentratuproyecto/ nombre del libroyhagaclic enel signo más juntoa ellaen Para vertodas lashojas. 3. Haga clicen ThisWorkbook. 4. Seleccione el eventoBeforeClose enlalistadesplegable de eventos(verFigura2-3). 5. Escriba o pegue el códigoenel móduloreciéncreado. Figura2-3: Escribao pegue el códigoenlaventanade códigode evento Workbook_BeforeClose. Macro 4: Proteger una hoja de cálculo el Libro de Trabajo Cerrar A vecesesnecesarioenviarel libroporel mundoconla protecciónde lashojasde trabajo específicas. Si ustedencuentraque ustedestáconstantemente protegerydesprotegerlashojasantesde distribuirloslibros,estamacropuede ayudar.
  • 61. Cómo funciona Este códigose activapor eventosBeforeClose del libro.Cuandointentacerrarel libro,este eventose desencadena,que ejecutael códigodentro.Lamacroprotege automáticamente la hojaespecificadaconlacontraseñadada,y luegoguardael libro. Private Sub Workbook_BeforeClose(Cancel As Boolean) ‘Step 1: Protect thesheet with a password Sheets(“Sheet1”).Protect Password:=”RED” ‘Step 2: Save the workbook ActiveWorkbook.Save End Sub 1. En el paso1, estamosespecificandode formaexplícitaque lahojaque queremosproteger - Hoja1, eneste caso. Tambiénestamosproporcionandoel argumentode lacontraseña,lacontraseña:=ROJO. Esto define lacontraseñanecesariopara quitarla protección. Este argumentode la contraseñaescompletamenteopcional.Si omite este conjunto,lahoja será todavíaser protegidos,peroustednonecesitaráunacontraseñaparadesprotegerla misma.Además,tengaencuentaque lascontraseñasde Excel entre mayúsculasyminúsculas, por loque querrá prestaratencióna lacontraseñaexactay capitalizaciónque estáutilizando. 2. Paso 2 le dice a Excel para guardar el libro.Si nosalvamosel libro,laprotecciónde lahoja simplementeaplicamosno estaráenefectolapróximavezque se abre el libro. Cómo usarlo Para implementarestamacro,tiene que copiarypegar enel eventoWorkbook_BeforeClose ventanade código.La colocaciónde la macro aquí permite que se ejecute cadavezque se intentacerrarel libro. 1. Active el Editorde Visual BasicpresionandoALT+ F11. 2. En laventanade proyecto,encuentratuproyecto/ nombre del libroyhagaclic enel signo más juntoa ellaenPara vertodas lashojas. 3. Haga clicen ThisWorkbook. 4. Seleccione el eventoBeforeClose enlalistadesplegable de eventos(verFigura2-4). 5. Escriba o pegue el códigoenel módulode nuevacreación,lamodificacióndel nombre de la hoja(si es necesario) ylacontraseña.Tengaencuentaque ustedpuede protegerhojas adicionalesmediantelaadiciónde declaracionesadicionalesantesde lainstrucción ActiveWorkbook.Save. Figura 2-4:Escriba o pegue el códigoenla ventana de código de eventoWorkbook_BeforeClose.
  • 62. Macro 5: desproteger una hoja de trabajo el libro de trabajo abierto Si ustedha distribuido libros con láminas protegidas, es probable que obtenga los libros de vuelta con el hojas todavía protegidos. A menudo, es necesariodesproteger lashojas de unlibroantes de continuar tu trabajo. Si usted encuentra que desea desproteger continuamente hojas de trabajo, esta macro puede ser justo La entrada. Cómo funciona Este código se activa por eventoOpendel libro. Al abrir un libro de trabajo, este evento se dispara, ejecuta el código dentro. Esta macro desprotege automáticamente la hoja especificada conel dadocontraseña cuandose abre el libro. Private Sub Workbook_Open() ‘Step 1: Protect thesheet with a password Sheets(“Sheet1”).Unprotect Password:=”RED” End Sub La macro explícitamente los nombres de la hoja que queremos desproteger - Hoja1, en este caso. Entonces se pasa el requiere contraseña para desproteger la hoja. Tenga en cuenta que las contraseñas de Excel entre mayúsculas y minúsculas, así que presta atencióna la contraseña exacta ycapitalización que está utilizando. Cómo usarlo Para implementar esta macro, tiene que copiar ypegar en el códigode eventoWorkbook_Open ventana. La colocación de la macro aquípermite que se ejecute cada vez que el libro se abre. 1. Active el Editor de VisualBasic presionandoALT + F11. 2. En la ventana de proyecto, encuentra tu proyecto / nombre dellibroyhaga clic enel signomás juntoa ella en Para ver todas las hojas. 3. Haga clic enThisWorkbook. 4. Seleccione el evento Openenla lista desplegable de eventos (ver Figura 2-5). 5. Escriba o pegue el códigoenel módulo de nueva creación, la modificacióndel nombre de la hoja (si es necesario) y la contraseña. Observe que puede desproteger hojas adicionales agregando adicional declaraciones. Figura 2-5:Escriba o pegue el códigoenla ventana de código de eventoWorkbook_Open. Macro 6: Abrir un libro de trabajo a una ficha específica En algunas situaciones, es imperativo que se iniciael libro enuna hoja de cálculo específica. coneste macro, si un usuarioestá trabajando conel libro, nopuedenir por mal camino, porque el librose inicia en la hoja de cálculo exacto que necesita. Cómo funciona