SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
PROGRAMACIÓN DE MACROS
EN MICROSOFT EXCEL VBA
Pablo Gómez-Abajo
DotNetClub
Universidad Autónoma de Madrid
Jueves, 19 de abril, 2016
Escuela Politécnica Superior
Primer paso – activar la pestaña ‘Desarrollador’ en Excel:
• Archivo  Opciones  Personalizar cinta de opciones
• Marcar casilla ‘Desarrollador’
PESTAÑA DESARROLLADOR
2
Excel puede tener bloqueada
la ejecución de las macros.
• Archivo  Opciones 
Centro de confianza 
Configuración del centro de
confianza 
Configuración de macros
• Marcar ‘Deshabilitar todas
las macros con
notificación’
• Habilitar macros al abrir
.xlsm
EDITOR VBA
Dentro de la pestaña de desarrollador
• Botón Visual Basic. Se abre el editor VBA
3
Dentro de la carpeta Módulos
podemos incluir ficheros con el
código de nuestras macros VBA
PROGRAMACIÓN DE
MACROS
• Declaración de macros: Sub «Macro»() ... End Sub
• Variables: Dim variable As «TipoVariable»
• Objetos: Dim objeto As Variant
Set objeto = CreateObject(“«TipoObjeto»”)
• Colecciones: Dim coleccion As Collection
Set coleccion = New Collection
coleccion.Add variable
• Condicionales: If ... Then … Else … End If
• Bucles: Do ... Loop  Parada con un Exit Do
4
LECTURA Y
ESCRITURA DE DATOS
Dim book As Workbook
Dim sheet As Worksheet
...
Set book = ActiveWorkbook
Set sheet = book.Worksheets(1)
...  Ojo! En VBA de Excel los Arrays empiezan en 1
Dim p As String
p = sheet.Cells(row, col)
sheet.Cells(row + 1, col) = “Fila siguiente" & p
5
EJECUCIÓN DE
MACROS
Regresamos a la hoja Excel
• Añadir un botón: Desarrollador  Controles  Insertar
• Acciones sobre el botón: modificar texto, asignar macro, etc.
• Doble clic: ejecuta la macro
Depuración de macros
• Entrar en el editor VBA
• Marcar en la barra izquierda los break-points que se necesiten
• Ejecutar macro que se desea depurar
• F8 para ir línea por línea
• Agregar inspección sobre variables para comprobar valor
 botón derecho sobre la variable
6
EJERCICIO
Combinar dos apuestas sencillas de la quiniela de forma que se
obtiene una quiniela con 7 dobles
Comprobar el número de aciertos que se obtendrían en esta
quiniela de 7 dobles si se echase como quiniela reducida
Instrucciones:
• Completar las partes del código que faltan en las macros
Decypher y Reduce del fichero Excel quiniela.xlsm
Suerte!
7
8
Muchas gracias!!
Pablo.GomezA@uam.es

Más contenido relacionado

La actualidad más candente (16)

Pasos para hacer un macro en excel
Pasos para hacer un macro en excelPasos para hacer un macro en excel
Pasos para hacer un macro en excel
 
Taller1
Taller1Taller1
Taller1
 
Uso de macros en excel
Uso de macros en excelUso de macros en excel
Uso de macros en excel
 
Macros de access
Macros de accessMacros de access
Macros de access
 
Pestaña programador
Pestaña programadorPestaña programador
Pestaña programador
 
Presentacion macros
Presentacion macrosPresentacion macros
Presentacion macros
 
Macros pdf
Macros pdfMacros pdf
Macros pdf
 
Macros
MacrosMacros
Macros
 
Taller macros luna perez
Taller macros luna perezTaller macros luna perez
Taller macros luna perez
 
Funciones y macros con excel
Funciones y macros con excelFunciones y macros con excel
Funciones y macros con excel
 
Respuestas sobre las macros en excel
Respuestas sobre las macros en excelRespuestas sobre las macros en excel
Respuestas sobre las macros en excel
 
Taller
TallerTaller
Taller
 
Macros
Macros Macros
Macros
 
ACTIVIDAD MACROS
ACTIVIDAD MACROSACTIVIDAD MACROS
ACTIVIDAD MACROS
 
Macros
MacrosMacros
Macros
 
Uso de macros en excel
Uso de macros en excelUso de macros en excel
Uso de macros en excel
 

Similar a Programación de macros en Microsoft Excel VBA (20)

