112
101 Ready-to-Use Excel® Macros Publicado por John Wiley & Sons, Inc. 111 River Street Hoboken, NJ 07030-5774 www.wiley.com Copyright © 2012 por John Wiley & Sons, Inc., Hoboken, Nueva Jersey Publicado por John Wiley & Sons, Inc., Hoboken, Nueva Jersey Publicado simultáneamente en Canadá Ninguna parte de esta publicación puede ser reproducida, almacenada en sistemas de recuperación o transmitida en cualquier forma o por cualquier medio, electrónico, mecánico, fotocopia, grabación, escaneo o de otra manera, salvo lo permitido bajo las Secciones 107 o 108 de la Ley de Propiedad Intelectual de 1976 de Estados Unidos, sin que el permiso previo y por escrito del editor, o autorización mediante el pago de la tarifa correspondiente por copia al Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750 hasta 8400, fax (978) 646-8600. Pide a la Editorial de autorización deberán dirigirse a la Permisos de Departamento, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748 a 6011, fax (201) 748- 6008, o en línea en http://www.wiley.com/go/permissions. Marcas registradas: Wiley y el logotipo de Wiley son marcas comerciales o marcas comerciales registradas de John Wiley & Sons, Inc. y / o su filiales en Estados Unidos y otros países, y no pueden ser utilizados sin autorización escrita. Excel es una marca registrada marca comercial de Microsoft Corporation. Todas las demás marcas son propiedad de sus respectivos dueños. John Wiley & Sons, Inc. no está asociada con ningún producto o proveedor mencionado en este libro. LÍMITE DE RESPONSABILIDAD / RENUNCIA DE GARANTÍA: EL EDITOR Y EL AUTOR NO SON REPRESENTACIÓN O GARANTÍAS CON RESPECTO A LA EXACTITUD O INTEGRIDAD DEL CONTENIDO DE ESTE TRABAJO Y ESPECÍFICAMENTE RECHAZAN TODAS LAS GARANTÍAS, INCLUYENDO SIN LIMITACIÓN LAS GARANTÍAS DE IDONEIDAD PARA UN DETERMINADO

101 ready to-use excel macros

Embed Size (px)

Citation preview

101 Ready-to-Use Excel® Macros

Publicado por

John Wiley & Sons, Inc.

111 River Street

Hoboken, NJ 07030-5774

www.wiley.com

Copyright © 2012 por John Wiley & Sons, Inc., Hoboken, Nueva Jersey

Publicado por John Wiley & Sons, Inc., Hoboken, Nueva Jersey

Publicado simultáneamente en Canadá

Ninguna parte de esta publicación puede ser reproducida, almacenada en sistemas de recuperación o transmitida en cualquier forma o por cualquier medio, electrónico, mecánico, fotocopia, grabación, escaneo o de otra manera, salvo lo permitido bajo las Secciones 107 o 108 de la Ley de Propiedad Intelectual de 1976 de Estados Unidos, sin que el permiso previo y por escrito del editor, o autorización mediante el pago de la tarifa correspondiente por copia al Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750 hasta 8400, fax (978) 646-8600. Pide a la Editorial de autorización deberán dirigirse a la Permisos de Departamento, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748 a 6011, fax (201) 748- 6008, o en línea en http://www.wiley.com/go/permissions.

Marcas registradas: Wiley y el logotipo de Wiley son marcas comerciales o marcas comerciales registradas de John Wiley & Sons, Inc. y / o su filiales en Estados Unidos y otros países, y no pueden ser utilizados sin autorización escrita. Excel es una marca registrada marca comercial de Microsoft Corporation. Todas las demás marcas son propiedad de sus respectivos dueños. John Wiley & Sons, Inc. no está asociada con ningún producto o proveedor mencionado en este libro.

LÍMITE DE RESPONSABILIDAD / RENUNCIA DE GARANTÍA: EL EDITOR Y EL AUTOR NO SON REPRESENTACIÓN O GARANTÍAS CON RESPECTO A LA EXACTITUD O INTEGRIDAD DEL CONTENIDO DE ESTE TRABAJO Y ESPECÍFICAMENTE RECHAZAN TODAS LAS GARANTÍAS, INCLUYENDO SIN LIMITACIÓN LAS GARANTÍAS DE IDONEIDAD PARA UN DETERMINADO

FINALIDAD. NINGUNA GARANTÍA PUEDE SER CREADA NI EXTENDIDA POR VENTAS O MATERIALES PROMOCIONALES. EL ASESORAMIENTO Y ESTRATEGIAS CONTENIDAS EN ESTE DOCUMENTO NO PUEDE SER ADECUADO PARA CADA SITUACIÓN. ESTE TRABAJO SE VENDE CON EL ENTENDIMIENTO Que la editorial no se dedica a prestar LEGAL, CONTABILIDAD U OTROS SERVICIOS PROFESIONALES.

SI AYUDA PROFESIONAL SE REQUIERE, LOS SERVICIOS DE UN PROFESIONAL COMPETENTE DEBE Buscarse. NI EL EDITOR NI EL AUTOR SERÁN RESPONSABLES POR DAÑOS CAUSADOS esta norma el nacimiento. LA HECHO DE QUE UNA ORGANIZACIÓN O SITIO WEB SE HACE REFERENCIA EN ESTE TRABAJO COMO CITACIÓN Y / O UN POTENCIAL

FUENTE DE INFORMACIÓN NO SIGNIFICA QUE EL AUTOR O EL EDITOR Hace suya la INFORMACIÓN EL SITIO WEB ORGANIZACIÓN O se disponga o recomendaciones que pueda hacer. Además, LECTORES Deben saber que SITIOS WEB DE INTERNET QUE FIGURAN EN ESTE TRABAJO PUEDEN HABER CAMBIADO O DESAPARECIDO ENTRE CUANDO ESTE TRABAJO FUE ESCRITO Y CUANDO SE LEA.

Para obtener información general sobre nuestros productos y servicios, por favor póngase en contacto con nuestro Departamento de atención al cliente dentro de la Estados Unidos en 877-762-2974, fuera de los EE.UU. en 317-572-3993 o enviar por fax 317-572-4002.

Para obtener asistencia técnica, visite www.wiley.com/techsupport.

Wiley publica en una variedad de formatos impresos y electrónicos y de impresión bajo demanda. Parte del material incluido con la norma versiones impresas de este libro no pueden ser incluidos en los libros electrónicos o en la impresión bajo demanda. Si este libro se refiere a los medios de comunicación tales como un CD o DVD que no está incluido en la versión que haya adquirido, usted puede descargar este material en http: // booksupport.

wiley.com. Para obtener más información acerca de los productos de Wiley, visite www.wiley.com.

Biblioteca del Congreso de control el número está disponible en el 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)

Fabricado en los Estados Unidos de América

10 9 8 7 6 5 4 3 2 1

Acerca de los autores

Mike Alexander es un Microsoft Certified Application Developer (MCAD) y autor de varios libros en el análisis de negocio avanzado con Microsoft Access y Excel. Cuenta con más de 15 años de experiencia consultoría y desarrollo de soluciones de Office. Michael ha sido nombrado MVP de Microsoft para su constantes contribuciones a la comunidad Excel. En su tiempo libre, se encuentra con un sitio tutorial gratuito, www.datapigtechnologies.

com, donde comparte Excel y Access consejos.

John Walkenbach es autor de más de 50 libros de hojas de cálculo y vive en el sur de Arizona. Visita su sitio web en http://spreadsheetpage.com.

Dedicación

A María

- Mike Alexander

Agradecimientos de los autores

Nuestros más profundos gracias a la brillante equipo de profesionales que ayudaron a llevar este libro a buen término.

Reconocimientos del editor

Estamos orgullosos de este libro; envíenos sus comentarios http://dummies.custhelp.com.

Para otros comentarios, por favor póngase en contacto con nuestro Departamento de atención al cliente dentro de los EE.UU. al 877-762-2974,

fuera de los EE.UU. al 317-572-3993, o fax 317-572-4002.

Algunas de las personas que ayudaron a llevar este libro al mercado son las siguientes:

Adquisiciones y editorial

Editor del proyecto: Linda Morris

Adquisiciones Editor Senior: Katie Feltman

Copy Editor: Linda Morris

Editor Técnico: Juan Walkenbach

Gerente editorial: Jodi Jensen

Asistente editorial: Leslie Saxman

Sr. Asistente editorial: Cherie Caso

Servicios Composición

Coordinador del proyecto: Sheree Montgomery

Diseño y artes gráficas: Carrie A. Cesavice,

Andrea Hornberger

Indexador: Indexación BIM y Corrección Servicios

Editorial y de Redacción en Tecnología Dummies

Richard Swadley, Vicepresidente y Ejecutivo del Grupo Editorial

Andy Cummings, Vicepresidente y Editor

María Bednarek, Director Ejecutivo de Adquisiciones

Mary C. Corder, Director Editorial

La publicación de los maniquíes del Consumidor

Kathleen Nebenhaus, Vicepresidente y Editor Ejecutivo

Servicios Composición

Debbie Stailey, Director de Servicios de Composición

Mapa de contenidos

Introducción. 1

Parte I: Introducción a Excel Macros .......................................... 5

Parte II: Trabajar con libros de trabajo ............................................ ........ 37

Parte III: Automatización de tareas Hoja de trabajo con macros .......................... 71

Parte IV: Selección y modificación de Rangos ....................................... 103

Parte V: Trabajo con datos ............................................ ............... 137

Parte VI: Trabajar con tablas dinámicas ............................................ .... 187

Parte VII: Manipulación Gráficos con Macros .................................... 233

Parte VIII: E-Mailing desde Excel .......................................... ........... 253

Parte IX: La integración de Excel y otras aplicaciones ofimáticas ................. 273

Índice. 302

Tabla de contenidos

Introducción. 1

Temas Cubiertos. 1

Lo que necesitas saber. 2

Lo que usted necesita tener. 2

Cómo está organizado este libro. 2

Parte I: Primeros pasos con Excel Macros. 3

Parte II: Trabajar con libros de trabajo. 3

Parte III: Automatización de tareas Hoja de trabajo con macros. 3

Parte IV: La selección y modificación de rangos. 3

Parte V: Trabajo con datos. 3

Parte VI: Trabajar con tablas dinámicas. 3

Parte VII: Manipulación Gráficos con macros. 3

Parte VIII: E-Mailing desde Excel. 4

Parte IX: La integración de Excel y otras aplicaciones de Office. 4

Convenios en este libro. 4

¿Qué significan los iconos. 4

Sobre el sitio web del compañero. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Parte I: Introducción a Excel Macros .................................. 5

Familiarizarse con los fundamentos de grabación de macros. 7

Comparando absoluta y relativa de grabación de macros. 11

Grabación de macros con referencias absolutas. 11

Grabación de macros con referencias relativas. 13

En cuanto a otros conceptos de grabación de macros. 15

Extensiones de archivo Macro habilitado. 15

La seguridad de macros en Excel 2010. 16

Las ubicaciones de confianza. 16

El almacenamiento de macros en el libro de macros personal. 17

Asignar una macro a un botón y otros controles de formulario. 17

La colocación de una macro en la barra de herramientas de acceso rápido. 19

Trabajando En el Editor de Visual Basic. 19

La activación de la VBE. 19

Componentes VBE comprensión. 19

Trabajar con la ventana del proyecto. 21

Adición de un nuevo módulo de VBA. 22

Extracción de un módulo de VBA. 23

Trabajar con una ventana de código. 24

Minimizar y maximizar ventanas. 24

Obtener código VBA en un módulo. 25

Personalización de la VBA Medio Ambiente. 27

La pestaña Editor. 27

La pestaña Editor de formato. 29

La pestaña General. 30

La ficha de acoplamiento. 31

Descubriendo el modelo de objetos de Excel. 31

La comprensión de los objetos. 31

Colecciones comprensión. 32

La comprensión de las propiedades. 33

Métodos de comprensión. 33

Tomar una breve mirada en variables. 34

Acerca de las macros en este libro. 35

Obtención de los archivos de ejemplo. 35

El uso de los archivos de ejemplo. 35

Cosas a tener en cuenta. 36

Parte II: Trabajar con libros de trabajo ............................................ 37

Macro 1: Creación de un nuevo libro de trabajo desde cero. 39

Cómo funciona. 39

Cómo usarlo. 40

Macro 2: Guardar un libro de trabajo cuando un particular de la célula se cambia. 41

Cómo funciona. 41

Cómo usarlo. 42

Macro 3: Guardar un libro de trabajo antes del cierre. 43

Cómo funciona. 43

Cómo usarlo. 44

Macro 4: Proteger una hoja de cálculo en el libro de trabajo en Cerrar. 46

Cómo funciona. 46

Cómo usarlo. 46

Macro 5: desproteger una hoja de trabajo en libro abierto. 48

Cómo funciona. 48

Cómo usarlo. 48

Macro 6: Abrir un libro de trabajo a una ficha específica. 50

Cómo funciona. 50

Cómo usarlo. 50

Macro 7: Abrir un libro de trabajo específicos definidos por el usuario. 52

Cómo funciona. 52

Cómo usarlo. 53

Macro 8: Determinar si un libro está abierto. 54

Cómo funciona. 54

Cómo usarlo. 56

Macro 9: Determinar si un libro existe en un directorio. 57

Cómo funciona. 57

Cómo usarlo. 58

Macro 10: Conexiones Actualizar todos los datos de libro de trabajo en Abrir. 59

Cómo funciona. 59

Cómo usarlo. 59

Macro 11: Cierre todos los libros a la vez. 61

Cómo funciona. 61

Cómo usarlo. 61

Macro 12: Abre todos los libros en un directorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Cómo funciona. 63

Cómo usarlo. 64

Macro 13: Imprimir todos los libros de trabajo en un directorio. 65

Cómo funciona. 65

Cómo usarlo. 66

Macro 14: Prevención del Libro de Trabajo de clausura hasta que una célula se llena. 67

Cómo funciona. 67

Cómo usarlo. 68

Macro 15: Crear una copia de seguridad de un libro de trabajo actual con la fecha de hoy. 69

Cómo funciona. 69

Cómo usarlo. 70

Parte III: Automatización de tareas Hoja de trabajo con macros ................... 71

Macro 16: Agregar y Nombra una nueva hoja. 73

Cómo funciona. 73

Cómo usarlo. 74

Macro 17: Eliminar todo pero la hoja de cálculo activa. 75

Cómo funciona. 75

Cómo usarlo. 76

Macro 18: Ocultar todo pero la hoja de cálculo activa. 77

Cómo funciona. 77

Cómo usarlo. 78

Macro 19: Unhide todas las hojas de un libro. 79

Cómo funciona. 79

Cómo usarlo. 79

Macro 20: Hojas de Desplazamiento. 81

Cómo funciona. 81

Cómo usarlo. 81

Macro 21: Clasificar por Nombre Hojas de trabajo. 83

Cómo funciona. 83

Cómo usarlo. 84

Macro 22: Grupo de hojas de trabajo por color. 85

Cómo funciona. 85

Cómo usarlo. 86

Macro 23: Copiar una hoja de trabajo para un nuevo libro. 87

Cómo funciona. 87

Cómo usarlo. 87

Macro 24: Crear un nuevo libro para cada hoja. 88

Cómo funciona. 88

Cómo usarlo. 89

Macro 25: Imprimir Hojas de trabajo especificados. 90

Cómo funciona. 90

Cómo usarlo. 90

Macro 26: Proteger todas las hojas. 92

Cómo funciona. 92

Cómo usarlo. 92

Macro 27: desproteger todos Hojas de trabajo. 94

Cómo funciona. 94

Cómo usarlo. 95

Macro 28: Crear una tabla de contenido para las hojas de cálculo. 96

Cómo funciona. 96

Cómo usarlo. 98

Macro 29: Acercamiento y alejamiento de una hoja de trabajo con doble clic. 99

Cómo funciona. 99

Cómo usarlo. 100

Macro 30: Resalte la fila activa y Columna. 101

Cómo funciona. 101

Cómo usarlo. 102

Parte IV: Selección y rangos Modificación ............................... 103

Macro 31: Selección y formateo de un rango. 105

Cómo funciona. 105

Cómo usarlo. 107

Macro 32: Crear y seleccionar rangos con nombre. 108

Cómo funciona. 109

Cómo usarlo. 110

Macro 33: Enumerar A través de un rango de celdas. 111

Cómo funciona. 111

Cómo usarlo. 112

Macro 34: Seleccionar y Formato Todos los rangos con nombre. 113

Cómo funciona. 113

Cómo usarlo. 114

Macro 35: Inserción de filas en blanco en un rango. 115

Cómo funciona. 115

Cómo usarlo. 116

Macro 36: en Mostrar todas las filas y columnas. 117

Cómo funciona. 117

Cómo usarlo. 117

Macro 37: Eliminación de filas en blanco. 118

Cómo funciona. 118

Cómo usarlo. 119

Macro 38: Eliminación de columnas en blanco. 120

Cómo funciona. 120

Cómo usarlo. 121

xii

Macro 39: Seleccionar y Formato Todos fórmulas en un libro de trabajo. 122

Cómo funciona. 122

Cómo usarlo. 123

Macro 40: Buscar y seleccionar la primera fila en blanco o columna. 125

Cómo funciona. 125

Cómo usarlo. 127

Macro 41: Aplicar color alternativo bandas. 128

Cómo funciona. 128

Cómo usarlo. 129

Macro 42: ordenar un rango de Double-Click. 130

Cómo funciona. 130

Cómo usarlo. 131

Macro 43: Límite Movimiento rango a un área en particular. 132

Cómo funciona. 132

Cómo usarlo. 132

Macro 44: Dinámicamente Ajuste el área de impresión de una hoja de cálculo. 134

Cómo funciona. 134

Cómo usarlo. 134

Parte V: Trabajo con datos ............................................ ....... 137

Macro 45: Copiar y pegar un rango. 139

Cómo funciona. 139

Cómo usarlo. 140

Macro 46: Convertir todas las fórmulas en un rango de valores. 141

Cómo funciona. 141

Cómo usarlo. 142

Macro 47: Realice el texto en columnas de comandos en todas las columnas. 143

Cómo funciona. 144

Cómo usarlo. 146

Macro 48: Convertir Trailing Minus signos. 147

Cómo funciona. 147

Cómo usarlo. 149

Macro 49: Recorte Espacios de todas las celdas de un rango. 150

Cómo funciona. 150

Cómo usarlo. 151

Macro 50: Truncar códigos postales a los Cinco izquierda. 152

Cómo funciona. 152

Cómo usarlo. 154

Macro 51: Relleno células con ceros. 155

Cómo funciona. 155

Cómo usarlo. 157

Macro 52: Vuelva a colocar las células Blanks con un Valor. 158

Cómo funciona. 158

Cómo usarlo. 160

xiii

Macro 53: Añadir texto a la izquierda o derecha de sus células. 161

Cómo funciona. 161

Cómo usarlo. 162

Macro 54: Crear un Cleanup Super Macro de Datos. 163

Cómo funciona. 163

Cómo usarlo. 165

Macro 55: Personajes de Limpieza no imprimibles. 166

Cómo funciona. 166

Cómo usarlo. 167

Macro 56: Resaltar duplicados en una serie de datos. 168

Cómo funciona. 168

Cómo usarlo. 169

Macro 57: Ocultar todas las filas, pero los que contienen datos duplicados. 170

Cómo funciona. 170

Cómo usarlo. 171

Macro 58: selectivamente Ocultar Autofiltro desplegables Flechas. 172

Cómo funciona. 173

Cómo usarlo. 174

Macro 59: Copiar filas filtradas de un nuevo libro. 175

Cómo funciona. 175

Cómo usarlo. 176

Macro 60: Crear una nueva hoja para cada elemento de un Autofiltro. 177

Cómo funciona. 177

Cómo usarlo. 182

Macro 61: Mostrar Columnas filtradas en la barra de estado. 183

Cómo funciona. 183

Cómo usarlo. 185

Parte VI: Trabajar con tablas dinámicas ........................................ 187

Macro 62: Crear una tabla dinámica al revés-compatible. 189

Cómo funciona. 190

Cómo usarlo. 191

Macro 63: Actualizar Todo tablas dinámicas libro. 192

Cómo funciona. 192

Cómo usarlo. 193

Macro 64: Crear un resumen de inventario de tabla dinámica. 194

Cómo funciona. 194

Cómo usarlo. 196

