Visual Basic for Applications María Teresa González Valencia Luis Alejandro Villacorta Devoto Uso de referencias • Offset: Es un comando de VBA que permite ubicar una celda de destino a partir de una celda de referencia. Ejemplo: [a1].Offset(4,2) = “Nueva celda elegida” • Resize: Redefine el rango seleccionado. Ejemplo: [c2].Offset(1,2).Resize(2,1) = 12 Comandos adicionales • Referencia y activación del libro desde el que se inició VBA: ThisWorkbook.Worksheets(“Hoja1”).Activate • Crear un variable objeto: Set [variable] = [objeto] Ejemplo: Set librodatos = Workbooks(“L1”).Worksheets(“Hoja1”) Estructuras de programación • Bucles cerrados: Realizan un conjunto de comandos un número de veces determinado. • For / Next: Se efectuará un número “i” de repeticiones. Ejemplo: For i = 1 To 7 [a1].offset(i,0) = Rnd Next Estructuras de programación • For / Next … Step: Se efectuará un número “i” de repeticiones con un «salto» definido por el usuario. Ejemplo: For i = 1 To 7 Step 2 [b1].offset(i,0) = rnd Next • El “step” indica a VBA que las repeticiones se darán del modo: 1, 3, 5, 7 (de dos en dos) ¿Qué implica un bucle dentro de otro? Ejercicios • 1. Crear una subrutina que cree un vector de números aleatorios entre 30 y 2500. El tamaño del vector (número de elementos) debe ser indicado por el usuario, así como su posición inicial (celda del primer valor). • 2. Programe una macro que permita crear una matriz de números aleatorios entre -80 y 200. El usuario deberá indicar sólo el número de columnas (el número de filas será siempre el doble). Deberá borrar los contenidos de la hoja antes de crear una nueva matriz.