Curso de excel avanzado tema 6 macros
Curso de excel avanzado tema 6 macrosCurso de excel avanzado tema 6 macros
Curso de excel avanzado tema 6 macros
 
Creando macros en Excel 2010 para programdores
Creando macros en Excel 2010 para programdoresCreando macros en Excel 2010 para programdores
Creando macros en Excel 2010 para programdores
 
Iniciacion macros
Iniciacion macrosIniciacion macros
Iniciacion macros
 
Vba para excel
Vba para excelVba para excel
Vba para excel
 
Guia70
Guia70Guia70
Guia70
 
Guia70
Guia70Guia70
Guia70
 
Macros y vba
Macros y vbaMacros y vba
Macros y vba
 
Macros
MacrosMacros
Macros
 
Taller de tecnologia
Taller de tecnologiaTaller de tecnologia
Taller de tecnologia
 
Taller 1 macros excel renee gonzalez martinez
Taller 1 macros excel renee gonzalez martinezTaller 1 macros excel renee gonzalez martinez
Taller 1 macros excel renee gonzalez martinez
 
Macros
MacrosMacros
Macros
 
8.491.3152
8.491.31528.491.3152
8.491.3152
 
Trabajo escrito macros
Trabajo escrito macrosTrabajo escrito macros
Trabajo escrito macros
 
Taller macros
Taller macrosTaller macros
Taller macros
 
Taller excel normas APA
Taller excel normas APATaller excel normas APA
Taller excel normas APA
 
Macros
MacrosMacros
Macros
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Macros
MacrosMacros
Macros
 
Macros para combinar
Macros   para combinarMacros   para combinar
Macros para combinar
 
Macros
MacrosMacros
Macros
 

Más de Pablo Gómez Abajo

Wodel-Edu: A tool for the generation and evaluation of diagram-based exercises
Wodel-Edu: A tool for the generation and evaluation of diagram-based exercisesWodel-Edu: A tool for the generation and evaluation of diagram-based exercises
Wodel-Edu: A tool for the generation and evaluation of diagram-based exercisesPablo Gómez Abajo
 
Automated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environmentsAutomated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environmentsPablo Gómez Abajo
 
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation TestingWodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation TestingPablo Gómez Abajo
 
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...Pablo Gómez Abajo
 
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...Pablo Gómez Abajo
 
Generation of mutation testing tools with Wodel-Test
Generation of mutation testing tools with Wodel-TestGeneration of mutation testing tools with Wodel-Test
Generation of mutation testing tools with Wodel-TestPablo Gómez Abajo
 
Seed Model Synthesis for Testing Model-based Mutation Operators
Seed Model Synthesis for Testing Model-based Mutation OperatorsSeed Model Synthesis for Testing Model-based Mutation Operators
Seed Model Synthesis for Testing Model-based Mutation OperatorsPablo Gómez Abajo
 
Mutation Testing for DSLs (Tool Demo)
Mutation Testing for DSLs (Tool Demo)Mutation Testing for DSLs (Tool Demo)
Mutation Testing for DSLs (Tool Demo)Pablo Gómez Abajo
 
Towards a model-driven engineering solution for language independent mutation...
Towards a model-driven engineering solution for language independent mutation...Towards a model-driven engineering solution for language independent mutation...
Towards a model-driven engineering solution for language independent mutation...Pablo Gómez Abajo
 
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...Pablo Gómez Abajo
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsPablo Gómez Abajo
 
Un framework para la generación automática de ejercicios mediante técnicas de...
Un framework para la generación automática de ejercicios mediante técnicas de...Un framework para la generación automática de ejercicios mediante técnicas de...
Un framework para la generación automática de ejercicios mediante técnicas de...Pablo Gómez Abajo
 
Wodel: A Domain-Specific Language for Model Mutation
Wodel: A Domain-Specific Language for Model MutationWodel: A Domain-Specific Language for Model Mutation
Wodel: A Domain-Specific Language for Model MutationPablo Gómez Abajo
 

Más de Pablo Gómez Abajo (14)

Wodel-Edu: A tool for the generation and evaluation of diagram-based exercises
Wodel-Edu: A tool for the generation and evaluation of diagram-based exercisesWodel-Edu: A tool for the generation and evaluation of diagram-based exercises
Wodel-Edu: A tool for the generation and evaluation of diagram-based exercises
 