Macro 65: Haga todas las tablas dinámicas usen el mismo pivote caché. 197

Cómo funciona. 197

Cómo usarlo. 198

Macro 66: Ocultar Todos los subtotales en una tabla dinámica. 199

Cómo funciona. 199

Cómo usarlo. 201

xiv

Macro 67: Ajuste Todos los Títulos Pivot de campos de datos. 202

Cómo funciona. 202

Cómo usarlo. 203

Macro 68: Establecer todos los articulos de Datos de Suma. 204

Cómo funciona. 204

Cómo usarlo. 206

Macro 69: Aplicar formato de número para todos los elementos de datos. 207

Cómo funciona. 207

Cómo usarlo. 210

Macro 70: Ordenar Todos los campos en orden alfabético. 211

Cómo funciona. 211

Cómo usarlo. 212

Macro 71: Aplicar Orden personalizado para elementos de datos. 213

Cómo funciona. 213

Cómo usarlo. 214

Macro 72: Aplicar restricciones de tabla dinámica. 215

Cómo funciona. 215

Cómo usarlo. 216

Macro 73: Aplicar Restricciones Pivot de campo. 217

Cómo funciona. 217

Cómo usarlo. 218

Macro 74: Eliminar automáticamente la tabla pivote hojas de desglose. 219

Cómo funciona. 219

Cómo usarlo. 221

Macro 75: Imprimir Pivot Table para cada filtro de informe de artículo. 223

Cómo funciona. 223

Cómo usarlo. 225

Macro 76: Crear nuevo libro de trabajo para cada filtro de informe de artículo. 226

Cómo funciona. 226

Cómo usarlo. 228

Macro 77: Transposición del rango de datos completa con una tabla dinámica. 229

Cómo funciona. 230

Cómo usarlo. 231

Parte VII: Manipulación Gráficos con Macros ............................. 233

Macro 78: Cambiar el tamaño de todas Listas en una hoja de cálculo. 235

Cómo funciona. 235

Cómo usarlo. 236

Macro 79: Alinear un gráfico a un rango específico. 237

Cómo funciona. 237

Cómo usarlo. 238

Macro 80: Crear un conjunto de gráficos desconectados. 239

Cómo funciona. 239

Cómo usarlo. 240

xv

Macro 81: Imprimir todos Listas en una hoja de cálculo. 241

Cómo funciona. 241

Cómo usarlo. 242

Macro 82: Etiqueta primer y último punto de gráfico. 243

Cómo funciona. 243

Cómo usarlo. 245

Macro 83: Carta de color de la serie a la fuente de teléfono Colors. 246

Cómo funciona. 246

Cómo usarlo. 249

Macro 84: Puntos de color Gráfico de datos para que coincida con la fuente de células Colores. 250

Cómo funciona. 250

Cómo usarlo. 252

Parte VIII: E-Mailing desde Excel .......................................... .... 253

Macro 85: Mailing Active libro como un archivo adjunto. 255

Cómo funciona. 255

Cómo usarlo. 257

Macro 86: Mailing un rango específico como Adjunto. 258

Cómo funciona. 258

Cómo usarlo. 259

Macro 87: Mailing una sola hoja como un archivo adjunto. 260

Cómo funciona. 260

Cómo usarlo. 261

Macro 88: Enviar el correo con un enlace a nuestro libro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0,262

Cómo funciona. 262

Cómo usarlo. 263

Macro 89: Mailing Direcciones de todo el correo electrónico en nuestra lista de contactos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0,264

Cómo funciona. 264

Cómo usarlo. 265

Macro 90: Ahorro Todos los archivos adjuntos a una carpeta. 266

Cómo funciona. 266

Cómo usarlo. 268

Macro 91: Ahorro Ciertos archivos adjuntos a una carpeta. 269

Cómo funciona. 269

Cómo usarlo. 271

Parte IX: La integración de Excel y otras aplicaciones ofimáticas .......... 273

Macro 92: Ejecución de una consulta de Access desde Excel. 275

Cómo funciona. 275

Cómo usarlo. 277

Macro 93: Ejecución de una macro de acceso desde Excel. 278

Cómo funciona. 278

Cómo usarlo. 279

xvi

Macro 94: Apertura de un informe de acceso desde Excel. 280

Cómo funciona. 280

Cómo usarlo. 281

Macro 95: Apertura de un formulario de Access desde Excel. 282

Cómo funciona. 282

Cómo usarlo. 283

Macro 96: espacio en una base de datos Access desde Excel. 284

Cómo funciona. 284

Cómo usarlo. 285

Macro 97: Envío de datos de Excel a un documento de Word. 286

Cómo funciona. 286

Cómo usarlo. 288

Macro 98: Simulación de combinar correspondencia con un documento de Word. 289

Cómo funciona. 289

Cómo usarlo. 292

Macro 99: Envío de datos de Excel a una presentación de PowerPoint. 293

Cómo funciona. 293

Cómo usarlo. 295

Macro 100: El envío de todos Listas de Excel a una presentación de PowerPoint. 296

Cómo funciona. 296

Cómo usarlo. 298

Macro 101: Convertir un libro de trabajo en una presentación de PowerPoint. 299

Cómo funciona. 299

Cómo usarlo. 301

Introducción

En su sentido más amplio, una macro de Excel es una secuencia de instrucciones que automatiza algún aspecto de Excel para que pueda trabajar de manera más eficiente y con menos errores. Usted puede crear una macro, por ejemplo, para formatear e imprimir su informe de ventas de fin de mes. Después se desarrolló la macro, puede ejecutar el macro para realizar muchos procedimientos que requieren mucho tiempo de forma automática.

Las macros están escritas en VBA, siglas de Visual Basic para Aplicaciones. VBA es en realidad una programación lenguaje desarrollado por Microsoft, y es una herramienta que se utiliza para desarrollar programas que controlan Excel.

La terminología de programación de Excel puede ser un poco confuso. Por ejemplo, VBA es un lenguaje de programación, sino que también sirve como un lenguaje de macros. ¿Cómo se llama algo escrito en VBA y ejecutado en Excel? ¿Es una macro o se trata de un programa? Sistema de Ayuda de Excel a menudo se refiere a los procedimientos de VBA como macros, por lo esta es la terminología utilizada en este libro. Pero también se puede llamar a código VBA un programa.

También verá el término automatizar lo largo de este libro. Este término significa que una serie de pasos son completado automáticamente. Por ejemplo, si escribes una macro que agrega color a algunas células, imprime el hoja de cálculo, y luego elimina el color, usted ha automatizado esos tres pasos.

La gente utiliza Excel para miles de diferentes tareas. Éstos son sólo algunos ejemplos:

➤ Mantener listas de cosas tales como nombres y transacciones de los clientes

➤ Presupuestación y previsión

➤ Analizar datos científicos

➤ Creación de facturas y otras formas

➤ Desarrollar tablas de datos

La lista podría seguir y seguir. El punto es simplemente que Excel se utiliza para una amplia variedad de tareas, y todos los que lean este libro tiene diferentes necesidades y expectativas con respecto a Excel. Una cosa virtualmente cada lector tiene en común es la necesidad de automatizar algún aspecto de Excel. Eso es lo que VBA (y esto libro) se trata.

Temas Cubiertos

Este libro aborda el tema de las macros de Excel con el reconocimiento de que la programación con VBA toma tiempo y práctica - el tiempo que usted no puede tener en este momento. De hecho, muchos analistas no tienen el lujo de tomar un par de semanas de descanso para convertirse en un experto en VBA. Así que en lugar de la misma en general

visión general de los temas de VBA, este libro ofrece 101 del mundo real más utilizado Excel Macros.

Cada segmento del libro describe un problema común que necesita ser resuelto y proporciona la real macro de Excel para resolver el problema, junto con una explicación detallada de cómo funciona la macro y dónde utilizar la macro.

Lo que necesitas saber

Con el fin de obtener el máximo provecho de este libro, que se supone que tiene un cierto conjunto de habilidades. El candidato ideal para este libro tiene experiencia trabajando con datos en Excel, junto con la familiaridad con el básico conceptos de análisis de datos, tales como trabajar con tablas, la agregación de datos, realizar cálculos, y la creación de gráficos.

Lo que hay que tener

Usted necesitará la siguiente con el fin de descargar y utilizar los ejemplos destacados en este libro.

➤ Una copia con licencia de Excel 2007 o Excel 2010

➤ Una conexión a Internet para poder descargar los archivos de ejemplo

Cómo está organizado este libro

El estilo de este libro está en el formato de los Consejos y trucos libros, donde cada segmento muestra cómo para realizar una tarea común a través de macros de Excel. Esto le permite, nuestro lector estimada, utiliza el libro como un referencia práctica para la búsqueda de una macro que resuelve un problema común.

Cada segmento del libro sigue esta sencilla construcción:

➤ El problema

➤ La solución macro

➤ ¿Cómo funciona?

Después de leer cada segmento de este libro, usted debería ser capaz de

➤ implementar inmediatamente la macro requerida Excel

➤ Comprender cómo funciona la macro dados

➤ Reutilizar la macro dada en otros libros o en conjunto con otras macros

Los capítulos de este libro se agrupan en nueve partes principales.

Parte I: Primeros pasos con Excel Macros

Parte I sirve como una introducción a Excel Macros y VBA en general. Aquí, usted obtiene un resumen conciso de cómo funciona VBA con Excel, que le da el fundamento básico que necesita para trabajar con los 101 macros en este libro.

Parte II: Trabajar con libros de trabajo

En la Parte II se descubre cómo hacer referencia a libros de trabajo a través de VBA para hacer cosas interesantes como automáticamente crear nuevos libros, evitar que los usuarios libros de cierre, copias de seguridad automáticas libros, y mucho más.

Parte III: Automatización de tareas Hoja de trabajo con macros

Parte III se centra en las tareas de automatización relacionados con hojas de cálculo. Tanto si se trata unhiding todas las hojas en una libro, o imprimir todas las hojas al mismo tiempo, muchas de las tareas se pueden automatizar para ahorrar tiempo y ganar eficiencia. En esta parte cubrimos algunas de las macros más útiles relacionados con las hojas de trabajo.

Parte IV: Selección y rangos Modificación

Cuando usted está tratando de automatizar su trabajo a través de VBA, usted encontrará que la navegación de su hoja de cálculo sigue siendo una parte importante del proceso de zutomatización. En muchos casos, es necesario navegar y manipular dinámicamente rangos de Excel, tal como lo haría manualmente - sólo a través de VBA

código. Parte IV proporciona algunas de las macros más utilizados en términos de navegación y de trabajo con rangos.

Parte V: Trabajo con datos

Parte V muestra algunas de las macros más útiles que puede utilizar para transformar dinámicamente los datos en sus libros. La idea es que se puede ejecutar varias de estas macros en una secuencia que, básicamente, automatiza el lavado y la conformación de sus datos.

Parte VI: Trabajar con tablas dinámicas

Algunas tareas relacionadas tabla dinámica-no son fáciles de manejar con la grabadora de macros. Aquí es donde la Parte VI centra su atención. Aquí, cubrimos los escenarios más comunes donde macros ayudan a ganar eficiencia cuando se trabaja con tablas dinámicas.

Parte VII: Manipulación Gráficos con macros

En la Parte VII a descubrir cómo VBA puede ayudar a ahorrar tiempo y trabajar con gráficos de manera más eficiente. Aquí hacer frente a los aspectos de la cartografía que se prestan a un poco de automatización.

Parte VIII: E-correo desde Excel

En la Parte VIII descubrir algunos ejemplos de cómo se puede integrar Excel y Outlook. Aquí ves ejemplos de macros que envían mensajes de correo electrónico, enviar archivos adjuntos, y tirar de archivos directamente de Outlook.

Parte IX: La integración de Excel y otras aplicaciones de OfficeDatos de Excel se utiliza a menudo en otras aplicaciones de Office: Microsoft Access, Microsoft Word y Microsoft

PowerPoint. En la Parte IX nos fijamos en algunas de las macros útiles que puedes poner en práctica para tener Excel integrar con algunas otras aplicaciones de Office.

Convenios en este libro Los comandos de menú de este libro están separados por una flecha (➜). Por ejemplo, File➜Open significa ir a En el menú Archivo, haga clic en él y seleccione Abrir en la lista que aparece.

Todo el código en este libro aparece en una fuente monoespaciada, al igual que los métodos, propiedades, valores y argumentos.

Texto de los tipos de lectores aparece en negrita.

Texto de marcador de posición que debe ser reemplazado con información específica a sus necesidades aparece en cursiva.

¿Qué significan los iconos

Utilizamos iconos Tip para indicar un puntero se debe archivar para futuras consultas. Consejos suele hacer su vida más fácil.

El icono Nota indica que debe prestar especial atención a esto.

Utilizamos iconos Precaución para indicar las cosas que pueden causar problemas.

Sobre el sitio web del compañero

Cada macro en este libro tiene un archivo de muestra asociada. Estos archivos de ejemplo le permiten ver la macro en acción, así como que le da la posibilidad de revisar el código. Los archivos de ejemplo se pueden descargar desde sitio web complementario de este libro en www.wiley.com/go/101excelmacros.

PARTE I

Empezando con Excel Macros

Esta parte es una introducción a las macros de Excel, que abarca todo lo que necesita saber acerca de las macros de Excel y

VBA para empezar con los 101 macros en todo el resto de este libro.

En esta parte

Familiarizarse con los fundamentos de grabación de macros. . . . . . . . . . . . . . . . . . . . . . . . . . 7

Comparando absoluta y relativa de grabación de macros. . . . . . . . . . . . . . . . . . . . . 11

Grabación de macros con referencias absolutas. . . . . . . . . . . . . . . . . . . . . . . . 11

Grabación de macros con referencias relativas. . . . . . . . . . . . . . . . . . . . . . . . . . 13

En cuanto a otros conceptos de grabación de macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Extensiones de archivo Macro habilitado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

La seguridad de macros en Excel 2010. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Las ubicaciones de confianza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

El almacenamiento de macros en el libro de macros personal. . . . . . . . . . . . . . . . . . 17

Asignar una macro a un botón y otros controles de formulario. . . . . . . . . . . . . 17

La colocación de una macro en la barra de herramientas de acceso rápido. . . . . . . . . . . . . . . . . . . . . . . 19

Trabajando En el Editor de Visual Basic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

La activación de la VBE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Componentes VBE comprensión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Trabajar con la ventana del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Adición de un nuevo módulo de VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Extracción de un módulo de VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Trabajar con una ventana de código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Minimizar y maximizar ventanas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Obtener código VBA en un módulo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Personalización de la VBA Medio Ambiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

La pestaña Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

La pestaña Editor de formato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

La pestaña General. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

La ficha de acoplamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Descubriendo el modelo de objetos de Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

La comprensión de los objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Colecciones comprensión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

La comprensión de las propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Métodos de comprensión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Tomar una breve mirada en variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Acerca de las macros en este libro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Obtención de los archivos de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

El uso de los archivos de ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Cosas a tener en cuenta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Introducción

Excel Macros

Usted no necesita ser un usuario avanzado para crear y utilizar macros VBA simples. Incluso los usuarios ocasionales pueden simplemente

encienda macro grabador de Excel.

Grabación de una macro es como la programación de un número de teléfono en su teléfono celular. Usted primero marcar manualmente

y guardar un número. Luego, cuando lo desea, puede volver a marcar los números con el toque de un botón.

Al igual que con los números en un teléfono celular, puede grabar sus acciones en Excel mientras

realizarlas. Mientras graba, Excel se llena en el fondo, la traducción de las pulsaciones del teclado y

clics del ratón para código VBA escrito. Después de que haya grabado una macro, puede reproducir esas acciones

cualquier momento que desee.

Esta pieza sirve como una introducción a Excel Macros y VBA en general. Aquí, le damos un

resumen conciso de cómo funciona VBA con Excel, que le da el fundamento básico que necesita para trabajar

con los 101 macros que figuran en este libro.

Familiarizarse con

Conceptos básicos de grabación de macros

Para iniciar la grabación de su primera macro, es necesario encontrar primero la grabadora de macros, que está en el

Ficha Programador. Desafortunadamente, Excel que sale de la caja con la ficha Programador escondido - usted puede

no verlo en su versión de Excel en un primer momento. Si va a trabajar con macros VBA, usted querrá hacer

Asegúrese de que la ficha Programador es visible. Para mostrar esta ficha

1. Seleccione Opciones Office➜Excel.

2. En el cuadro de diálogo Opciones de Excel, seleccione Personalizar cinta de opciones.

3. En el cuadro de lista de la derecha, coloque una marca de verificación junto al desarrollador.

4. Haga clic en Aceptar para volver a Excel.

Ahora que tiene la ficha Programador muestra en la cinta de opciones de Excel, se puede poner en marcha el Macro

Grabadora seleccionando Grabar macro de la ficha Programador. Esto activa el cuadro de diálogo Grabar macro

caja, como se muestra en la Figura 1-1.

Figura 1.1: El cuadro de diálogo Grabar macro.

Estas son las cuatro partes del cuadro de diálogo Grabar macro:

➤ Nombre de macro: Esto debe explicarse por sí mismo. Excel da un nombre por defecto a la macro,

como Macro1, pero usted debe dar su nombre macro más descriptivo de lo que en realidad

lo hace. Por ejemplo, es posible que el nombre de una macro que da formato a una tabla genérica como formattable.

➤ Tecla de atajo: Cada macro necesita un evento, o algo así suceda, para que se ejecute. Este evento

puede ser una pulsación de botón, una apertura de libro, o en este caso, una combinación de teclas. ¿Cuándo

asigna una tecla de acceso directo a la macro, entrando en esa combinación de teclas que desencadena su

macro para funcionar. Este es un campo opcional.

➤ Macro Tienda En: Este libro es la opción por defecto. Almacenamiento de la macro en este libro de trabajo

Simplemente significa que la macro se almacena junto con el archivo activo Excel. La próxima vez que

abrir ese libro en particular, la macro está disponible para funcionar. Del mismo modo, si usted envía el libro

