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