Automated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environmentsAutomated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environments
 
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation TestingWodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
 
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing...
 
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
 
Generation of mutation testing tools with Wodel-Test
Generation of mutation testing tools with Wodel-TestGeneration of mutation testing tools with Wodel-Test
Generation of mutation testing tools with Wodel-Test
 
PhD defense presentation
PhD defense presentationPhD defense presentation
PhD defense presentation
 
Seed Model Synthesis for Testing Model-based Mutation Operators
Seed Model Synthesis for Testing Model-based Mutation OperatorsSeed Model Synthesis for Testing Model-based Mutation Operators
Seed Model Synthesis for Testing Model-based Mutation Operators
 
Mutation Testing for DSLs (Tool Demo)
Mutation Testing for DSLs (Tool Demo)Mutation Testing for DSLs (Tool Demo)
Mutation Testing for DSLs (Tool Demo)
 
Towards a model-driven engineering solution for language independent mutation...
Towards a model-driven engineering solution for language independent mutation...Towards a model-driven engineering solution for language independent mutation...
Towards a model-driven engineering solution for language independent mutation...
 
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different Domains
 
Un framework para la generación automática de ejercicios mediante técnicas de...
Un framework para la generación automática de ejercicios mediante técnicas de...Un framework para la generación automática de ejercicios mediante técnicas de...
Un framework para la generación automática de ejercicios mediante técnicas de...
 
Wodel: A Domain-Specific Language for Model Mutation
Wodel: A Domain-Specific Language for Model MutationWodel: A Domain-Specific Language for Model Mutation
Wodel: A Domain-Specific Language for Model Mutation
 

Programación de macros en Microsoft Excel VBA

  • 1. PROGRAMACIÓN DE MACROS EN MICROSOFT EXCEL VBA Pablo Gómez-Abajo DotNetClub Universidad Autónoma de Madrid Jueves, 19 de abril, 2016 Escuela Politécnica Superior
  • 2. Primer paso – activar la pestaña ‘Desarrollador’ en Excel: • Archivo  Opciones  Personalizar cinta de opciones • Marcar casilla ‘Desarrollador’ PESTAÑA DESARROLLADOR 2 Excel puede tener bloqueada la ejecución de las macros. • Archivo  Opciones  Centro de confianza  Configuración del centro de confianza  Configuración de macros • Marcar ‘Deshabilitar todas las macros con notificación’ • Habilitar macros al abrir .xlsm
  • 3. EDITOR VBA Dentro de la pestaña de desarrollador • Botón Visual Basic. Se abre el editor VBA 3 Dentro de la carpeta Módulos podemos incluir ficheros con el código de nuestras macros VBA
  • 4. PROGRAMACIÓN DE MACROS • Declaración de macros: Sub «Macro»() ... End Sub • Variables: Dim variable As «TipoVariable» • Objetos: Dim objeto As Variant Set objeto = CreateObject(“«TipoObjeto»”) • Colecciones: Dim coleccion As Collection Set coleccion = New Collection coleccion.Add variable • Condicionales: If ... Then … Else … End If • Bucles: Do ... Loop  Parada con un Exit Do 4
  • 5. LECTURA Y ESCRITURA DE DATOS Dim book As Workbook Dim sheet As Worksheet ... Set book = ActiveWorkbook Set sheet = book.Worksheets(1) ...  Ojo! En VBA de Excel los Arrays empiezan en 1 Dim p As String p = sheet.Cells(row, col) sheet.Cells(row + 1, col) = “Fila siguiente" & p 5
  • 6. EJECUCIÓN DE MACROS Regresamos a la hoja Excel • Añadir un botón: Desarrollador  Controles  Insertar • Acciones sobre el botón: modificar texto, asignar macro, etc. • Doble clic: ejecuta la macro Depuración de macros • Entrar en el editor VBA • Marcar en la barra izquierda los break-points que se necesiten • Ejecutar macro que se desea depurar • F8 para ir línea por línea • Agregar inspección sobre variables para comprobar valor  botón derecho sobre la variable 6
  • 7. EJERCICIO Combinar dos apuestas sencillas de la quiniela de forma que se obtiene una quiniela con 7 dobles Comprobar el número de aciertos que se obtendrían en esta quiniela de 7 dobles si se echase como quiniela reducida Instrucciones: • Completar las partes del código que faltan en las macros Decypher y Reduce del fichero Excel quiniela.xlsm Suerte! 7