a otro usuario, el usuario puede ejecutar la macro, así (siempre que la seguridad de macros es

adecuadamente definido por el usuario - más sobre esto más adelante en la presente parte, en la sección titulada "Mirando

Otros Conceptos de grabación de macros ").

➤ Descripción: Este es un campo opcional, pero puede ser útil si usted tiene numerosos macros

en una hoja de cálculo o si tiene que dar a un usuario una descripción más detallada de lo que el

macro hace.

Con el cuadro de diálogo Grabar macro abierto, siga estos pasos para crear una macro simple que entra en su

nombre en una celda de hoja de cálculo:

1. Introduzca un nuevo nombre de una sola palabra para la macro para reemplazar el nombre predeterminado Macro1. Un buen

nombrar para este ejemplo es MiNombre.

2. Asignar esta macro para el acceso directo de teclas Ctrl + Shift + N mediante la introducción de mayúsculas N en el cuadro de edición

etiquetado Tecla de atajo.

3. Haga clic en Aceptar para cerrar el cuadro de diálogo Grabar Macro y empezar a grabar sus acciones.

4. Seleccione cualquier celda de la hoja de cálculo Excel, escriba su nombre en la celda seleccionada, y luego

presione ENTRAR.

5. Elija Developer➜Code➜Stop grabación (o haga clic en el botón Detener grabación en el

barra de estado).

El examen de la macro

La macro se grabó en un nuevo módulo denominado Module1. Para ver el código de este módulo,

debe activar el Editor de Visual Basic. Puede activar el Editor de Visual Basic en una de dos maneras:

➤ Presione Alt + F11.

➤ Elija Developer➜Code➜Visual básico.

En el Editor de Visual Basic, la ventana de proyecto muestra una lista de todos los libros abiertos y complementos. Esta lista es

se muestra como un diagrama de árbol, que se puede expandir o contraer. El código que ha grabado previamente

se almacena en Module1 en el libro actual. Al hacer doble clic en el módulo 1, el código de

el módulo aparece en la ventana de código.

La macro debería ser algo como esto:

Sub MyName()‘‘ MyName Macro‘‘ Keyboard Shortcut: Ctrl+Shift+N‘ActiveCell.FormulaR1C1 = “Michael Alexander”End Sub

La macro grabada es un procedimiento Sub que se nombra MiNombre. Los estados dicen Excel qué hacer cuando se ejecuta la macro.

Observe que Excel inserta algunos comentarios en la parte superior del procedimiento. Estos son algunos de los comentarios la información que apareció en el cuadro de diálogo Grabar macro. Estas líneas de comentarios (que empiezan con un apóstrofe) no son realmente necesarios, y eliminarlos no tiene efecto en cómo se ejecuta la macro.

Si ignora los comentarios, verá que este procedimiento tiene una sola declaración VBA:

ActiveCell.FormulaR1C1 = “Michael Alexander”

Esta sola declaración hace que el nombre que escribió durante la grabación para su inserción en la celda activa.

Prueba de la macro

Antes de grabar esta macro, se establece una opción que le asigna la macro a la Shift + Ctrl + N

combinación de teclas de acceso directo. Para probar la macro, vuelva a Excel mediante una de las siguientes métodos:

➤ Presione Alt + F11.

➤ Haga clic en el botón Ver Microsoft Excel en la barra de herramientas Editor de VB.

Cuando Excel está activo, activar una hoja de cálculo. (Puede ser en el libro que contiene el módulo de VBA o en cualquier otro libro.) Seleccione un Ctrl + Shift celular y pulse + N. La macro entra inmediatamente a su nombrar en la célula.

En el ejemplo anterior, nota que ha seleccionado la célula para ser formateado antes

empezado a grabar la macro. Este paso es importante. Si selecciona una celda mientras la macro grabadora está encendida, la célula real que ha seleccionado se grabará en la macro.

En tal caso, la macro siempre formato que celular particular, y no sería una macro de propósito general.

Edición de la macro

Después de grabar una macro, puede realizar cambios en él (aunque hay que saber lo que estás haciendo).

Por ejemplo, suponga que desea que su nombre sea negrita. Usted podría volver a grabar la macro, pero esta modificación es simple, de modo editar el código es más eficiente. Presione Alt + F11 para activar el Editor de Visual Basic ventana. A continuación, active Module1 e insertar la siguiente declaración ante la instrucción End Sub:

ActiveCell.Font.Bold = True

La macro editado aparece de la siguiente manera:

Sub MyName()‘‘ MyName Macro‘‘ Keyboard Shortcut: Ctrl+Shift+N‘ActiveCell.Font.Bold = TrueActiveCell.FormulaR1C1 = “Michael Alexander”End Sub

Pon a prueba esta nueva macro, y ves que funciona como debería.

Comparando absoluta y relativa grabación de macros

Ahora que usted ha leído acerca de los conceptos básicos de la interfaz Macro Recorder, es el momento de ir más profundo y comenzar a grabar macros. La primera cosa que usted necesita entender antes de empezar es que Excel tiene dos modos de grabación - absoluta referencia y referencia relativa.

Grabación de macros con referencias absolutas

Modo de grabación por defecto de Excel es en referencia absoluta. Como ustedes saben, el término de referencia absoluto se utiliza a menudo en el contexto de las referencias de celda que se encuentra en las fórmulas. Cuando una referencia de celda en una fórmula es una referencia absoluta, que no se ajusta automáticamente cuando la fórmula se pega a una nueva ubicación.

La mejor manera de entender cómo este concepto se aplica a las macros es probarlo. Abra el Capítulo 1

Ejemplo de archivo File.xlsx y grabar un macro que cuenta las filas en la lista Branch hoja de trabajo. (Ver Figura 1-2.)

Figura 1-2: Su hoja de trabajo pre-totalizaron contiene dos tablas.

El conjunto de datos de la muestra utilizada en la presente parte se puede encontrar en el sitio web el compañero de este libro.

Ver Introducción de este libro para obtener más en el sitio web de compañía.

Siga estos pasos para grabar la macro:

1. Antes de grabar, haga esté seleccionada la celda A1.

2. Seleccione Grabar macro de la ficha Programador.

3. Nombre el AddTotal macro.

4. Selecciona este libro de trabajo en el almacenamiento.

5. Haga clic en Aceptar para iniciar la grabación.

En este punto, Excel está grabando sus acciones. Aunque Excel es la grabación, realice el siguiente pasos:

6. Seleccione A16 celular y el tipo total en la célula.

7. Seleccione la primera celda vacía de la columna D (D16) y el tipo = CONTARA (D2: D15). esto da un recuento de los números de sucursales en la parte inferior de la columna D. Usted necesita usar la función CONTARA porque los números de ramificación se almacenan como texto.

8. Haga clic en Detener grabación en la ficha Programador para detener la grabación de la macro.

La hoja de trabajo con formato debería parecerse a la de la Figura 1-3.

Figura 1-3: Su hoja de trabajo post totalizado.

Para ver la macro en la acción, elimine la fila de totales que acaba de agregar y reproducir la macro siguiendo estos pasos:

1. Seleccione Macros de la ficha Programador.

2. Busque y seleccione la macro AddTotal que acaba de grabar.

3. Haga clic en el botón Ejecutar.

Si todo va bien, la macro se reproduce sus acciones a una T y le da a su mesa un total. Ahora aquí está la cosa. No importa cuánto te esfuerces, no se puede hacer el trabajo AddTotal macro en la segunda tabla.

¿Por qué? Debido a que ha grabado como una macro absoluta.

Para entender lo que esto significa, examinar el código subyacente. Para examinar el código, seleccione Macros de la ficha Programador para obtener el cuadro de diálogo Macro que se ve en la figura 1-4.

Figura 4.1: El cuadro de diálogo Macro Excel.

Seleccione la macro AddTotal y haga clic en el botón Editar. Esto abre el Editor de Visual Basic para mostrar el código que fue escrito cuando grabó la macro:

Sub AddTotal()Range(“A16”).SelectActiveCell.FormulaR1C1 = “Total”Range(“D16”).SelectActiveCell.FormulaR1C1 = “=COUNTA(R[-14]C:R[-1]C)”End Sub

A16 y luego D16, esas células son exactamente lo que se ha seleccionado. Debido a que la macro se registró en absoluto modo de referencia, Excel interpreta su selección gama como absoluto. En otras palabras, si selecciona A16 célula, esa célula es lo que le da Excel. En la siguiente sección, se echa un vistazo a lo que la misma macro parece que cuando se graba en el modo de referencia relativa.

Grabación de macros con referencias relativas En el contexto de las macros de Excel, medios relativos relativos a la celda activa en ese momento. Por lo que debe utilizar cuidado con su elección celda activa - tanto al grabar la macro referencia relativa y cuando que lo ejecute.

En primer lugar, asegúrese de que el archivo File.xlsx Capítulo 1 de la muestra está abierta. (Este archivo está disponible en el compañero de este libro. página web) A continuación, utilice los siguientes pasos para grabar una macro referencia relativa:

1. Seleccione la opción de referencias relativas Uso de la ficha Programador, como se muestra en la Figura 1-5.

2. Antes de grabar, haga esté seleccionada la celda A1.

3. Seleccione Grabar macro de la ficha Programador.

4. Asigne un nombre al AddTotalRelative macro.

5. Selecciona este libro de trabajo en el almacenamiento.

6. Haga clic en Aceptar para iniciar la grabación.

7. Seleccione A16 celular y el tipo total en la célula.

8. Seleccione la primera celda vacía de la columna D (D16) y el tipo = CONTARA (D2: D15).

9. Haga clic en Detener grabación en la ficha Programador para detener la grabación de la macro.

Figura 1.5: Grabación de una macro con referencias relativas.

Creado macro.

Seleccione Macros en la ficha Programador para abrir el cuadro de diálogo Macro. Aquí, elija la

AddTotalRelative macro y haga clic en Editar.

Una vez más, esto abre el Editor de Visual Basic para mostrar el código que fue escrito cuando grabó su macro. Esta vez, el código se ve algo como lo siguiente:

Sub AddTotalRelative()ActiveCell.Offset(15, 0).Range(“A1”).SelectActiveCell.FormulaR1C1 = “Total”ActiveCell.Offset(0, 3).Range(“A1”).SelectActiveCell.FormulaR1C1 = “=COUNTA(R[-14]C:R[-1]C)”End Sub

Tenga en cuenta que no hay referencias a cualquier rango de celdas específicas en absoluto (que no sean el punto de partida "A1"). Tomemos un momento para echar un rápido vistazo a lo que las partes pertinentes de este código VBA realmente significar.

Observe que en la línea 2, Excel utiliza la propiedad Offset de la celda activa. Esta propiedad indica el cursor para mover un cierto número de células arriba o hacia abajo y un cierto número de células izquierda o derecha.

El código de la propiedad Offset le dice a Excel para mover 15 hileras de plumas y 0 columnas frente a la activa célula (en este caso, A1). No hay necesidad de Excel para seleccionar explícitamente un celular como lo hizo durante la grabación de un macro referencia absoluta.

Para ver esta macro en acción, eliminar la fila total para ambas tablas y hacer lo siguiente:

1. Seleccione la celda A1.

2. Seleccione Macros de la ficha Programador.

3. Busque y seleccione la macro AddTotalRelative.

4. Haga clic en el botón Ejecutar.

5. Ahora seleccione la celda F1.

6. Seleccione Macros de la ficha Programador.

7. Busque y seleccione la macro AddTotalRelative.

8. Haga clic en el botón Ejecutar.

Tenga en cuenta que esta macro, a diferencia de la macro anterior, funciona en ambos conjuntos de datos. Debido a que la macro aplica los totales relativos a la celda activa en ese momento, los totales se aplican correctamente.

Por esta macro funcione, sólo hay que asegurarse de que

➤ Usted ha seleccionado la celda de partida correcto antes de ejecutar la macro.

➤ El bloque de datos tiene el mismo número de filas y columnas como los datos en el que se

grabado la macro.

Con suerte, este sencillo ejemplo que ha dado una sólida comprensión de la grabación de macros con tanto absoluto como referencias relativas.

En cuanto a otros conceptos de grabación de macros En este punto, usted debe sentirse cómodo grabar su propia Excel Macros. Ahora aquí están algunas de los otros conceptos importantes que tendrás que tener en cuenta cuando se trabaja con macros.

Extensiones de archivo Macro habilitado Empezando con Excel 2007, Excel tiene una extensión de archivo diferente para libros que contienen macros.

Usted ve, Excel 2010 libros tienen la extensión de archivo .xlsx estándar. Los archivos con la extensión .xlsx no puede contener macros. Si el libro contiene macros y, a continuación, guardar ese libro como un.

archivo xlsx, las macros se eliminan automáticamente. Excel le advierte que el contenido de macro se desactivará al guardar un libro con macros como un archivo .xlsx.

Si desea conservar las macros, debe guardar el archivo como un libro de trabajo habilitada para macros de Excel. Este da su archivo una extensión .xlsm. La idea es que todos los libros con una extensión de archivo .xlsx son automáticamente conocido por ser seguro, mientras que usted puede reconocer .xlsm archivos como una amenaza potencial.

La seguridad de macros en Excel 2010

Con el lanzamiento de Office 2010, Microsoft introdujo cambios significativos en su modelo de seguridad de Office.

Uno de los cambios más significativos es el concepto de documentos de confianza. Sin entrar en la minucia técnica, un documento de confianza es esencialmente un libro que ha considerado seguro al permitir macros.

Si abre un libro que contiene macros en Excel 2010, aparece un mensaje de la barra amarilla bajo la Cinta indicando que las macros (contenido activo) tienen en efecto, ha desactivado.

Si hace clic en Habilitar, se convierte automáticamente en un documento de confianza. Esto significa que ya no están se le pida para que el contenido siempre y cuando se abre ese archivo

en su ordenador. La idea básica es que si le dijiste a Excel que "la confianza", un libro en particular al permitir macros, es muy probable que usted habilitar las macros cada vez que lo abra. Por lo tanto, Excel recuerda que ha habilitado macros antes e inhibe cualquier otros mensajes acerca de macros para ese libro.

Esta es una gran noticia para usted y sus clientes. Después de habilitar las macros sólo una vez, no lo harán estar molesto por los mensajes constantes sobre macros, y usted no tendrá que preocuparse de que su salpicadero macro-enabled fracasará porque las macros se han desactivado.

Las ubicaciones de confianza Si la idea de cualquier mensaje macro viene (incluso una vez) que enerva, se puede establecer un ubicación de confianza para sus archivos. Una ubicación de confianza es un directorio que se considera una zona segura donde sólo libros de trabajo de confianza se colocan. Una ubicación de confianza permite que usted y sus clientes para ejecutar una macro-enabled cuaderno de trabajo sin restricciones de seguridad, siempre y cuando el libro se encuentra en ese lugar.

Para configurar una ubicación de confianza, siga estos pasos:

1. Seleccione el botón Seguridad de macros en la ficha Programador.

Esto activa el cuadro de diálogo Centro de confianza.

2. Haga clic en el botón de ubicaciones de confianza. Esto abre el menú de ubicaciones de confianza (ver Figura 1-6), que le muestra todos los directorios que son considerados de confianza.

3. Haga clic en el botón Agregar nuevo Ubicación.

4. Haga clic en Examinar para buscar y especificar el directorio que será considerado una ubicación de confianza.

Después de especificar una ubicación de confianza, cualquier archivo de Excel que se abre desde esta ubicación tendrá macros habilitado automáticamente.

Figura 1.6: El menú de ubicaciones de confianza le permite añadir directorios que se consideran confiables.

El almacenamiento de macros en su libro de macros personal La mayoría de las macros creadas por el usuario están diseñados para su uso en un libro específico, pero es posible que

desee utilizar algunas macros en todo su trabajo. Puede almacenar estas macros de uso general en el Macro Personal Libro de trabajo de manera que siempre estamos a su disposición. El Libro de macros personal se carga cada vez que inicia Excel. Este archivo, llamado personal.xlsb, no existe hasta que grabe una macro utilizando Personal

Libro de macros como destino.

El Libro de macros personal que normalmente se encuentra en una ventana oculta para mantenerlo fuera de el camino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En desplegable lista.

Si almacena las macros en el libro macros personales, usted no tiene que acordarse de abrir la

Libro de macros personal cuando se carga un libro que utiliza macros. Cuando se quiere salir,

Excel le preguntará si desea guardar los cambios en el libro macros personales.

Asignar una macro a un botón y otros controles de formulario

Al crear macros, es posible que desee tener una manera clara y fácil de ejecutar cada macro. Un básico botón puede proporcionar una interfaz de usuario sencilla pero eficaz.

La suerte quiso que, Excel ofrece un conjunto de controles de formulario diseñado específicamente para la creación de interfaces de usuario directamente en las hojas de cálculo. Hay varios tipos diferentes de controles de formulario, de los botones (el más utilizada de control) para las barras de desplazamiento.

La idea detrás de usar un control de formulario es simple. Usted coloca un control de formulario en una hoja de cálculo y después asignar una macro a ella - es decir, una macro que ya ha grabado. Cuando se asigna una macro para el control, esa macro se ejecuta, o juega, cuando se hace clic en el control.

Tómese un momento para crear un botón para la macro AddTotalRelative creó anteriormente. He aquí cómo:

1. Haga clic en el botón Insertar bajo la ficha Programador. (Ver Figura 1-7.)

2. Seleccione el control de formulario Botón de la lista desplegable que aparece.

3. Haga clic en la ubicación en la que desea colocar el botón. Al colocar el control de botón en la hoja de cálculo, el cuadro de diálogo Asignar macro, como se muestra en la Figura 1-8, se activa y le pide que asigna una macro a este botón.

4. Seleccione la macro que desea asignar al botón y luego haga clic en Aceptar.

Figura 1-7: Puede encontrar los controles de formulario en la ficha Programador.

Figura 1-8: Asignar una macro al botón que acaba de agregar.

Controles de formulario frente a los controles ActiveX

Observe los controles de formulario y los controles ActiveX en la Figura 1-7. A pesar de que se parecen, son bastante diferente. Controles de formulario están diseñados específicamente para su uso en una hoja de cálculo, y los controles ActiveX son utilizado típicamente en formularios de usuario de Excel. Como regla general, siempre debe usar los controles de formulario cuando se trabaja en una hoja de cálculo. ¿Por qué? Los controles de formulario tienen menos gastos generales, por lo que funcionan mejor, y configurar controles de formulario es mucho más fácil que la configuración de sus contrapartes ActiveX.

En este punto, usted tiene un botón que ejecuta la macro al hacer clic en él! Tenga en cuenta que todos los controles en el grupo de controles de formulario (que se muestra en la Figura 1-7) trabajar en la misma forma que el botón de comando, en que se asigna una macro a ejecutar cuando se selecciona el control.

La colocación de una macro en la barra de herramientas de acceso rápido También puede asignar una macro a un botón en la barra de herramientas de acceso rápido de Excel:

1. Haga clic en la barra de herramientas de acceso rápido y seleccione Personalizar barra de herramientas de acceso rápido.

2. Haga clic en el botón de la barra de herramientas de acceso rápido a la izquierda del cuadro de diálogo Opciones de Excel.

3. Seleccione Macros en la lista desplegable de la izquierda.

4. Seleccione la macro que desee agregar y haga clic en el botón Agregar.

5. Cambie el icono haciendo clic en el botón Modificar.

Trabajar en el Editor de Visual Basic

El Editor de Visual Basic (VBE) es una aplicación independiente en el que escribe y edita sus macros VBA. Usted no se puede ejecutar el VBE por separado; Excel debe estar en ejecución para que el VBE se ejecute.

La activación de la VBE

La forma más rápida para activar el VBE es pulsar Alt + F11 cuando Excel está activo. Para volver a Excel, pulse Alt + F11 de nuevo.

También puede activar el VBE mediante el comando Developer➜Code➜Visual básico.

Componentes Comprensión VBE

Figura 1-9 muestra el programa VBE con algunas de las partes clave identificados. Porque tanto que está pasando en en el VBE, me gusta para maximizar la ventana para ver lo más posible.

Es probable que su ventana del programa VBE no se verá exactamente igual que lo que se ve en la Figura 1-9. El VBE contiene varias ventanas y es altamente personalizable. Puede ocultar las ventanas, reorganizar las ventanas, ventanas muelle, y así sucesivamente.

Figura 1-9: El VBE con elementos significativos identificados.

Barra de menús

La barra de menús VBE funciona como cualquier otra barra de menú que ha encontrado. Contiene comandos que se utiliza para hacer las cosas con los diversos componentes de la VBE. Usted también encontrará que muchos de los comandos de menú tienen teclas de acceso directo asociadas con ellos.

El VBE también cuenta con menús contextuales. Usted puede hacer clic en virtualmente cualquier cosa en el VBE y obtener una menú contextual de comandos comunes.

Barra de herramientas

La barra de herramientas estándar, que está directamente debajo de la barra de menú por defecto, es una de las cuatro barras de herramientas VBE disponible. Puede personalizar las barras de herramientas, moverlos, mostrar otras barras de herramientas, y así sucesivamente. Si usted está tan inclinado, utilice el comando View➜Toolbars trabajar con barras de herramientas VBE. La mayoría de la gente sólo dejarlos como están.

Ventana de proyecto

La ventana de proyecto muestra un diagrama de árbol que muestra cada libro abierto actualmente en Excel (Incluidos los complementos y libros ocultos). Haga doble clic en los elementos para expandir o contraer ellos. Nosotros discutir esta ventana con más detalle en la sección "Trabajar con la ventana del proyecto" más adelante en esta parte.

Si la ventana Proyecto no es visible, presione Ctrl + R o utilice el comando View➜Project Explorer. Esconder la ventana del proyecto, haga clic en el botón Cerrar en la barra de título. Alternativamente, haga clic en cualquier lugar en el Ventana del proyecto y seleccione Ocultar en el menú contextual.

Ventana Código

Una ventana de código contiene código VBA. Cada objeto en un proyecto tiene una ventana de código asociado. A ver ventana de código de un objeto, haga doble clic en el objeto en la ventana Proyecto. Por ejemplo, para ver la ventana de código para el objeto Sheet1, haga doble clic en Sheet1 en la ventana Proyecto. A menos que usted tiene añadido algo de código VBA, la ventana Código estará vacía.

Encontrará más información acerca de las ventanas de código más adelante en la sección "Trabajar con una ventana de código" de esta parte.

Ventana Inmediato

La ventana Inmediato puede o no ser visible. Si no está visible, presione Ctrl + G o utilizar el View➜ Comando ventana Inmediato. Para cerrar la ventana Inmediato, haga clic en el botón Cerrar en la barra de título (O haga clic en cualquier lugar en la ventana Inmediato y seleccione Ocultar en el menú contextual).

La ventana Inmediato es más útil para ejecutar directamente las declaraciones de VBA y para depurar su código. Si usted apenas está comenzando con VBA, esta ventana no será tan útil, por lo que no dude en ocultarlo y liberar algo de espacio en la pantalla para otras cosas.

Trabajar con la ventana del proyecto

Cuando se trabaja en el VBE, cada libro de Excel y complemento que es libre es un proyecto. Puedes pensar en un proyecto como una colección de objetos dispuestos como un esquema. Puede ampliar un proyecto haciendo clic el signo más (+) a la izquierda del nombre del proyecto en la ventana del proyecto. Contratar un proyecto de clic en el signo menos (-) a la izquierda del nombre de un proyecto. O bien, puede hacer doble clic en los elementos para ampliar y contratarlos.

La figura 1-10 muestra una ventana de proyecto con dos proyectos figuran: un libro denominado Libro1 y un libro llamado Book2.

Figura 1-10: Esta ventana Proyecto enumera dos proyectos. Ellos se expanden para mostrar sus objetos.

Cada proyecto se expande para mostrar al menos un nodo llamado Microsoft Excel Objetos. Este nodo se expande para mostrar un artículo para cada hoja del libro (cada hoja se considera un objeto), y otro objeto llamado ThisWorkbook (que representa el objeto Workbook). Si el proyecto tiene cualquier VBA módulos, el listado de proyectos también muestra un nodo Módulos.

Adición de un nuevo módulo de VBA

Al grabar una macro, Excel inserta automáticamente un módulo de VBA para mantener el código grabado. La libro que tiene el módulo para la macro grabada depende de donde usted eligió para almacenar el grabado macro, justo antes de empezar la grabación.

En general, un módulo de VBA puede contener tres tipos de código:

➤ Declarations: Uno o más estados de información que usted suministre a VBA. Por ejemplo, puede declarar el tipo de datos para las variables que va a utilizar, o establecer alguna otra en todo el módulo opciones.

➤ Sub procedures: Un conjunto de instrucciones de programación que realiza alguna acción. Todos registrado macros serán procedimientos Sub.

➤ Function procedures: Un conjunto de instrucciones de programación que devuelve un solo valor (similar en concepto a una función de hoja de cálculo, como Suma).

Un solo módulo VBA puede almacenar cualquier número de procedimientos Sub, procedimientos, funciones y declaraciones.

Cómo organizar un módulo VBA es totalmente suya. Algunas personas prefieren mantener todo su Código VBA para una aplicación en un solo módulo VBA; a otros les gusta dividir el código en varios diferentes módulos. Es una elección personal, al igual que la organización de los muebles.

Siga estos pasos para añadir manualmente un nuevo módulo de VBA a un proyecto:

1. Seleccione el nombre del proyecto en la ventana del proyecto.

2. Elija Insert➜Module.

O puede

1. Haga clic en el nombre del proyecto.

2. Elija Insert➜Module en el menú contextual.

El nuevo módulo se añade a una carpeta de módulos en la ventana del proyecto (ver Figura 1-11). cualquier módulos se crea en un libro determinado se colocan en esta carpeta Módulos.

Figura 1-11: módulos de código son visibles en la ventana del proyecto en una carpeta llamada módulos.

Extracción de un módulo de VBA

Es posible que desee eliminar un módulo de código que ya no es necesario. Para ello, siga estos pasos:

1. Seleccione el nombre del módulo en la ventana del proyecto.

2. Elija xxx File➜Remove, donde xxx es el nombre del módulo.

O

1. Haga clic en el nombre del módulo.

2. Seleccione Eliminar xxx en el menú contextual.

Excel, siempre tratando de evitar que haciendo algo que te arrepentirás, le pregunta si desea exportar el código en el módulo antes de eliminarlo. Casi siempre, no lo hace. (Si lo haces quiere exportar el módulo, consulte la siguiente sección, "Trabajar con una ventana de código.") Usted puede quitar módulos VBA, pero no hay forma de eliminar los otros módulos de código - aquellos para los objetos de hoja o ThisWorkbook.

Trabajar con una ventana de código

Como llegar a dominar con VBA, usted pasa mucho tiempo trabajando en ventanas de código. Las macros que grabe se almacenan en un módulo, y usted puede escribir código VBA directamente en un módulo de VBA.

Minimizar y maximizar ventanas

Ventanas de código son muy parecidos a ventanas de libro en Excel. Usted puede minimizarlos, maximizar ellos, cambiar el tamaño de ellos, ocultarlos, reorganizarlos, y así sucesivamente. La mayoría de las personas les resulta mucho más fácil para maximizar el Ventana de código que están trabajando. Si lo hace, le permite ver más de código y le impide obtener distraído.

Para maximizar una ventana de código, haga clic en el botón de maximizar en la barra de título (justo al lado de la X). O solo haga doble clic en la barra de título para maximizarlo. Para restaurar una ventana de código a su tamaño original, haga clic en Restaurar botón. Cuando se maximiza una ventana, la barra de título no es muy visible, por lo que encontrarás en el botón Restaurar a la derecha del tipo de una pregunta para la caja de la Ayuda.

A veces, es posible que desee tener dos o más ventanas de código visibles. Por ejemplo, es posible que desee comparar el código en dos módulos o copiar el código de un módulo a otro. Usted puede arreglar el ventanas manualmente, o utilizar el Window➜Tile horizontalmente o verticalmente Window➜Tile comandos para organizarlos automáticamente.

Puede cambiar rápidamente entre ventanas de código pulsando Ctrl + Tab. Si repite esa combinación de teclas, usted guarda el ciclismo a través de todas las ventanas de código abierto. Presionando Shift + Tab Ctrl + ciclos a través las ventanas en orden inverso.

Minimizando una ventana Código consigue fuera del camino. También puede hacer clic en el botón Cerrar de la ventana en un Barra de título de la ventana Código para cerrar completamente la ventana. (Cerrar una ventana justo lo esconde; no lo harás perder nada.) Para abrir de nuevo, basta con hacer doble clic en el objeto apropiado en la ventana del proyecto.

Trabajar con estas ventanas Código suena más difícil de lo que realmente es.

Obtener código VBA en un módulo

Antes de que pueda hacer algo significativo, debe tener algo de código VBA en el módulo de VBA. Puedes obtener el código VBA en un módulo VBA de tres maneras:

➤ Utilice la grabadora de macros de Excel para registrar sus acciones y los convierte a código VBA

➤ Introducir el código directamente

➤ Copia el código de un módulo y pegarlo en otro

Has descubierto el excelente método para crear código utilizando la grabadora de macros de Excel.

Sin embargo, no todas las tareas pueden ser traducidos a VBA mediante el registro de una macro. A menudo se tiene que introducir su código directamente en el módulo. Introducción del código directamente básicamente significa o bien escribiendo el código de ti mismo o copiar y pegar el código que haya encontrado en otro lugar.

Introducción y edición de texto en un módulo VBA funciona como se podría esperar. Puede seleccionar, copiar, cortar, pegar, y hacer otras cosas al texto.

Una sola línea de código VBA puede ser tan largo como quieras. Sin embargo, es posible que desee utilizar el line-continuation carácter para romper largas líneas de código. Para continuar con una sola línea de código (también conocido como una declaración) de una línea a la siguiente, poner fin a la primera línea con un espacio seguido por un guión bajo (_). Luego continuar la declaración en la línea siguiente. He aquí un ejemplo de un único estado dividido en tres líneas:

Selection.Sort Key1:=Range(“A1”), _Order1:=xlAscending, Header:=xlGuess, _Orientation:=xlTopToBottom

Esta declaración se realice de la misma manera si se introduce en una sola línea (sin linecontinuation caracteres). Tenga en cuenta que la segunda y tercera líneas de esta declaración son sangría.

Sangría es opcional, pero ayuda a aclarar el hecho de que estas líneas no son comunicados separados.

El VBE tiene múltiples niveles de deshacer y rehacer. Si ha eliminado una declaración que usted no debería tener, el uso el botón Deshacer de la barra de herramientas (o presione Ctrl + Z) hasta que la declaración aparece de nuevo. Después de deshacer, se puede utilizar el botón Rehacer para realizar los cambios que ha deshecho.

Listo para entrar en algunos, código de carne y hueso? Pruebe los siguientes pasos:

1. Cree un nuevo libro en Excel.

2. Pulse Alt + F11 para activar el VBE.

3. Haga clic en el nombre del nuevo libro en la ventana del proyecto.

4. Elija Insert➜Module para insertar un módulo de VBA en el proyecto.

5. Escriba el siguiente código en el módulo:

Sub GuessName()Dim Msg as StringDim Ans As LongMsg = “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 cursor se encuentra en cualquier lugar dentro del texto que escribió y presione F5 para ejecutar el procedimiento.

F5 es un acceso directo para el comando Sub / UserForm Run➜Run.

Cuando se introduce el código que aparece en el paso 5, puede notar que el VBE hace algunos ajustes para el texto que introduzca. Por ejemplo, después de escribir la instrucción Sub, el VBE inserta automáticamente el Termine instrucción Sub. Y si se omite el espacio antes o después de un signo igual, el VBE inserta la espacio para ti. Además, el VBE cambia el color y la capitalización de algún texto. Todo esto es perfectamente normal.

Es sólo forma de mantener las cosas limpias y legibles de la VBE.

Si ha seguido los pasos anteriores, que acaba de crear un procedimiento Sub VBA, también conocido como una macro.

Al pulsar F5, Excel ejecuta el código y sigue las instrucciones. En otras palabras, Excel evalúa

cada declaración y hace lo que le dijiste que hiciera. Puede ejecutar esta macro cualquier número de veces - aunque tiende a perder su atractivo después de unas cuantas docenas de ejecuciones.

Este simple macro utiliza los siguientes conceptos:

➤ Definir un procedimiento Sub (la primera línea)

➤ las variables Declaración de las declaraciones (DIM)

➤ La asignación de valores a las variables (Msg y Ans)

➤ Concatenación (joining) una cadena (usando el operador &)

➤ Utilizando una función integrada de VBA (MsgBox)

➤ Uso de constantes integradas de VBA (vbYesNo, vbNo y vbYes)

➤ El uso de un If-Then construir (dos veces)

➤ Terminar un procedimiento Sub (la última línea)

Como mencionamos anteriormente, puede copiar y pegar el código en un módulo VBA. Por ejemplo, un Sub o Procedimiento de Function que usted escribe para un proyecto también puede ser útil en otro proyecto. en lugar de perder el tiempo volver a entrar en el código, puede activar el módulo y utilizar la copia-andpaste normales procedimientos (Ctrl + C para copiar y Ctrl + V para pegar). Después de pegar en un módulo de VBA, puede modificar el código según sea necesario.

Personalización de la VBA Medio Ambiente

Si usted es serio acerca de convertirse en un programador de Excel, usted pasa mucho tiempo con módulos VBA en la pantalla. Para ayudar a hacer las cosas lo más cómoda posible, el VBE ofrece un buen número de personalización opciones.

Cuando el VBE es activa, elija Tools➜Options. Verá un cuadro de diálogo con cuatro pestañas: Editor, Editor Formato, General y de acoplamiento. Tome un momento para explorar algunas de las opciones que se encuentran en cada ficha.

La ficha Editor

Figura 1-12 muestra las opciones que se accede haciendo clic en la ficha Editor del cuadro de diálogo Opciones. utilizar el opción en la ficha Editor de controlar cómo ciertas cosas en el VBE.

Figura 1-12: La ficha Editor del cuadro de diálogo Opciones.

La opción Revisar sintaxis Auto

La Comprobar configuración de sintaxis automática determina si el VBE aparece un cuadro de diálogo si se descubre un error de sintaxis mientras se está introduciendo su código VBA. El cuadro de diálogo le dice más o menos lo que es el problema.

Si no selecciona esta opción, banderas VBE sintaxis errores mostrándolos en un color diferente de el resto del código, y usted no tiene que hacer frente a los cuadros de diálogo apareciendo en la pantalla.

Normalmente me mantengo este ajuste apagué porque creo que los cuadros de diálogo son molestos y yo por lo general puede averiguar lo que está mal en un comunicado. Antes yo era un veterano de VBA, I encontrado este ajuste muy útil.

La opción Requerir declaración de variables

Si la opción Requerir declaración de variables se establece, VBE inserta la siguiente declaración al comienzo de cada nuevo módulo VBA inserta:

Option Explicit

El cambio de este ajuste sólo afecta a los nuevos módulos, no los módulos existentes. Si esta declaración aparece en su módulo, debe definir explícitamente cada variable que utiliza. Usando una instrucción Dim es una manera de declarar variables.

La opción Lista de miembros automática

Si la opción Lista de miembros automática se establece, VBE ofrece un poco de ayuda cuando se está introduciendo su código VBA.

Se muestra una lista que completaría lógicamente la declaración que estás escribiendo. Esta es una de las mejores características de la VBE.

La opción Auto Quick Info

Si se selecciona la opción Auto Información rápida, VBE muestra información acerca de las funciones y sus argumentos mientras escribe. Esto es similar a la forma en que Excel se enumeran los argumentos para una función a medida que empiezan a escribir una nueva fórmula.

La opción Consejos de datos automática

Si la opción Consejos de datos automática se establece, VBE muestra el valor de la variable sobre la que el cursor se encuentra colocado cuando estás depuración de código. Esto se activa de forma predeterminada y, a menudo muy útil. Tienes ninguna razón para activar esta opción.

El ajuste Sangría automática

El ajuste Sangría automática determina si VBE sangra de forma automática cada nueva línea de código del igual que la línea anterior. Soy grande en el uso de muescas en mi código, así que mantengo esta opción.

Por cierto, se debe utilizar la tecla Tab para sangrar el código, no la barra espaciadora. También tú puede utilizar Shift + Tab para "Unindent" una línea de código. Si desea sangrar más de una línea, seleccione todas las líneas que desea sangrar y luego presione la tecla Tab.

Editar barra de herramientas del VBE (que está oculta de manera predeterminada) contiene dos botones útiles: Sangría y Anular sangría.

Estos botones le permiten rápidamente guión o "Unindent" un bloque de código. Seleccione el código y haga clic en uno de estos botones para cambiar la sangría del bloque.

La opción de edición de arrastrar y soltar texto

La opción de edición de arrastrar y soltar texto, cuando está activada, le permite copiar y mover texto arrastrando y cayendo con el ratón. Mantengo esta opción activada, pero nunca lo uso. Yo prefiero copiar y mover utilizando el teclado.

El defecto en Full Module Ampliar opción

El defecto en Full Module Ampliar opción establece el estado por defecto para los nuevos módulos. (No afecta existente módulos.) Si se establece, los procedimientos en la ventana de código aparecen como una única lista desplazable. Si esta opción es apagado, se puede ver sólo un procedimiento a la vez. Mantengo esta opción activada.

La opción de Procedimiento Separador

Cuando la opción Procedimiento separador está encendido, barras separadoras aparecen al final de cada procedimiento de en una ventana de código. Me gusta la idea de barras separadoras, así que mantener esta opción activada.

La pestaña Editor de formato

La figura 1-13 muestra la ficha Editor de formato del cuadro de diálogo Opciones. Con esta ficha, puede personalizar la forma en que el VBE parece.

Figura 1-13: Cambiar miradas del VBE con la pestaña Editor de formato.

La opción Colores Código

La opción de código de colores le permite ajustar el color del texto y el color de fondo que se muestra para varios elementos de código VBA. Esto es en gran medida una cuestión de preferencia personal. Personalmente, creo que los colores por defecto para ser bien. Pero para un cambio de escenario, de vez en cuando jugar con estos ajustes.

La opción de fuente

La opción de fuente le permite seleccionar el tipo de letra que se utiliza en los módulos de VBA. Para obtener los mejores resultados, seguir con un font-ancho fijo como Courier New. En una fuente de ancho fijo, todos los personajes son exactamente la misma anchura.

Esto hace que el código sea más legible porque los personajes están muy bien alineados verticalmente y puedes distinguir fácilmente múltiples espacios (que a veces es útil).

El valor de Tamaño

El ajuste Tamaño especifica el tamaño en puntos de la fuente en los módulos VBA. Esta configuración es una cuestión de preferencia personal determinado por su resolución de pantalla de vídeo y lo bien que su vista está.

La opción Margen Indicador Bar

Esta opción controla la visualización de la barra indicadora de margen vertical en sus módulos. Usted debe mantener esta encendido; de lo contrario, usted no será capaz de ver los indicadores gráficos útil cuando estás depurar el código.

La ficha General

Figura 1-14 muestra las opciones disponibles en la ficha General del cuadro de diálogo Opciones. En casi todos los casos, los valores predeterminados son muy bien.

El ajuste más importante en la ficha General es Error reventado. Le sugerimos que utilice la Abrete no controlada entorno errores. Esto asegura Excel puede identificar los errores al escribir el código.

Figura 1-14: La ficha General del cuadro de diálogo Opciones.

La ficha de acoplamiento

La figura 1-15 muestra la ficha Soporte. Estas opciones determinan cómo las distintas ventanas de la VBE comportarse. Cuando se acopla una ventana, se fija en su lugar a lo largo de uno de los bordes del programa VBE ventana. Esto hace que sea mucho más fácil de identificar y localizar una ventana particular. Si apaga todo atraque, tienes un gran lío, confuso de las ventanas. En general, los ajustes por defecto funcionan bien.

Figura 1-15: La pestaña de acoplamiento del cuadro de diálogo Opciones.

Descubriendo el modelo de objetos de Excel

En Excel, a lidiar con los libros de trabajo, hojas de trabajo y rangos en una base diaria. Usted probablemente piensa de cada de estos "objetos" como parte de Excel, en realidad no los separa en su mente. Sin embargo, Excel piensa sobre estos internamente como parte de un modelo jerárquico llamado el modelo de objetos de Excel. El objeto de Excel modelo es un claramente definido un conjunto de objetos que se estructuran de acuerdo a las relaciones entre ellos.

En esta sección, le damos una breve descripción del modelo de objetos, así como algunos de las otras terminologías y los conceptos que se encontrarán en los próximos 101 macros.

La comprensión de los objetos

En el mundo real, puede describir todo lo que ve como un objeto. Cuando usted mira a su casa, es un objeto. Su casa tiene habitaciones; esas habitaciones también son objetos separados. Esas habitaciones pueden tener armarios.

Estos armarios son también objetos. Al pensar en su casa, las habitaciones, y los armarios, es posible que ver una relación jerárquica entre ellos. Excel funciona de la misma manera.

En Excel, el objeto Application es el objeto que lo abarca todo - similar a su casa. Dentro el objeto Application, Excel tiene un libro. Dentro de un libro es una hoja de cálculo. En el interior es un gama. Estos son todos los objetos que viven en una estructura jerárquica.

Para apuntar a un objeto específico en VBA, se puede recorrer el modelo de objetos. Por ejemplo, para llegar a la celda A1 en la hoja 1, se puede introducir el código:

Application.Activeworbook.Sheets(“Sheet1”).Range(“A1”).Select

En la mayoría de los casos, la jerarquía del modelo de objetos se entiende, por lo que no tiene que escribir todos los niveles.

Al entrar en este código también se que a la celda A1 porque Excel infiere que te refieres al libro activo, y la hoja activa:

Range(“A1”).Select

De hecho, si usted tiene ya cursor en la celda A1, sólo tiene que utilizar el objeto ActiveCell, negando la necesidad de escribir en realidad fuera del rango.

Activecell.Select

Colecciones Comprensión

Muchos de los objetos de Excel pertenecen a colecciones. Su casa se encuentra dentro de un barrio, por ejemplo, que es un conjunto de casas denominadas un barrio. Cada barrio se sienta en una colección de barrios llaman una ciudad. Excel considera colecciones de ser objetos mismos.

En cada objeto libro, usted tiene una colección de hojas de trabajo. La colección de hojas de trabajo es una objeto que se puede pedir a través de VBA. Cada hoja de cálculo en el libro vive en la Colección Hojas de trabajo.

Si usted desea hacer referencia a una hoja de cálculo en la colección Hojas de trabajo, puede hacer referencia a ella por su posición en la colección, como un número de índice a partir de 1, o por su nombre, como texto citado. Si ejecuta estos dos líneas de código en un libro que tiene una sola hoja de cálculo llamada MySheet, ambos hacen lo mismo cosa:

Worksheets(1).SelectWorksheets(“MySheet”).Select

Si tiene dos hojas del libro activo que tienen la MySheet nombres y YourSheet, en ese orden, usted puede referirse a la segunda hoja de cálculo, escriba cualquiera de estas declaraciones:

Worksheets(2).SelectWorksheets(“YourSheet”).Select

Si usted desea hacer referencia a una hoja de cálculo en un libro llamado MySheet en un libro en particular que no es activa, debe calificar la referencia de hoja de cálculo y la referencia de libro, de la siguiente manera:

Workbooks(“MyData.xls”).Worksheets(“MySheet”).Select

La comprensión de propiedades

Las propiedades son esencialmente las características de un objeto. Su casa tiene un color, una cantidad cuadrada, una la edad, y así sucesivamente. Algunas propiedades se pueden cambiar - al igual que el color de su casa. otras propiedades no se puede cambiar - como la edad de su casa.

Del mismo modo, un objeto en Excel como el objeto Worksheet tiene una propiedad de nombre de la hoja que puede ser cambiado, y una propiedad fila Rows.Count que no se puede.

Usted se refiere a la propiedad de un objeto por referencia al objeto, y luego la propiedad. Por ejemplo, se puede cambiar el nombre de la hoja de cálculo cambiando su propiedad Name.

En este ejemplo, está cambiando el nombre Hoja1 a MySheet:

Sheets(“Sheet1”).Name = “MySheet”

Algunas propiedades son de sólo lectura, lo que significa que no se puede asignar un valor a ellos directamente – para ejemplo, la propiedad Text del celular. La propiedad Text le da la apariencia con formato del valor en una celda, pero no se puede sobrescribir o cambiarlo.

Métodos Comprensión

Los métodos son las acciones que se pueden realizar contra un objeto. Ayuda a pensar en métodos como verbos. Usted puede pintar su casa, por lo que en VBA, que se traduce en algo así como

house.paint

Un ejemplo simple de un método de Excel es el método Select del objeto Range:

Range(“A1”).Select

Otro es el método de copy del objeto Range:

Range(“A1”).Copy

Algunos métodos tienen parámetros que puede dictar la forma en que se aplica. Por ejemplo, el método Paste se puede utilizar de manera más eficaz mediante la definición explícita del parámetro DestinationActiveSheet.Paste Destination:=Range(“B1”)

Tomar una breve mirada en variables

Otro concepto podrás ver a través de las macros de este libro es el concepto de variables. Nosotros necesitará dedicar unas palabras a este concepto, ya que juega un papel importante en la mayoría de las macros que se encontrará aquí.

Usted puede pensar en variables como contenedores de memoria que puede utilizar en sus procedimientos. Hay diferentes tipos de variables, cada tarea de la celebración de un tipo específico de datos.

Algunos de los tipos comunes de las variables se verá en este libro son

➤ String: Almacena datos textuales

➤ Integer: Almacena los datos numéricos que van desde 32.768 a 32.767

➤ Long: Almacena los datos numéricos que van desde -2147483648 a 2147483647

➤ Double: Holds punto flotante de datos numéricos

➤ Variant: Almacena cualquier tipo de datos

➤ Boolean: Almacena datos binarios que retorna Verdadero o Falso

➤ Object: Sostiene un objeto real a partir del modelo de objetos de Excel

El término que se utiliza para la creación de una variable en una macro está declarando una variable. Lo hace mediante la introducción de Dim (Una abreviatura de dimensión), el nombre de la variable, y luego el tipo. Por ejemplo:

Dim MyText as StringDim MyNumber as Integer

Dim MyWorksheet as Worksheet

Después de crear la variable, puede llenarlo de datos. Aquí hay algunos ejemplos sencillos de cómo crearía una variable y asignarle un valor a la misma:

Dim MyText as StringMytext = Range(“A1”).Value

Dim MyNumber as IntegerMyNumber = Range(“B1”).Value * 25

Dim MyObject as WorksheetSet MyWorksheet = Sheets(“Sheet1”)

Los valores que se asignan a las variables a menudo provienen de los datos almacenados en sus células. Sin embargo, el Los valores también pueden ser información que usted mismo cree. Todo depende de la tarea en cuestión. Este noción se vuelve más clara a medida que avanza a través de las macros en el libro.

Acerca de las macros en este libro

Como mencionamos en la introducción, las macros de este libro están diseñados para conseguir que la puesta en marcha con VBA en la forma más rápida posible. Cada tacleadas macro una tarea común que se beneficia de la automatización.

La idea aquí es aprender a través de la aplicación. Este libro está diseñado para que pueda poner en práctica la macro, al obtener una comprensión clara de lo que hace la macro y cómo funciona.

Obtención de los archivos de ejemplo

Cada macro en este libro tiene un archivo de muestra asociada. Estos archivos de ejemplo le dan la capacidad de ver el trabajo macro, así como la posibilidad de revisar el código. También puede utilizar los archivos de ejemplo para copiar y pegar el código en su entorno (en lugar de escribir cada macro en a partir de cero). Ver la sección "Acerca de la Web del compañero" en la Introducción de este libro para obtener instrucciones completas sobre cómo descargar el código de ejemplo.

El uso de los archivos de muestra

Cada macro en este libro tiene instrucciones detalladas sobre dónde copiar y pegar el código. Debieras abra el archivo de ejemplo asociado a la macro, ir al Editor de Visual Basic (pulsando Alt + F11), y luego copiar el código. Después de que hayas copiado el código, usted puede ir a su libro, entra en la Editor de Visual Basic y pegue el código en el lugar apropiado.

Tenga en cuenta que en algunos de los ejemplos de macros en este libro, es necesario cambiar algún aspecto de la macro para adaptarse a su situación. Por ejemplo, la macro 12 de la Parte II demuestra cómo abrir todos los archivos de Excel en un directorio. En ese ejemplo, señalamos a la carpeta C: \ Temp \ directorio. Antes de utilizar este particular macro, es necesario modificar la parte de la macro para apuntar a su directorio de destino.

Si una macro no funciona para usted, es probablemente porque es necesario cambiar algún componente de la macro. Preste especial atención a las direcciones de la gama, nombres de directorios, y cualesquiera otros nombres no modificables.

Construimos estos valores no modificables en la macro para fines de demostración; con la intención completa que usted, el lector, sería modificar la macro para cambiar estos nombres no modificables para adaptarse a su situación.

Cosas a tener en cuenta

Aquí hay algunas cosas finales a tener en cuenta al trabajar con las macros de este libro:

➤ extensiones de archivo de macro-enabled: Recuerde que cualquier archivo que contiene una macro debe tener el extenstion archivo .xlsm. Vea la sección llamada "las extensiones de archivo de macro-enabled" en la presente parte para más detalles.

➤ seguridad Macro: Tenga en cuenta que Excel no se ejecutará hasta que las macros están habilitadas. Como tu aplicar estas macros, es importante entender los pasos que usted y sus clientes tendrá que tomar para cumplir con las medidas de seguridad de macros de Excel. La sección en la presente parte llamado "la seguridad de macros en Excel 2010" pone de relieve estos pasos.

➤ No puede deshacer acciones de macro: Al trabajar en Excel, a menudo se puede deshacer las acciones que ha tomado. Esto se debe a que Excel guarda un registro (llamado la pila de deshacer) que registra la última 100 acciones que ha tomado. Sin embargo, ejecutar una macro destruye automáticamente el deshacer apilar, borrar el registro de las acciones que ha tomado. Usted debe tener esto en cuenta a medida que empiezan escribir y ejecutar sus propias macros. No se puede deshacer la acción se toma en una macro.

➤ ¿A dónde ir desde aquí: Como se mencionó antes, estas macros se han diseñado para que pueda empezar con VBA. Si usted encuentra una pasión en desarrollo para Excel VBA, es posible que desee saber dónde obtener un referencia más detallada sobre Excel VBA en general. Permítanos recomendamos Excel 2010 Potencia Programación con VBA por John Walkenbach (Wiley) como el siguiente paso en su aprendizaje. Este referencia es una guía completa de VBA, el buceo profundo en el modelo de objetos de Excel.

Parte II

Trabajando con Libros de Trabajo

Esta parte contiene las macros relacionadas con libros de trabajo: apertura ellos, cerrarlos, los protegen, y muchas otras acciones.

En esta parte

Macro 1 Creación de un nuevo libro de trabajo desde cero .......................................... ...................... 39

Macro 2 Guardar un libro de trabajo cuando un particular de la célula se cambia ..................................... 41

Macro 3 Guardar un libro de trabajo antes de cerrar ........................................... ................................ 43

Macro 4 Proteger una hoja de cálculo en el libro de trabajo Cerrar .......................................... ..................... 46

Macro 5 desproteger una hoja de cálculo en el libro de trabajo abierto .......................................... ............... 48

Macro 6 Abrir un libro de trabajo de una pestaña específica ......................................... ................................. 50

Macro 7 Apertura de un libro de trabajo específicos definidos por el usuario ........................................ ... 52

Macro 8 determinar si un libro de trabajo ya está abierto ......................................... ..... 54

Macro 9 determinar si un libro de trabajo existe en un directorio ...................................... 57

Macro 10 Conexiones Actualizar todos los datos de libro de trabajo en Abrir ........................................ 59

Macro 11 Cierre todos los libros de trabajo a la vez ........................................... ............................................ 61

Macro 12 Abrir todos los libros de trabajo en un directorio .......................................... ............................... 63

Macro 13 Imprimir todos los libros de trabajo en un directorio .......................................... ................................... 65

Macro 14 Prevenir el Cuaderno de Trabajo de clausura hasta que una célula se llena .................. 67

Macro 15 Crear una copia de seguridad de un libro de trabajo actual con la fecha de hoy ............................. 69

Un libro no es sólo un archivo de Excel; también es un objeto en el modelo de objetos de Excel (una jerarquía de programación que expone piezas de Excel VBA). Esto significa que usted puede hacer referencia a los libros de trabajo a través de VBA para hacer cosas interesantes como crean automáticamente nuevos libros de trabajo, evitar que los usuarios libros de cierre, automáticamente copias de los libros de trabajo, y mucho más. Comenzamos nuestra lista de 101 macros aquí con una lista de las macros del libro de trabajo más útiles.

Si usted es nuevo a Excel VBA, es muy recomendable que primero toma una mirada rápida en la Parte I. Allí, se encuentra el fundamento básico que necesita para entender muchos de los conceptos que se encuentran en las macros de esta Parte.

El código para esta parte se puede encontrar en el sitio web el compañero de este libro. Ver este libro de Introducción para más en el sitio web de compañía.

Macro 1: Creación de un nuevo libro de trabajo desde cero

A veces se puede querer o necesitar para crear un nuevo libro en una forma automatizada. Por ejemplo, puede ser necesario copiar datos de una tabla y pegarla en un libro de trabajo de nueva creación. La siguiente macro copia un rango de celdas de la hoja activa y pastas de los datos en un libro nuevo.

Cómo funciona

Esta macro es relativamente intuitivo como usted lee a través de las líneas del código.

Sub Macro1()‘Step 1 Copy the dataSheets(“Example 1”).Range(“B4:C15”).Copy‘Step 2 Create a new workbookWorkbooks.Add‘Step 3 Paste the dataActiveSheet.Paste Destination:=Range(“A1”)‘Step 4 Turn off application alertsApplication.DisplayAlerts = False‘Step 5 Save the newly created workbookActiveWorkbook.SaveAs _Filename:=”C:\Temp\MyNewBook.xlsx”

‘Step 6 Turn application alerts back on

Application.DisplayAlerts = TrueEnd Sub

Así es como funciona esta macro:

1. En el paso 1, simplemente copiar los datos que va desde las celdas B4 a C15.

Lo que hay que destacar aquí es que está especificando la copia y la gama por su nombre. Este es una buena práctica cuando se está trabajando con varios libros abiertos al mismo tiempo.

2. Estamos utilizando el método Add del objeto Workbook para crear un nuevo libro. Esto es equivale a hacer clic manualmente File➜New➜Blank Documento en la cinta de opciones de Excel.

3. En este paso, se utiliza el método Paste para enviar los datos que ha copiado a la celda A1 de la nueva libro de trabajo.

Preste atención al hecho de que el código se refiere al objeto ActiveSheet. Al agregar un libro, el libro nuevo de inmediato gana foco, convirtiéndose en el libro activo. Este es el mismo comportamiento que se vería si tuviera que añadir un libro a mano.

4. En el Paso 4 del Código, que establece el método DisplayAlerts en False, convirtiendo efectivamente fuera Las advertencias de Excel. Hacemos esto porque en el paso siguiente del código, ahorramos el recién creado libro de trabajo. Podemos ejecutar esta macro varias veces, en cuyo caso, Excel intenta salvar el presentar varias veces.

¿Qué sucede cuando intenta guardar un libro varias veces? Así es - Excel advierte que ya existe un archivo de por ahí con ese nombre y luego le pregunta si desea sobrescribir el archivo ya existente. Debido a que su objetivo es automatizar la creación de la nueva libro, que desea suprimir esa advertencia.

5. En el Paso 5, que guarde el archivo utilizando el método SaveAs. Tenga en cuenta que estamos entrando en el pleno camino de la ubicación de almacenamiento, incluyendo el nombre del archivo final.

6. Porque nos volvimos aplicación altera fuera en el paso 4, tenemos que volver a activarlos. Si no lo hacemos, Excel continúa suprimiendo todas las advertencias para la vida de la sesión actual.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado. Es probable que tenga que cambiar el nombre de la hoja, la dirección de rango, y la ubicación en Guardar.

Macro 2: Guardar un libro de trabajo Cuando un especial de la célula se cambia

A veces, usted puede estar trabajando en datos que es tan sensible que usted desea guardar cada vez que un particular, se cambia celda o rango de celdas. Esta macro le permite definir el rango de celdas que, cuando se cambiada, obliga al libro para guardar.

Cómo funciona

El secreto de este código es el método Intersect. Porque no queremos salvar la hoja de cálculo cuando los cambios celulares viejos, utilizamos el método Intersect para determinar si la célula diana (la célula Eso cambió) intersecta con la gama hemos especificado que el rango de disparo (C5: C16 en este caso).

El método Intersect vuelve una de dos cosas: o bien un objeto Range que define la intersección entre las dos gamas indicadas o nada. Así que en esencia, tenemos que tirar la célula diana contra el método Intersect para comprobar si hay un valor de nada. En ese punto, podemos hacer que el decisión si desea guardar el 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 procedureExit Sub‘Step 3: If there is an intersection, save the workbookElseActiveWorkbook.Save‘Close out the If statementEnd If

End Sub

1. En el paso 1, simplemente estamos comprobando si la célula diana (la célula que ha cambiado) se encuentra en la rango especificado por el método Intersect. Un valor de Nada significa las cataratas de células diana fuera del rango especificado.

2. Paso 2 obliga a la macro para parar y salir del procedimiento si no hay intersección entre la célula diana y de la gama especificada.

3. Si hay una intersección, Paso 3 fuegos el método Save del libro activo, sobrescribiendo la versión anterior.

4. En el paso 4, simplemente cierre la instrucción If. Cada vez que una instancia de un If…Then…Else check, Cheque Si no, debe cerrar el partido con un final correspondiente End If

Cómo usarloPara implementar esta macro, tiene que copiar y pegar en el código de evento Worksheet_Change ventana. La colocación de la macro aquí permite que se ejecute cada vez que realice algún cambio en la hoja.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en la ficha de la que desea activar el código.

4. Seleccione el evento Change de la lista desplegable de eventos (ver Figura 2-1).

5. Escriba o pegue el código en el módulo recién creado, el cambio de la dirección de gama para adaptarse a su necesita.

Figura 2-1: Introduzca o pegar el código en la ventana de código de evento Worksheet_Change.

Macro 3: Guardar un libro de trabajo

Antes de Cierre

Esta macro es una excelente manera de proteger a los usuarios de forma inadvertida cerrar su archivo antes de guardar. ¿Cuándo implementado, esta macro garantiza que Excel guarda automáticamente antes de cerrar el libro.

Excel normalmente advierte a los usuarios que están tratando de cerrar un libro que no son salvos, dando en una opción para guardar antes de cerrar. Sin embargo, muchos usuarios pueden soplar el pasado advertencia y sin darse cuenta, haga clic en No, diciendo Excel para cerrar sin guardar. con este macro, están protegiendo contra esta guardando automáticamente antes del cierre.

Cómo funciona

Este código se activa por eventos BeforeClose del libro. Cuando intenta cerrar el libro, este evento se desencadena, que ejecuta el código dentro. El quid del código es simple - se le pregunta al usuario si realmente quiere cerrar el libro (ver Figura 2-2). La macro luego evalúa si el usuario se hace clic en Aceptar o Cancelar.

Figura 2-2: Un cuadro de mensaje se activa cuando se intenta cerrar el libro.

La evaluación se hace con una instrucción Select Case. La instrucción Select Case es una alternativa a la instrucción If ... Then ... Else, que le permite realizar comprobaciones de estado en sus macros. La construcción básica de una instrucción Select Case es simple.

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 una instrucción Select Case, puede realizar muchas verificaciones condicionales. En este caso, estamos simplemente la comprobación de Aceptar o Cancelar. Echa un vistazo al código.

Private Sub Workbook_BeforeClose(Cancel As Boolean)‘Step 1: Activate the message box and start the checkSelect Case MsgBox(“Save and close?”, vbOKCancel)‘Step 2: Cancel button pressed, cancel the closeCase Is = vbCancelCancel = True‘Step 3: OK button pressed, save the workbook and closeCase Is = vbOKActiveWorkbook.Save‘Step 4: Close your Select Case statementEnd SelectEnd Sub

En el Paso 1, activamos el cuadro de mensaje como el cheque condición para la instrucción Select Case.

Aquí, utilizamos el argumento vbOKCancel para asegurar que el botones Aceptar y Cancelar se presentan como opciones.

2. Si el usuario hace clic en Cancelar en el cuadro de mensaje, la macro dice Excel para cancelar la Workbook_Close evento. Esto se hace pasando True al Cancelar Boole.

3. Si el usuario hace clic en Aceptar en el cuadro de mensaje, Paso 3 entra en vigor. Aquí le decimos a Excel para guardar la libro de trabajo. Y porque no nos fijamos el Cancelar booleano True, Excel continúa con el cierre.

4. En el paso 4, simplemente cierre la instrucción Select Case. Cada vez que una instancia de un Seleccione el asunto, debe cerrarlo con un correspondiente End Select.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en el evento Workbook_BeforeClose ventana de código. La colocación de la macro no permite que se ejecute cada vez que se intenta cerrar el libro.

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento BeforeClose en la lista desplegable de eventos (ver Figura 2-3).

5. Escriba o pegue el código en el módulo recién creado.

Figura 2-3: Escriba o pegue el código en la ventana de código de evento Workbook_BeforeClose.

Macro 4: Proteger una hoja de cálculo el Libro de Trabajo Cerrar

A veces es necesario enviar el libro por el mundo con la protección de las hojas de trabajo específicas.

Si usted encuentra que usted está constantemente proteger y desproteger las hojas antes de distribuir los libros, esta macro puede ayudar.

Cómo funciona

Este código se activa por eventos BeforeClose del libro. Cuando intenta cerrar el libro, este evento se desencadena, que ejecuta el código dentro. La macro protege automáticamente la hoja especificada con la contraseña dada, y luego guarda el libro.

Private Sub Workbook_BeforeClose(Cancel As Boolean)‘Step 1: Protect the sheet with a passwordSheets(“Sheet1”).Protect Password:=”RED”‘Step 2: Save the workbookActiveWorkbook.SaveEnd Sub

1. En el paso 1, estamos especificando de forma explícita que la hoja que queremos proteger - Hoja1, en este caso.

También estamos proporcionando el argumento de la contraseña, la contraseña: = ROJO. Esto define la contraseña necesario para quitar la protección.

Este argumento de la contraseña es completamente opcional. Si omite este conjunto, la hoja será todavía ser protegidos, pero usted no necesitará una contraseña para desproteger la misma. Además, tenga en cuenta que las contraseñas de Excel entre mayúsculas y minúsculas, por lo que querrá prestar atención a la contraseña exacta y capitalización que está utilizando.

2. Paso 2 le dice a Excel para guardar el libro. Si no salvamos el libro, la protección de la hoja simplemente aplicamos no estará en efecto la próxima vez que se abre el libro.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en el evento Workbook_BeforeClose ventana de código. La colocación de la macro aquí permite que se ejecute cada vez que se intenta cerrar el libro.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento BeforeClose en la lista desplegable de eventos (ver Figura 2-4).

5. Escriba o pegue el código en el módulo de nueva creación, la modificación del nombre de la hoja (si es necesario) y la contraseña. Tenga en cuenta que usted puede proteger hojas adicionales mediante la adición de declaraciones adicionales antes de la instrucción ActiveWorkbook.Save.

Figura 2-4: Escriba o pegue el código en la ventana de código de evento Workbook_BeforeClose.

Macro 5: desproteger una hoja de trabajo el libro de trabajo abierto

Si usted ha distribuido libros con láminas protegidas, es probable que obtenga los libros de vuelta con el hojas todavía protegidos. A menudo, es necesario desproteger las hojas de un libro antes 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 evento Open del libro. Al abrir un libro de trabajo, este evento se dispara, ejecuta el código dentro. Esta macro desprotege automáticamente la hoja especificada con el dado contraseña cuando se abre el libro.

Private Sub Workbook_Open()‘Step 1: Protect the sheet with a passwordSheets(“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ón a la contraseña exacta y capitalización que está utilizando.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en el código de evento Workbook_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 Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento Open en la lista desplegable de eventos (ver Figura 2-5).

5. Escriba o pegue el código en el módulo de nueva creación, la modificación del 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ódigo en la ventana de código de evento Workbook_Open.

Macro 6: Abrir un libro de trabajo a una ficha específica

En algunas situaciones, es imperativo que se inicia el libro en una hoja de cálculo específica. con este macro, si un usuario está trabajando con el libro, no pueden ir por mal camino, porque el libro se inicia en la hoja de cálculo exacto que necesita.

Cómo funciona

Esta macro utiliza evento Open del libro para comenzar el libro en la hoja especificada cuando el se abre libro.

Private Sub Workbook_Open()‘Step 1: Select the specified sheetSheets(“Sheet1”).SelectEnd Sub

La macro explícitamente los nombres de la hoja del libro de trabajo debería saltar a cuando se abre.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en la ventana de código evento Workbook_Open.

La colocación de la macro aquí permite que se ejecute cada vez que el libro se abre.

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en

Para ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento Open en la lista desplegable de eventos (ver Figura 2-6).

5. Escriba o pegue el código en el módulo recién creado, cambiando el nombre de la hoja, si es necesario.

Figura 2-6: Escriba o pegue el código en la ventana de código de evento Workbook_Open.

Macro 7: Abrir un libro de trabajo específico Definido por el usuario

¿Quieres darte a ti mismo o sus usuarios una forma rápida de buscar y abrir un archivo? Esta macro utiliza una sencilla técnica que se abre un cuadro de diálogo amigable, que le permite navegar por y abrir el archivo de Excel de su elección.

Cómo funciona

Esta macro abre el cuadro de diálogo que aparece en la Figura 2-7, lo que permite al usuario navegar por y abrir una Archivo de Excel.

Figura 7.2: El cuadro de diálogo Abrir activada por nuestra macro.

Así es como funciona esta macro:

Sub Macro7()‘Step 1: Define a string variable.Dim FName As Variant‘Step 2: GetOpenFilename Method activates dialog box.FName = Application.GetOpenFilename( _FileFilter:=”Excel Workbooks,*.xl*”, _Title:=”Choose a Workbook to Open”, _MultiSelect:=False)

‘Step 3: If a file was chosen, open it!If FName <> False ThenWorkbooks.Open Filename:=FNameEnd IfEnd Sub

1. Lo primero que esta macro hace es declarar una variable variante que contiene el nombre del archivo que el usuario elige. FName es el nombre de nuestra variable.

2. En el paso 2, utilizamos el método GetOpenFilename para acceder a un cuadro de diálogo que nos permite buscar y seleccionar el archivo que necesitamos.

El método GetOpenFilename soporta unos parámetros personalizables. El FileFilter parámetro nos permite especificar el tipo de archivo que estamos buscando. El parámetro Title nos permite cambiar el título que aparece en la parte superior del cuadro de diálogo. El parámetro MultiSelect nos permite limitar la selección a un archivo.

3. Si el usuario selecciona un archivo desde el cuadro de diálogo, la variable FName se llena con el nombre de la archivo que han elegido. En el paso 3, comprobamos para una variable FName vacía. Si la variable no es vacío, se utiliza el método Open de los libros de trabajo objeto para abrir el archivo.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

5. Opcionalmente, puede asignar la macro a un botón (consulte la sección "Asignación de una macro a un

botón y otros controles de formulario "en la Parte I).

Macro 8: Determinar si un Libro de trabajo ya está abierto

La macro anterior abre automáticamente un libro basado en la selección del usuario. Al pensar sobre la apertura de los libros de trabajo de forma automática, debe tener en cuenta lo que puede suceder si intenta abrir un libro que ya está abierto. En el mundo no-VBA, Excel intenta abrir el archivo de nuevo, con un advirtiendo que se perderán los cambios no guardados. En VBA, es una buena idea para proteger contra tal ocurrencia comprobando si un determinado archivo ya está abierto antes de tratar de abrirlo de nuevo.

Cómo funciona

La primera cosa a notar acerca de esta macro es que es una función, no un procedimiento secundario. –Como Quieras ver, por lo que esta macro una función que nos permite pasar cualquier nombre de archivo a la misma para comprobar si ese archivo es ya abierto.

La esencia de este código es simple. Estamos probando un nombre de archivo dado para ver si se puede asignar a un objeto variable. Sólo libros abiertos se pueden asignar a una variable de objeto. Cuando tratamos de asignar un libro cerrado a la variable, se produce un error.

Así que si el libro determinado puede ser asignado, el libro está abierto; si se produce un error, el libro es cerrada.

Function FileIsOpenTest(TargetWorkbook As String) As Boolean‘Step 1: Declare variablesDim TestBook As Workbook‘Step 2: Tell Excel to Resume on ErrorOn Error Resume Next‘Step 3: Try to assign the target workbook to TestBookSet TestBook = Workbooks(TargetWorkbook)‘Step 4: If no error occurred then Workbook is already openIf Err.Number = 0 ThenFileIsOpenTest = TrueElseFileIsOpenTest = FalseEnd IfEnd Function

1. Lo primero que la macro hace es declarar una variable de cadena que contendrá el nombre de archivo que el usuario elige. TestBook es el nombre de nuestra variable de cadena.

2. En el Paso 2, le estamos diciendo a Excel que puede haber un error de ejecutar este código. En el caso de una error, reanudar el código. Sin esta línea, el código simplemente detenerse cuando se produce un error.

Una vez más, estamos probando un nombre de archivo dado para ver si se puede asignar a una variable de objeto. Así que si el libro determinado puede ser asignado, está abierto; si se produce un error, que está cerrado. Necesitamos tener el código de continuar si se produce un error.

3. En el paso 3, que están tratando de asignar el libro dado a la variable de objeto TestBook.

El libro que estamos tratando de asignar es en sí misma una variable de cadena llamada TargetWorkbook. TargetWorkbook se pasa a la función de las declaraciones de función (ver la primera línea de el código). Esta estructura elimina la necesidad de codificar un nombre del libro, lo que nos permite pasarlo como una variable en lugar.

4. En el paso 4, simplemente Verificamos si se produjo un error. Si un error no ocurrió, el libro está abierto, así que nos pusimos en la FileIsOpenTest True. Si se produce un error, eso significa que el libro no está abierto. En ese caso, nos fijamos el FileIsOpenTest False.

Una vez más, esta es una función que se puede utilizar para evaluar cualquier archivo se pasa a la misma, a través de su Argumento TargetWorkbook. Esa es la belleza de poner esta macro en una función.

La macro siguiente muestra cómo implementar esta función. En este caso, estamos utilizando el misma macro se vio en la sección anterior, "Macro 7: Abrir un libro de trabajo específico Definido por el usuario ", pero esta vez,

estamos llamando a la nueva función de FileIsOpenTest asegúrese de que el usuario no puede abrir un archivo ya abierto.

Sub Macro8()‘Step 1: Define a string variable.Dim FName As VariantDim FNFileOnly As String‘Step 2: GetOpenFilename Method activates dialog box.FName = Application.GetOpenFilename( _FileFilter:=”Excel Workbooks,*.xl*”, _Title:=”Choose a Workbook to Open”, _MultiSelect:=False)‘Step 3: Open the chosen file if not already opened.If FName <> False ThenFNFileOnly = StrReverse(Left(StrReverse(FName), _InStr(StrReverse(FName), “\”) - 1))

If FileIsOpenTest(FNFileOnly) = True ThenMsgBox “The given file is already open”ElseWorkbooks.Open Filename:=FNameEnd IfEnd IfEnd Sub

Cómo usarlo

Para implementar esta macro, puede copiar y pegar las dos piezas de código en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

5. Opcionalmente, puede asignar la macro a un botón (véase la sección sobre "Asignación de una macro a un botón y otros controles de formulario "en la Parte I).

Macro 9: determinar si un Libro de trabajo existe en un directorio

Usted puede tener un proceso que manipula un archivo en algún lugar de su PC. Por ejemplo, es posible que necesite para abrir un libro existente para agregar nuevos datos a él sobre una base diaria. En estos casos, es posible que necesite prueba para ver si el archivo que necesita para manipular realmente existe. Esta macro le permite pasar de un ruta del archivo para evaluar si el archivo está allí.

Cómo funciona

La primera cosa a notar acerca de esta macro es que es una función, no un procedimiento secundario. Hacer este una función de macro nos permite pasar cualquier ruta del archivo a la misma.

En esta macro, se utiliza la función Dir. La función Dir devuelve una cadena que representa el nombre de el archivo que coincida con lo que pasa a ella. Esta función se puede utilizar de muchas maneras, pero aquí, estamos utilizarlo para comprobar si la ruta del archivo que pasamos a ella existe.

Function FileExists(FPath As String) As Boolean‘Step 1: Declare your variables.Dim FName As String‘Step 2: Use the Dir function to get the file nameFName = Dir(FPath)‘Step 3: If file exists, return True else FalseIf FName <> “” Then FileExists = True _Else: FileExists = FalseEnd Function

1. Paso 1 declara una variable de cadena que contiene el nombre de archivo que regresa de la función Dir.

FName es el nombre de la variable de cadena.

2. En el paso 2, que intenta establecer la variable FName. Hacemos esto al pasar la variable FPATH a la función Dir. Se pasa a través de esta variable FPATH las declaraciones de funciones (ver el primero línea del código). Esta estructura nos impide tener que codificar una ruta de archivo, pasándole como una variable en lugar.

3. Si la variable FName no se puede establecer, esto significa que el camino pasamos no existe. Así la variable FName está vacía. Paso 3 simplemente se traduce ese resultado a un True o False expresión.

Una vez más, esta es una función que se puede utilizar para evaluar cualquier ruta de archivo se pasa a la misma. Eso es la belleza de la redacción de este macro como una función.

La macro siguiente muestra cómo utilizar esta función:

Sub Macro9)If FileExists(“C:\Temp\MyNewBook.xlsx”) = True ThenMsgBox “File exists.”ElseMsgBox “File does not exist.”End IfEnd Sub

Cómo usarlo

Para implementar esta macro, puede copiar y pegar las dos piezas de código en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Macro 10: Conexiones Actualizar todos los datos en libro en abierto

Su libro puede tener conexiones con fuentes de datos externas, como las consultas web, MSQuery conexiones, conexiones de tabla dinámica, y así sucesivamente. En estos casos, puede ser útil para actualizar estos conexiones de datos automáticamente cuando se abre el libro. Esta macro hace el truco.

Cómo funciona

Esta macro es una herramienta fácil de una sola línea que utiliza el método Refreshall. Este método actualiza todos las conexiones en un libro u hoja de trabajo determinado. En este caso, estamos apuntando a todo el libro.

Private Sub Workbook_Open()‘Step 1: Use the RefreshAll methodWorkbooks(ThisWorkbook.Name).RefreshAllEnd Sub

La cosa a destacar en esta macro es que estamos utilizando el objeto ThisWorkbook. Este objeto es un fácil y de forma segura para que usted pueda apuntar al libro actual. La diferencia entre ThisWorkbook y ActiveWorkbook es sutil pero importante. El objeto ThisWorkbook refiere al libro que el código está contenido en. El objeto ActiveWorkbook hace referencia al libro que está actualmente activo.

A menudo devuelven el mismo objeto, pero si el libro de ejecutar el código no es el libro activo, regresan diferentes objetos. En este caso, usted no quiere correr el riesgo refrescantes conexiones en otros libros, por lo que utilizar ThisWorkbook.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en la ventana de código evento Workbook_Open.

La colocación de la macro no permite que se ejecute cada vez que el libro se abre.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento Open en la lista desplegable de eventos (ver Figura 2-8).

5. Escriba o pegue el código en el módulo recién creado.

Figura 2-8: Escriba o pegue el código en la ventana de código de evento Workbook_Open.

Macro 11: Cierre todos los libros a la vez

Una de las cosas más molestas en Excel está cerrando muchos libros a la vez. Para cada libro que haya abierto, debes activar el trabajo, cerrarla y confirme guardar los cambios. No hay fácil manera de cerrar a todos hacia abajo al mismo tiempo. Esta pequeña macro se encarga de esa molestia.

Cómo funciona

En esta macro, la colección de libros de trabajo recorre todos los libros abiertos. Como los bucles de macro a través de cada libro, se ahorra y les cierra.

Sub Macro11()‘Step 1: Declare your variablesDim wb As Workbook‘Step 2: Loop through workbooks, save and closeFor Each wb In Workbookswb.Close SaveChanges:=TrueNext wbEnd Sub

1. Paso 1 declara una variable de objeto que representa a un objeto Workbook. Esto nos permite enumerar todos los libros abiertos, capturando sus nombres a medida que avanzamos.

2. Paso 2 simplemente recorre los libros abiertos, el ahorro y cerrarlos. Si tú no quiere salvarlos, cambiar el argumento SaveChanges de True a False.

Cómo usarlo

El mejor lugar para almacenar esta macro está en tu libro de macros personal. De esta manera, la macro es siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Proyecto de VBE ventana, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11 en el teclado.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en la ventana de proyecto, no existe todavía. Vas a tener que grabar un macro, usando libro de macros Workbook como el destino.

Para grabar la macro en el libro de macros personales, seleccione la Macro Personal Opción Libro de trabajo en el cuadro de diálogo Grabar macro antes de empezar la grabación. Este opción está en Store Macro In drop-down box. Simplemente grabar un par de células clics y luego detener la grabación. Puede descartar la macro grabada y reemplazarlo con éste.

Macro 12: Abierto todos los libros en un Directorio

He aquí un escenario: Usted ha escrito una macro fresco que se aplica un procesamiento automatizado para cada libro abre. Ahora el problema es que se necesita para entrar en su directorio, abra cada libro, ejecutar la macro, guárdelo, cierre el libro y, a continuación, abra la siguiente. Abriendo cada libro en un directorio es típicamente un proceso manual que consume tiempo. Esta macro resuelve ese problema.

Cómo funciona

En esta macro, se utiliza la función Dir. La función Dir devuelve una cadena que representa el nombre de el archivo que coincida con lo que pasa a ella.

En este código, se utiliza la función Dir para enumerar todos los archivos .xlsx en un directorio determinado, capturar el nombre de cada archivo. Entonces abrimos cada archivo, ejecute algún código, y finalmente cerrar el archivo después guardar.

Sub Macro12()‘Step 1:Declare your variablesDim MyFiles As String‘Step 2: Specify a target directoryMyFiles = Dir(“C:\Temp\*.xlsx”)Do While MyFiles <> “”‘Step 3: Open Workbooks one by oneWorkbooks.Open “C:\Temp\” & MyFiles‘run some code hereMsgBox ActiveWorkbook.NameActiveWorkbook.Close SaveChanges:=True‘Step 4: Next File in the DirectoryMyFiles = DirLoopEnd Sub

1. Paso 1 declara la variable MyFiles cadena que capturará cada nombre de archivo que está en el enumeración.

2. En el paso 2, la macro utiliza la función Dir para especificar el tipo de directorio y archivo somos buscando. Tenga en cuenta que el código aquí está buscando * .xlsx. Esto significa que sólo se .xlsx archivos ser colocado a través. Si usted está buscando para los archivos .xls, es necesario cambiar eso (junto con el directorio que es necesario buscar). Esta macro pasa cualquier nombre de archivo que encuentra a la cadena MyFiles variable.

3. Paso 3 abre el archivo, hace algunas cosas (aquí es donde usted pondría en cualquier código de macro para realizar las acciones deseadas), y luego en Guardar y cerrar el archivo. En este sencillo ejemplo, estamos llamando un cuadro de mensaje para mostrar cada nombre de archivo que se abre.

4. El último paso de los bucles macro volver a encontrar más archivos. Si no hay más archivos, las MyFiles variable será blanco. Si ese es el caso, el bucle final y macro.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Sub Macro13()‘Step 1:Declare your variablesDim MyFiles As String‘Step 2: Specify a target directoryMyFiles = Dir(“C:\Temp\*.xlsx”)

Do While MyFiles <> “”‘Step 3: Open Workbooks one by oneWorkbooks.Open “C:\Temp\” & MyFilesActiveWorkbook.Sheets(“Sheet1”).PrintOut Copies:=1ActiveWorkbook.Close SaveChanges:=False‘Step 4: Next File in the DirectoryMyFiles = DirLoopEnd Sub

1. Paso 1 declara la variable MyFiles cadena que capturará cada nombre de archivo que está en el enumeración.

2. Paso 2 utiliza la función Dir para especificar el tipo de directorio y archivo que estamos buscando. Nota que el código aquí está buscando * .xlsx. Esto significa que sólo los archivos .xlsx serán bucle a través. Si usted está buscando para los archivos .xls, tendrá que especificar que (junto con el directorio que es necesario buscar). La macro pasa cualquier nombre de archivo que encuentra a la variable MyFiles cadena.

3. Paso 3 abre el archivo y luego imprime una copia de Sheet1. Ni que decir tiene, es probable que quiere cambiar el que las hojas para imprimir. También puede cambiar el número de copias que desea imprimir.

4. Paso 4 vuelve al encontrar más archivos. Si no hay más archivos, la variable MyFiles está en blanco.

Si ese es el caso, el bucle final y macro.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo de nueva creación, la modificación de la declaración de impresión como sea necesario.

Macro 14: Prevención del Libro de Trabajo de Cierre Hasta que una célula está poblado

Hay momentos en los que no desea que un usuario cierre un libro sin entrar en una pieza específica de los datos. En estas situaciones, desea que Excel para negar al usuario la posibilidad de cerrar el libro hasta la célula diana se rellena. Aquí es donde entra en juego esta macro.

Cómo funciona

Este código se activa por eventos BeforeClose del libro. Cuando intenta cerrar el libro, este evento se desencadena, que ejecuta el código dentro. Esta macro comprueba si la célula diana (célula C7, en este caso) está vacía. Si está vacío, se cancela el proceso de cierre. Si C7 no está vacía, el libro guarda y se cierra.

Private Sub Workbook_BeforeClose(Cancel As Boolean)‘Step 1: Check to see if Cell C7 is blankIf Sheets(“Sheet1”).Range(“C7”).Value = “” Then‘Step 2: Blank: cancel the Close and tell the userCancel = TrueMsgBox “Cell C7 cannot be blank”‘Step 3: Not Blank; Save and CloseElseActiveWorkbook.Close SaveChanges:=TrueEnd IfEnd Sub

1. Paso 1 comprueba si C7 está en blanco.

2. Si está en blanco, Paso 2 entra en vigor, de cancelar el proceso de cierre. Esto se hace pasando Fiel a Cancelar el Boole. Paso 2 también activa un cuadro de mensaje que notifica al usuario de su estupidez (bueno, no es así de dura, en realidad).

3. Si la celda C7 no está en blanco, el libro guarda y cierra.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en el evento Workbook_BeforeClose ventana de código. La colocación de la macro aquí permite que se ejecute cada vez que se intenta cerrar el libro de trabajo.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en ThisWorkbook.

4. Seleccione el evento BeforeClose en la lista desplegable de eventos (ver Figura 2-9).

5. Escriba o pegue el código en el módulo recién creado.

Figura 2-9: Escriba o pegue el código en la ventana de código de evento Workbook_BeforeClose.

Cuaderno de Trabajo con fecha de hoy

Todos sabemos que hacer copias de seguridad de su trabajo es importante. Ahora usted puede tener una macro que lo haga por usted.

Este simple macro guarda su libro a un nuevo archivo con la fecha de hoy como parte del nombre.

Cómo funciona

El truco para esta macro es unir las piezas del nuevo nombre de archivo. El nuevo nombre de archivo consta de tres piezas: la ruta, la fecha de hoy, y el nombre de archivo original.

El camino es capturado por el uso de la propiedad Path del objeto ThisWorkbook. La fecha de hoy es agarró con la función Fecha.

Se dará cuenta de que estamos formatear la fecha (Format (Date, "dd-mm-yy")). Esto es porque por

De forma predeterminada, la función Fecha devuelve dd / mm / aaaa. Utilizamos guiones en lugar de barras diagonales porque las barras diagonales causarían el archivo de salvar en fallar. (Windows no permite barras inclinadas nombres de archivo.)

La última pieza del nuevo nombre de archivo es el nombre de archivo original. Usamos la propiedad Name del ThisWorkbook objeto a capturar que:

Sub Macro15()‘Step 1: Save workbook with new filenameThisWorkbook.SaveCopyAs _Filename:=ThisWorkbook.Path & “\” & _Format(Date, “mm-dd-yy”) & “ “ & _ThisWorkbook.NameEnd Sub

En el paso uno y sólo, la macro crea un nuevo nombre de archivo y utiliza el método de SaveCopyAs guardar el archivo.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

III PARTE

Automatización Tareas Hoja de trabajo con macros

En esta parte se aborda macros que trabajan en el nivel de hoja de cálculo. En esta parte, usted encontrará macros para añadir, eliminar y cambiar el nombre de las hojas de trabajo, y mucho más.

En esta parte

Macro 16 Agregar y nombre una nueva hoja .......................................... ................................... 73

Macro 17 Eliminar todo pero la hoja de cálculo activa .......................................... .............................. 75

Macro 18 Ocultar todo pero la hoja de cálculo activa .......................................... .................................. 77

Macro 19 en Mostrar todas las hojas en un libro de trabajo .......................................... .......................... 79

Macro 20 hojas de trabajo que se mueven alrededor ............................................. ........................................... 81

Macro 21 Ordenar Hojas de trabajo por nombre ............................................ ................................................ 83

Macro 22 Grupo Hojas de trabajo por color ............................................ ............................................. 85

Macro 23 Copiar una hoja de cálculo a un nuevo libro ......................................... .......................... 87

Macro 24 Crear un nuevo libro para cada hoja de trabajo ......................................... ............... 88

Macro 25 Imprimir especificado Worksheets..........................................................................................90

Macro 26 Proteger Todo Worksheets..................................................................................................92

Macro 27 Desproteger Todo Worksheets............................................................................................94

Macro 28 Crear una tabla de contenido para sus hojas de trabajo ........................................ .......... 96

Macro 29 Acercamiento y alejamiento de una hoja de trabajo con doble clic ................................... 99

Macro 30 Resalte la fila activa y Columna .......................................... ....................... 101

Analistas de Excel a menudo necesitan para automatizar tareas relacionadas con hojas de cálculo. Ya se trate de un-ocultar todas las hojas en un libro, o imprimir todas las hojas al mismo tiempo, muchas de las tareas se pueden automatizar para ahorrar tiempo y ganar eficiencia. En esta parte, cubrimos algunas de las macros más útiles relacionados con las hojas de trabajo.

Si usted es nuevo a Excel VBA, recomendamos que eche un vistazo rápido a la parte 1.

No proporcionamos el fundamento básico que necesita para entender muchos de los conceptos que se encuentra en las macros de esta parte.

Usted puede encontrar el código para esta Parte en el sitio web el compañero de este libro. Ver este libro de Introducción para más en el sitio web de compañía.

Macro 16: Agregar y nombrar un nuevo Hoja de trabajo

Comenzamos este capítulo con una de las automatizaciones relacionadas hoja-más simples que usted puede aplicar con una macro - añadir y nombrar una nueva hoja de cálculo.

Cómo funciona

Si usted lee a través de las líneas del código, verá esta macro es relativamente intuitivo.

Sub Macro16()‘Step 1: Tell Excel what to do if ErrorOn Error GoTo MyError‘Step 2: Add a sheet and name itSheets.AddActiveSheet.Name = _WorksheetFunction.Text(Now(), “m-d-yyyy h_mm_ss am/pm”)Exit Sub‘Step 3: If here, an error happened; tell the userMyError:MsgBox “There is already a sheet called that.”End Sub

Así es como funciona esta macro:

1. Usted debe anticipar que si se le da la nueva hoja de un nombre que ya existe, un error ocurre. Así que en el paso 1, la macro le dice a Excel para saltar inmediatamente a la línea que dice MyError (En el paso 3) si hay un error.

2. Paso 2 utiliza el método Add para agregar una nueva hoja. Por defecto, la hoja se llama Sheetxx, donde XX representa el número de la hoja. Damos la hoja de un nuevo nombre, cambiando la propiedad Name del objeto ActiveSheet. En este caso, estamos nombrando la hoja de cálculo con la fecha y hora actuales.

Al igual que con los libros de trabajo, cada vez que se añada una nueva hoja a través de VBA, se convierte automáticamente en el hoja activa. Finalmente, en el paso 2, observe que la macro sale del procedimiento. Tiene que hacer esto de manera que no va accidentalmente en el Paso 3 (que debe entrar en juego sólo si un error se produce).

3. Paso 3 notifica al usuario que ya existe el nombre de la hoja. Una vez más, este paso sólo debe ser activada si ocurre un error.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Macro 17: Eliminar todo pero el Activo Hoja de trabajo

A veces, es posible que desee eliminar todos pero la hoja de cálculo activa. En estas situaciones, puede utilizar esta macro.

Cómo funciona

Esta macro bucles de las hojas de trabajo y coincide con el nombre de cada hoja de trabajo para el nombre de la hoja activa. Cada Tiempo de los bucles de macro, elimina cualquier hoja de cálculo sin igual. Observe el uso de los DisplayAlerts método en el paso 4. Esta se convierte efectivamente fuera de las advertencias de Excel para que usted no tiene que confirmar cada borrar.

Sub Macro17()‘Step 1: Declare your variablesDim ws As Worksheet‘Step 2: Start looping through all worksheetsFor Each ws In ThisWorkbook.Worksheets‘Step 3: Check each worksheet nameIf ws.Name <> ThisWorkbook.ActiveSheet.Name Then‘Step 4: Turn off warnings and deleteApplication.DisplayAlerts = Falsews.DeleteApplication.DisplayAlerts = TrueEnd If‘Step 5: Loop to next worksheetNext wsEnd Sub

1. La primera macro declara un objeto llamado ws. Esto crea un contenedor de memoria para cada hoja de cálculo que recorre.

2. En el paso 2, la macro comienza a lazo, diciendo Excel evaluará todas las hojas de trabajo en este libro.

Hay una diferencia entre ThisWorkbook y ActiveWorkbook. El ThisWorkbook objeto hace referencia al libro que el código está contenido en. El objeto ActiveWorkbook se refiere al libro que está activo actualmente. A menudo devuelven el mismo objeto, pero si el cuaderno de trabajo que ejecuta el código no es el libro activo, vuelven diferentes objetos. en esto caso, no queremos correr el riesgo de la eliminación de hojas en otros libros, por lo que utilizar ThisWorkbook.

3. En este paso, la macro simplemente compara el nombre de la hoja activa a la hoja que se encuentra actualmente siendo en bucle.

4. Si los nombres de las hojas son diferentes, la macro elimina la hoja. Como se mencionó antes, utilizamos DisplayAlerts para suprimir todos los controles de confirmación de Excel.

5. En el paso 5, la macro bucles atrás para tomar la siguiente hoja. Después se evalúan todas las hojas, la finaliza la macro.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Tenga en cuenta que cuando se utiliza ThisWorkbook en una macro en lugar de ActiveWorkbook, no se puede ejecutar la macro desde el Libro de macros personal. Esto es porque ThisWorkbook se refiere al libro de macros personal, no el libro en que debe aplicarse la macro.

Macro 18: Ocultar Todos menos la hoja de cálculo activa

Puede que no quiera borrar todos menos la hoja activa como lo hicimos en la última macro. En lugar de ello, una más opción suave es simplemente ocultar las sábanas. Excel no le permite ocultar todas las hojas de un libro – almenos uno tiene que estar mostrando. Sin embargo, puede ocultar todos menos la hoja activa.

Cómo funciona

Esta macro bucles de las hojas de trabajo y coincide con el nombre de cada hoja de trabajo para el nombre de la hoja activa. Cada Tiempo de los bucles de macro, se esconde cualquier hoja de cálculo sin igual.

Sub Macro18()‘Step 1: Declare your variablesDim ws As Worksheet‘Step 2: Start looping through all worksheetsFor Each ws In ThisWorkbook.Worksheets‘Step 3: Check each worksheet nameIf ws.Name <> ThisWorkbook.ActiveSheet.Name Then‘Step 4: Hide the sheetws.Visible = xlSheetHiddenEnd If‘Step 5: Loop to next worksheetNext wsEnd Sub

1. Paso 1 declara un objeto llamado ws. Esto crea un contenedor de memoria para cada hoja de cálculo de la macro recorre.

2. Paso 2 comienza el bucle, diciendo a Excel para evaluar todas las hojas de trabajo en este libro. Hay una diferencia entre ThisWorkbook y ActiveWorkbook. El ThisWorkbook objeto hace referencia al libro que el código está contenido en. El objeto ActiveWorkbook se refiere al libro que está activo actualmente. A menudo devuelven el mismo objeto, pero si el cuaderno de trabajo que ejecuta el código no es el libro activo, vuelven diferentes objetos. en esto caso, no queremos correr el riesgo de hojas escondites en otros libros, por lo que utilizar ThisWorkbook.

3. En este paso, la macro simplemente compara el nombre de la hoja activa a la hoja que se encuentra actualmente siendo en bucle.

4. Si los nombres de las hojas son diferentes, la macro oculta la hoja.

5. En el paso 5, nos bucle de nuevo para obtener la siguiente hoja. Después de todas las hojas son evaluados, la macro termina.

Se dará cuenta de que hemos utilizado en nuestro xlSheetHidden macro. Esto se aplica la piel por defecto Estado que normalmente se obtiene cuando se haga clic en una hoja y seleccione Ocultar. En esta piel por defecto estado, un usuario puede hacer clic derecho sobre cualquier ficha y seleccione Mostrar. Esto muestra todas las hojas que son oculto. Pero hay otra ocultar estado que es más clandestina de la predeterminada. Si utiliza xlSheetVeryHidden para ocultar sus hojas, los usuarios no podrán verlos en absoluto - ni siquiera si haga clic en cualquier pestaña y elija Mostrar. La única manera de mostrar una hoja escondida en este forma es mediante el uso de VBA.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Macro 19: en Mostrar todas las hojas en un libro de trabajo

Si alguna vez has tenido Para mostrar varias hojas en Excel, usted sabe lo que es un dolor que es. Tienes que hacer clic cuatro veces por cada hoja que desea mostrar. Aunque esto puede no parecer mucho, trata de desocultar diez o más hojas - que llega a ser un dolor rápido. Esta macro hace fácil el trabajo de esa tarea.

Cómo funciona

Esta macro bucles de las hojas de trabajo y cambia el estado visible.

Sub Macro19()‘Step 1: Declare your variablesDim ws As Worksheet

‘Step 2: Start looping through all worksheetsFor Each ws In ActiveWorkbook.Worksheets‘Step 3: Loop to next worksheetws.Visible = xlSheetVisibleNext wsEnd Sub

1. Paso 1 declara un objeto llamado ws. Esto crea un contenedor de memoria para cada hoja de cálculo de la macro recorre.

2. En el paso 2, la macro comienza el bucle, diciendo a Excel para enumerar todas las hojas este libro.

3. Paso 3 cambia el estado visible para xlSheetVisible. Entonces se vuelve de nuevo para obtener el siguiente hoja de cálculo.

Cómo usarlo

El mejor lugar para almacenar esta macro está en tu libro de macros personal. De esa manera, la macro es siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Proyecto de VBE ventana, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en su ventana del proyecto, significa que no existe todavía. Vas a tener que grabar una macro utilizando Libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la Macro Tienda En cuadro desplegable. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar la macro grabada y sustituirlo por éste.

Macro 20: Hojas de Desplazamiento

Todos hemos tenido que reorganizar nuestra hoja de cálculo para que algunos hoja de vino antes o después de otra hoja. si

usted encuentra que a menudo tienen que hacer esto, aquí es una macro que puede ayudar.

Cómo funciona

Cuando desee reorganizar hojas, se utiliza el método Move de cualquiera de las Hojas de objeto o de la

Objeto ActiveSheet. Cuando se utiliza el método Move, es necesario especificar dónde mover la hoja

a. Usted puede hacer esto con el argumento Después, el argumento Antes, o ambos.

Sub Macro20()‘Move the active sheet to the endActiveSheet.Move After:=Worksheets(Worksheets.Count)‘Move the active sheet to the beginningActiveSheet.Move Before:=Worksheets(1)‘Move Sheet 1 before Sheet 12Sheets(“Sheet1”).Move Before:=Sheets(“Sheet12”)End Sub

Esta macro hace tres cosas. En primer lugar, se mueve la hoja activa hasta el final. Nada en VBA le permite señalas a "la última hoja." Pero usted puede encontrar el número máximo de hojas de trabajo y, a continuación, utilizar ese número como un índice para el objeto Hojas de trabajo. Esto significa que podemos entrar en algo así como hojas de trabajo (3) para señalar a la tercera hoja de un libro. Por lo tanto, puede utilizar la hoja de trabajo (Worksheets.Count) para apuntar a la última hoja.

A continuación, este macro mueve la hoja activa al principio del libro. Éste es simple; usamos Hojas de trabajo (1) a punto a la primera hoja del libro, y luego mover la hoja activa antes Aquél.

Por último, la macro demuestra que puede mover las hojas simplemente llamándolos por su nombre. En este ejemplo, nos estamos moviendo Hoja1 antes Sheet12.

Cómo usarlo

El mejor lugar para almacenar este tipo de macro es en su libro de macros personal. De esta manera, la macro está siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Ventana de proyecto VBE, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en su ventana del proyecto, significa que no existe todavía. Vas a tener que grabar una macro, el uso de libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En desplegable lista. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar el grabado macro y sustituirlo por éste.

Macro 21: Ordenar hojas de trabajo por nombre

A menudo se puede necesitar para ordenar las hojas de trabajo en orden alfabético por nombre. Se podría pensar Excel tendría un función nativa para hacer esto, pero por desgracia, no es así. Si usted no desea ordenar manualmente las hojas de cálculo más, puede utilizar esta macro para que lo haga por usted.

Cómo funciona

Esta macro se parece más complicado de lo que es. La actividad en este macro es en realidad bastante simple. Ella simplemente itera a través de las hojas del libro, la comparación de la hoja actual a la anterior uno. Si el nombre de la hoja anterior es mayor que la hoja actual (alfabéticamente), la macro mueve la hoja actual antes. En el momento en todas las iteraciones se hacen, usted tiene una ordenada libro!

Sub Macro21()‘Step 1: Declare your VariablesDim CurrentSheetIndex As IntegerDim PrevSheetIndex As Integer‘Step 2: Set the starting counts and start loopingFor CurrentSheetIndex = 1 To Sheets.CountFor PrevSheetIndex = 1 To CurrentSheetIndex - 1‘Step 3: Check Current Sheet against Previous SheetIf UCase(Sheets(PrevSheetIndex).Name) > _UCase(Sheets(CurrentSheetIndex).Name) Then‘Step 4: If Move Current sheet Before PreviousSheets(CurrentSheetIndex).Move _Before:=Sheets(PrevSheetIndex)End If‘Step 5 Loop back around to iterate againNext PrevSheetIndexNext CurrentSheetIndexEnd Sub

Tenga en cuenta que esta técnica está haciendo una especie de texto, por lo que puede que no obtenga los resultados que esperabas cuando se trabaja con nombres de hoja a base de números. Por ejemplo, Sheet10 viene antes Hoja2 porque textualmente, 1 viene antes 2. Excel no lo hace hacer la clasificación basada en números que dice 2 llega antes de las 10.

1. Paso 1 declara dos variables enteras. El CurrentSheetIndex tiene el número de índice para la iteración hoja actual, y la variable PrevSheetIndex tiene el número de índice para la iteración hoja anterior.

2. En el paso 2, la macro comienza iteración cuenta para ambas variables. Tenga en cuenta que el conteo para el PrevSheetIndex es un número detrás de la CurrentSheetIndex. Después de que los recuentos son conjunto, empezamos bucle.

3. En el paso 3, comprobamos para ver si el nombre de la hoja anterior es mayor que la de la hoja actual.

En este paso, tenga en cuenta el uso de la función UCase. Utilizamos esta para obtener los dos nombres en el mismo Estado mayúsculas. Esto evita clasificar los errores debidos a diferentes estados de caso.

4. Paso 4 se alcanza sólo si el nombre de la hoja anterior es mayor que el nombre de la hoja actual. En este paso, se utiliza el método Move para mover la hoja actual antes de la hoja anterior.

5. En el Paso 5, que se remontan alrededor del inicio del bucle. Cada iteración de los incrementos de bucle ambas variables hasta un número hasta la última hoja se toca. Después de todo iteraciones se han gastado, finaliza la macro.

Cómo usarlo

El mejor lugar para almacenar esta macro está en tu libro de macros personal. De esta manera, la macro es siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Proyecto de VBE ventana, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en su ventana del proyecto, significa que no existe todavía. Vas a tener que grabar una macro, el uso de libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En desplegable lista. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar el grabado macro y sustituirlo por éste.

Macro 22: Grupo Hojas de trabajo por color

Muchos de nosotros asignar colores a nuestras fichas de hoja de cálculo. Esto permite la confirmación visual de que los datos en cierto ficha está de alguna manera relacionada con otra ficha porque ambos tienen el mismo color. Esta macro Grupos de hojas de trabajo en función de sus colores de la ficha.

Cómo funciona

Usted puede pensar que es imposible ordenar o agrupar por color, pero Excel ofrece una manera. Excel asigna un índice número a cada color. Un color amarillo claro puede tener un número de índice de 36, mientras que un color marrón tiene el número de índice 42.

Esta macro itera por las hojas del libro, comparando el índice de color de la pestaña actual hoja a la de la anterior. Si la hoja anterior tiene el mismo número de índice de color que el hoja actual, la macro mueve la hoja actual antes. Por el momento se llevan a cabo todas las iteraciones, todas las hojas se agrupan en función de sus colores de la ficha.

Sub Macro22()‘Step 1: Declare your VariablesDim CurrentSheetIndex As IntegerDim PrevSheetIndex As Integer‘Step 2: Set the starting counts and start loopingFor CurrentSheetIndex = 1 To Sheets.CountFor PrevSheetIndex = 1 To CurrentSheetIndex - 1‘Step 3: Check Current Sheet against Previous SheetIf Sheets(PrevSheetIndex).Tab.ColorIndex = _Sheets(CurrentSheetIndex).Tab.ColorIndex Then‘Step 4: If Move Current sheet Before PreviousSheets(PrevSheetIndex).Move _Before:=Sheets(CurrentSheetIndex)End If‘Step 5 Loop back around to iterate again

Next PrevSheetIndexNext CurrentSheetIndexEnd Sub

1. Paso 1 declara dos variables enteras. El CurrentSheetIndex tiene el número de índice para la iteración hoja actual, y la variable PrevSheetIndex tiene el número de índice para la iteración hoja anterior.

2. Paso 2 comienza iteración cuenta para ambas variables. Tenga en cuenta que el conteo para el PrevSheetIndex es un número detrás de la CurrentSheetIndex. Después de que los recuentos se establecen, la macro se inicia bucle.

3. En el paso 3, los macro comprueba si el índice de color de la hoja anterior es el mismo como la de la hoja actual. Observe el uso de la propiedad Tab.ColorIndex.

4. Paso 4 se alcanza sólo si el índice de color de la hoja anterior es igual a el índice de color de la hoja actual. En este paso, la macro utiliza el método Move para mover la hoja actual antes de que la hoja anterior.

5. En el paso 5, la macro se remonta alrededor del inicio del bucle. Cada iteración del bucle incrementos de ambas variables a un número hasta que se tocó la última hoja de cálculo. Después de que todos las iteraciones han corrido, finaliza la macro.

Cómo usarlo

El mejor lugar para almacenar esta macro está en tu libro de macros personal. De esta manera, la macro es siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Proyecto de VBE ventana, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en la ventana de proyecto, no existe todavía. Vas a tener que grabar un macro, usando libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En desplegable lista. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar el grabado macro y sustituirlo por éste.

Macro 23: Copiar una hoja de trabajo a un nuevo libro

En Excel, puede copiar manualmente una hoja entera a un nuevo libro, haga clic en la hoja de destino y seleccionando la opción Mover o Copiar. Por desgracia, si intenta grabar una macro mientras lo hace, la grabadora de macros no puede escribir con precisión el código para reflejar la tarea. Así que si usted necesita programación copiar una hoja entera a un nuevo libro de la marca, esta macro ofrece.

Cómo funciona

En esta macro, primero se está copiando la hoja activa. Luego usamos el parámetro Antes de enviar el copiar en un nuevo libro que se crea sobre la marcha. La hoja copiada se posiciona como la primera hoja el nuevo libro.

El uso del objeto ThisWorkbook es importante aquí. Esto asegura que la hoja activa que es la copia es del libro que el código está en, no el nuevo libro que se crea.

Sub Macro23()‘Copy sheet, and send to new workbookThisWorkbook.ActiveSheet.Copy _Before:=Workbooks.Add.Worksheets(1)End Sub

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Macro 24: Crear un nuevo libro para cada hoja de cálculo

Muchos analistas de Excel tienen que analizar sus libros en libros separados por ficha de hoja de cálculo. en otro Es decir, que necesitan para crear un nuevo libro de trabajo para cada una de las hojas de trabajo en su libro existente.

Usted puede imaginar lo que un calvario esto sería si tuviera que hacerlo de forma manual. La siguiente macro ayuda a automatizar esta tarea.

Cómo funciona

En esta macro, se recorre las hojas de trabajo, copiando cada hoja, y luego enviar la copia a un nuevo libro que se crea sobre la marcha. Lo que hay que tener en cuenta es que los libros de trabajo de nueva creación están siendo guardado en el mismo directorio que el libro original, con el mismo nombre que el hoja copiada (wb.SaveAs ThisWorkbook.Path & "\" & ws.Name).

Sub Macro24()‘Step 1: Declare all the variables.Dim ws As WorksheetDim wb As Workbook‘Step 2: Start the looping through sheetsFor Each ws In ThisWorkbook.Worksheets‘Step 3: Create new workbook and save it.Set wb = Workbooks.Addwb.SaveAs ThisWorkbook.Path & “\” & ws.Name‘Step 4: Copy the target sheet to the new workbookws.Copy Before:=wb.Worksheets(1)wb.Close SaveChanges:=True‘Step 5: Loop back around to the next worksheetNext wsEnd Sub

No todos los nombres de hoja de cálculo válidos traducen en nombres de archivo válidos. Windows tiene reglas específicas que le impide nombrar archivos con ciertos personajes. No puede utilizar estos caracteres al nombrar a un archivo: barra invertida (\), barra (/), dos puntos (:), asterisco (*), pregunta marca, tubería (?) (|), comillas dobles ("), mayor que (>) y menor que (<). El giro es que puede utilizar algunos de estos caracteres restringidos en sus nombres de hoja; específicamente, doble cita, de canalización (|), mayor que (>) y menor que (<).

Como se está ejecutando esta macro, nombrando a los archivos recién creados para que coincida con el nombre de la hoja puede causar un error. Por ejemplo, la macro genera un error al crear un nuevo archivo a partir de una hoja llamada de mayo | Ingresos (debido al carácter de barra vertical). Para hacer una larga historia corto, evitar nombrar las hojas de cálculo con estos personajes restringidas.

1. Paso 1 declara dos variables de objeto. La variable ws crea un contenedor de memoria para cada Hoja de trabajo de la macro recorre. La variable wb crea el contenedor para el nuevo cuadernos de trabajo que creamos.

2. En el paso 2, la macro comienza bucle a través de las hojas. El uso de la ThisWorkbook objeto asegura que la hoja activa que se está copiando es del libro del código está en, no el nuevo libro que se crea.

3. En el paso 3, creamos el nuevo libro y guárdelo. Ahorramos este nuevo libro en el mismo camino como el libro original (ThisWorkbook). El nombre del archivo está dispuesto a ser el mismo nombre que el hoja activa.

4. Paso 4 copias de la hoja actualmente activa y utiliza el parámetro Antes de enviarlo a el nuevo libro como la primera ficha.

5. Paso 5 bucles atrás para obtener la siguiente hoja. Después de todas las hojas son evaluados, el finaliza la macro.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Macro 25: Imprimir especificado Hojas de trabajo

Si desea imprimir hojas específicas manualmente en Excel, es necesario mantener pulsada la tecla CTRL del teclado, seleccione las hojas que desea imprimir y, a continuación, haga clic en Imprimir. Si usted hace esto a menudo suficiente, puede considerar el uso de esta macro muy simple.

Cómo funciona

Esta es fácil. Todo lo que tenemos que hacer es pasar las hojas que desea imprimir en una matriz como se ve aquí en esta macro. Luego usamos el método PrintOut para desencadenar el trabajo de impresión. Todas las hojas que ha introducido se imprimen en una sola vez.

Sub Macro25()‘Print Certain SheetsActiveWorkbook.Sheets( _Array(“Sheet1”, “Sheet3”, “Sheet5”)).PrintOut Copies:=1End Sub

¿Quieres imprimir todas las hojas de un libro? Éste es aún más fácil.

Sub Macro25()‘Print All SheetsActiveWorkbook.Worksheets.PrintOut Copies:=1End Sub

Cómo usarlo

El mejor lugar para almacenar esta macro está en tu libro de macros personal. De esta manera, la macro es siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Proyecto de VBE ventana, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en su ventana del proyecto, significa que no existe todavía. Vas a tener que grabar una macro utilizando Libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En esplegable lista. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar el grabado macro y sustituirlo por éste.

Macro 26: Proteger todas las hojas

Antes de distribuir el libro, es posible que desee aplicar la protección de hoja para todas las hojas.

En lugar de proteger cada hoja de forma manual, puede utilizar esta macro.

Cómo funciona

En esta macro, se recorre las hojas de trabajo y de la simple aplicación de la protección con una contraseña. La Argumento Contraseña define la contraseña necesaria para eliminar la protección. El argumento contraseña es completamente opcional. Si se omite por completo, la hoja todavía será protegida; simplemente no lo hará que tenga que introducir una contraseña para desproteger la misma. Además, tenga en cuenta que las contraseñas de Excel distinguen entre mayúsculas y minúsculas, por lo usted querrá prestar atención a la capitalización exacto que está utilizando.

Sub Macro26()‘Step 1: Declare your variablesDim ws As Worksheet‘Step 2: Start looping through all worksheetsFor Each ws In ActiveWorkbook.Worksheets‘Step 3: Protect and loop to next worksheetws.Protect Password:=”RED”Next wsEnd Sub

1. Paso 1 declara un objeto llamado ws. Esto crea un contenedor de memoria para cada hoja de trabajo que bucle a través.

2. Paso 2 comienza el bucle, contando Excel queremos enumerar todas las hojas de trabajo en este libro de trabajo.

3. En el paso 3, la macro se aplica la protección con la contraseña dada, y luego vuelve al llegar la hoja de trabajo.

Cómo usarlo

El mejor lugar para almacenar esta macro está en tu libro de macros personal. De esta manera, la macro es siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. En el Proyecto de VBE ventana, se nombra personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en la ventana de proyecto, no existe todavía. Vas a tener que grabar una macro utilizando Libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En esplegable lista. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar el grabado macro y sustituirlo por éste.

Macro 27: Desproteger todas las hojas

Usted puede encontrarse constantemente tener que desproteger varias hojas de cálculo manualmente. la siguiente macro hace lo mismo mediante programación.

Cómo funciona

Esta macro bucles de las hojas de trabajo y utiliza el argumento de la contraseña para desproteger cada hoja.

Sub Macro27()‘Step 1: Declare your variablesDim ws As Worksheet‘Step 2: Start looping through all worksheetsFor Each ws In ActiveWorkbook.Worksheets‘Step 3: Loop to next worksheetws.UnProtect Password:=”RED”Next wsEnd Sub

1. Paso 1 declara un objeto llamado ws. Esto crea un contenedor de memoria para cada hoja de trabajo que bucle a través.

2. Paso 2 comienza el bucle, diciendo a Excel para enumerar todas las hojas de trabajo en este libro.

3. Paso 3 desprotege la hoja activa, proporcionando la contraseña según sea necesario, y luego vuelve de nuevo para obtener la hoja de trabajo.

Obviamente, la suposición es que todas las hojas de trabajo que deben ser sin protección tienen el mismo contraseña. Si este no es el caso, es necesario desproteger explícitamente cada hoja con su correspondiente contraseña.

Sub Macro27b()Sheets(“Sheet1”).UnProtect Password:=”RED”Sheets(“Sheet2”).UnProtect Password:=”BLUE”Sheets(“Sheet3”).UnProtect Password:=”YELLOW”Sheets(“Sheet4”).UnProtect Password:=”GREEN”End Sub

Cómo usarlo

El mejor lugar para almacenar este tipo de macro es en su libro de macros personal. De esta manera, la macro está siempre disponible para usted. El Libro de macros personal se carga cada vez que inicie Excel. en el Ventana de proyecto VBE, será nombrado personal.xlsb.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic personal.xlb en la ventana Proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Si usted no ve personal.xlb en su ventana del proyecto, significa que no existe todavía. Vas a tener que grabar una macro, el uso de libro de macros personal como el destino.

Para grabar la macro en el libro de macros personales, seleccione la opción Libro de macros personal en el cuadro de diálogo Grabar macro antes de empezar la grabación. Esta opción se encuentra en la macro tienda En desplegable lista. Simplemente grabar un par de clics de células y luego detener la grabación. Puede descartar el grabado macro y sustituirlo por éste.

Macro 28: Crear una tabla de contenido para las hojas de cálculo

Fuera de clasificar las hojas de trabajo, la creación de una tabla de contenidos para las hojas de un libro es el más comúnmente solicitado Excel macro. La razón probablemente no se pierde en ti. A menudo tenemos para trabajar con los archivos que tienen más fichas de hoja de cálculo que puede ser fácilmente visto o navegaron. Una tabla de contenidos definitivamente ayuda.

La siguiente macro no sólo crea una lista de nombres de hoja de cálculo en el libro, pero también anuncios hipervínculos para que pueda saltar fácilmente a una hoja con un simple clic.

Cómo funciona

Es fácil dejarse intimidar cuando se mira en esta macro. Hay mucho que hacer aquí. Sin embargo, si usted un paso atrás y considerar las pocas acciones simples lo hace, se convierte en un poco menos de miedo:

➤ Se elimina cualquier precedente Indice hoja

➤ Se crea una nueva tabla de contenido de hoja

➤ Se toma el nombre de cada hoja de trabajo y lo pega en la Tabla de Contenidos

➤ Se añade un hipervínculo a cada entrada de la tabla de contenido

Eso no suena tan mal. Ahora mira el código:

Sub Macro28()‘Step 1: Declare VariablesDim i As Long‘Step 2: Delete Previous TOC if ExistsOn Error Resume NextApplication.DisplayAlerts = FalseSheets(“Table Of Contents”).DeleteApplication.DisplayAlerts = TrueOn Error GoTo 0‘Step 3: Add a new TOC sheet as the first sheetThisWorkbook.Sheets.Add _Before:=ThisWorkbook.Worksheets(1)ActiveSheet.Name = “Table Of Contents”

‘Step 4: Start the i Counter

For i = 1 To Sheets.Count‘Step 5: Select Next available rowActiveSheet.Cells(i, 1).Select‘Step 6: Add Sheet Name and HyperlinkActiveSheet.Hyperlinks.Add _Anchor:=ActiveSheet.Cells(i, 1), _Address:=””, _SubAddress:=”’” & Sheets(i).Name & “’!A1”, _TextToDisplay:=Sheets(i).Name‘Step 7: Loop back increment iNext iEnd Sub

1. Paso 1 declara una variable entera i llamado a servir como el contador como las iteraciones macro a través de las hojas.

Tenga en cuenta que esta macro no es un bucle a través de las hojas de la manera macros anteriores en la presente parte lo hizo. En las macros anteriores, en bucle a través de la recolección de las hojas de trabajo y seleccionamos cada hoja de trabajo allí. En este procedimiento, estamos utilizando un contador (nuestra variable i). La razón principal se debe a que no sólo tienen que llevar un registro de las hojas, pero también tenemos que gestionar para entrar cada nombre de la hoja en una nueva fila en una tabla de contenidos. La idea es que a medida que avanza el contador a través de las hojas, también sirve para mover el cursor hacia abajo en la tabla de contenido de manera cada nueva entrada va en una nueva fila.

2. Paso 2 esencialmente intenta eliminar cualquier hoja anterior denominado índice. Porque puede que no haya ninguna Índice hoja de eliminar, tenemos que empezar Paso 2 con la A Error Resume gestor de errores en Siguiente. Esto le indica a Excel para continuar con la macro si un error es encontrado aquí. A continuación, elimine la tabla de contenidos de hoja utilizando los DisplayAlerts método, que se convierte efectivamente fuera de las advertencias de Excel, así que no tenemos que confirmar la eliminación.

Finalmente, reiniciamos el gestor de errores para atrapar todos los errores de nuevo introduciendo On Error GoTo0.

3. En el paso 3, se añade una nueva hoja al libro con el argumento Antes de colocar el nueva hoja como la primera hoja. A continuación nombramos la tabla hoja de Contenidos. Como mencionamos anteriormente en la presente parte, cuando se agrega una nueva hoja de cálculo, se convierte automáticamente en el activo hoja. Debido a que esta nueva hoja tiene el foco durante todo el procedimiento, cualquier referencia a ActiveSheet en este código se refieren a la tabla de contenido general.

4. Paso 4 comienza el contador i en 1 y termina al número máximo de todas las hojas del libro.

Una vez más, en lugar de bucle a través de la colección Hojas de trabajo como lo hemos hecho en anteriores macros, simplemente estamos usando el contador i como un número índice que podemos pasar a la Hojas objeto. Cuando el número máximo se alcanza, finaliza la macro.

5. Paso 5 selecciona la fila correspondiente en la tabla de contenido general. Es decir, si la i contador es el 1, se selecciona la primera fila de la tabla de contenido general. Si el contador i es a los 2, selecciona la segunda fila, y así sucesivamente.

Somos capaces de hacer esto utilizando el elemento células. El elemento células proporciona una muy útil modo de selección varía a través del código. Requiere sólo posiciones relativas de fila y columna como parámetros. Así Cells (1,1) se traduce en la fila 1, columna 1 (o célula A1). Las células (5, 3) se traduce en la fila 5, columna 3 (o celda C5). Los parámetros numéricos en el elemento células son especialmente útil cuando se quiere recorrer una serie de filas o columnas utilizando un incrementando el número de índice.

6. Paso 6 utiliza el método Hyperlinks.Add para añadir el nombre de la hoja e hipervínculos a la celda seleccionada. Este paso se alimenta el método Hyperlinks.Add los parámetros que necesita para construir los hipervínculos.

7. El último paso en la macro bucle de vuelta para incrementar el contador i a la siguiente recuento. ¿Cuándo el contador i llega a un número que es igual al número de hojas de cálculo en el libro, el finaliza la macro.

Cómo usarlo

Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:

1. Active el Editor de Visual Basic presionando ALT + F11.

2. Haga clic en el nombre del proyecto / libro en la ventana del proyecto.

3. Elija Insert➜Module.

4. Escriba o pegue el código en el módulo recién creado.

Macro 29: Acercamiento y alejamiento de una hoja de trabajo con doble clic

Algunas hojas de cálculo son enormes. A veces, nos vemos obligados a reducir el tamaño de la fuente hacia abajo para que podamos ver una parte decente de la hoja de cálculo en la pantalla. Si usted encuentra que usted está constantemente hacer zoom y fuera de una hoja de cálculo, alternando entre el escaneo de grandes sectores de los datos y la lectura específica células, aquí es una macro práctica que se auto-zoom de doble clic.

Cómo funciona

Con esta macro en su lugar, puede hacer doble clic en una celda de la hoja de cálculo para hacer un zoom del 200 por ciento.

Haga doble clic de nuevo y Excel zoom al 100 por ciento. Obviamente, puede cambiar los valores y complejidad en el código para satisfacer sus necesidades.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)‘Check current Zoom state‘Zoom to 100% if to at 100‘Zoom 200% if currently at 100If ActiveWindow.Zoom <> 100 ThenActiveWindow.Zoom = 100ElseActiveWindow.Zoom = 200End IfEnd Sub

Tenga en cuenta que el efecto secundario de hacer doble clic en una celda es que se entra en el modo de edición. Puedes salir del modo de edición pulsando Esc en el teclado. Si le resulta molesto en varias ocasiones pulse Esc mientras dispara esta macro, puede agregar esta declaración al final de la procedimiento:

Application.SendKeys (“{ESC}”)

Esta declaración que imita presionando Esc en el teclado.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en el Worksheet_BeforeDouble Haga clic en la ventana de código del evento. La colocación de la macro no permite que se ejecute cada vez que se hace doble clic en la sábana.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en Para ver todas las hojas.

3. Haga clic en la hoja de la que desea activar el código.

4. Seleccione el evento BeforeDoubleClick de la lista desplegable de eventos (ver Figura 3-1).

5. Escriba o pegue el código en el módulo recién creado.

Figura 3-1: Escriba o pegue el código en la ventana de código de evento Worksheet_BeforeDoubleClick.

Macro 30: Resalte la Fila Activa

y Columna

Al mirar una mesa de números, sería bueno si Aventaja resaltado la fila automáticamente y

la columna usted es adelante (como demostrado en Figura 3-2). Este efecto da una línea de primacía de arriba abajo a sus ojos

la columna así como izquierdo y corrige por la fila.

Figure 3-2: Una fila resaltada y la columna lo hace fácil de rastrear los datos horizontalmente y verticalmente.

El macro siguiente habilita el efecto usted ve en Figura 3-2 con sólo un doble-clic simple. Cuando el macro está en el lugar, Aventaja los momentos culminantes la fila y columna para la célula que es activa, mientras mejorando grandemente su habilidad de ver y revisar una reja grande.

Cómo funciona

Eche una mirada a cómo este macro trabaja:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)‘Step 1: Declare VariablesDim strRange As String‘Step2: Build the range stringstrRange = Target.Cells.Address & “,” & _Target.Cells.EntireColumn.Address & “,” & _Target.Cells.EntireRow.Address‘Step 3: Pass the range string to a RangeRange(strRange).SelectEnd Sub

1. Nosotros declaramos primero que un objeto llamado el strRange. Esto crea un recipiente de memoria a que nosotros podemos usar construya un cordón del rango.

2. un cordón del rango es nada más de la dirección para un rango. “A1” es un cordón del rango que apunta a A1 celular. “A1:G5” también es un cordón del rango; esto apunta a un rango de células que abarcan las células A1 a G5. En Paso 2, nosotros estamos construyendo un cordón del rango que abarca la célula doble-hecha clic (llamó Target en este macro), la fila activa entera, y la columna activa entera. La Address se capturan propiedades para estos tres rangos y apedazaron juntos en la variable strRange.

3. En el paso 3, alimentamos la variable strRange como la dirección para una declaración Range.Select. esta es la línea del código que finalmente se pone de relieve la selección doble clic.

Cómo usarlo

Para implementar esta macro, tiene que copiar y pegar en el Worksheet_BeforeDouble

Haga clic en la ventana de código del evento. La colocación de la macro no permite que se ejecute cada vez que se hace doble clic en la sábana.

1. Active el Editor de Visual Basic presionando ALT + F11.

2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a ella en

Para ver todas las hojas.

3. Haga clic en la hoja de la que desea activar el código.

4. Seleccione el evento BeforeDoubleClick de la lista desplegable de eventos (ver Figura 3-3).

5. Escriba o pegue el código en el módulo recién creado.

Figura 3-3: Escriba o pegue el código en la ventana de código de evento Worksheet_BeforeDoubleClick.

Pag. 119