La instrucción With:
Ejecuta una serie de instrucciones sobre un mismo objeto, ofrece varias ventajas, la primera es que ganas tiempo en escritura y la segunda que mejora la legibilidad del código.
With ActiveSheet
.Name = “Presupuesto”
.Range (“A1”) = "Presupuesto año 2011"
End With
La instrucción For Each…Next:
Las instrucciones For Each...Next repiten un bloque de instrucciones para cada uno de los objetos de una colección.
Queremos borrar todo el contenido de cada hoja antes de cerrar un libro.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Hoja As Worksheet
For Each Hoja In ThisWorkbook.Sheets
Hoja.Cells.Clear
Next Hoja
End Sub
Se puede salir de un bucle For Each...Next mediante la instrucción Exit For antes de que finalice.
Sub BuscaNumeros()
For Each miObjeto In MiColeccion
If IsNumeric(miObjeto.Value) = False Then
MsgBox "El objeto contiene un valor no numérico."
Exit For
End If
Next c
End Sub
La instrucción If TypeOf:
La instrucción If TypeOf permite comprobar el tipo de objeto.
Sub ControlProcessor(MiControl As Control)
If TypeOf MiControl Is CommandButton Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
ElseIf
TypeOf MiControl Is CheckBox Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
ElseIf
TypeOf MiControl Is TextBox Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
End If
End Sub
La instrucción Set:
La instrucción Set nos permite atribuir la referencia de un objeto a una variable, llamada variable objeto.
Sub ModificarHoja()
Dim Libro As Workbook
Dim Hoja As Worksheet
Set Libro = Application.Workbooks![Presupuesto.xls]
Set Hoja = Libro.Worksheets![Presupuesto2011]
With Hoja
.Name = "Ventas 2011"
.Range("A2") = "Ventas del año 2011"
End With
Set Hoja = Nothing
End Sub