VBA – Is Nothing
Este tutorial demostrará cómo utilizar la sentencia Is Nothing en VBA
La sentencia Is Nothing de VBA utiliza el operador «Is» de VBA y comprueba si un objeto ha sido asignado a una variable de objeto.
Sub CheckObject
Dim rng as Range
If rng Is Nothing then
Msgbox "Rango No Asignado"
End If
End Sub
También podemos utilizar Not con Is Nothing con una sentencia If para asegurarnos de que un rango ha sido asignado a la variable de rango que declaramos y luego ejecutar el código que deseamos si esa variable ha sido asignada.
Sub ChequearSiObjetoFueAsignado()
Dim rng As Range
Set rng = Range("A1:A6")
If Not rng Is Nothing Then
'' Hacer algo - Código.
End If
End Sub
Podemos utilizar la sentencia Is Nothing para cualquier tipo de objeto. Puede ser muy útil para evitar errores en nuestro código cuando un objeto no haya sido asignado a una variable de objeto.
Por ejemplo, podemos utilizar una variable de hoja de cálculo, y asignarla a la Hoja Activa. Si hacemos esto con éxito, entonces podemos seleccionar A2 en esa hoja.
Sub ChequearObjetoHoja()
Dim ws As Worksheet
Set ws = ActiveSheet
If Not ws Is Nothing Then
ws.Range("A2").Select
End If
End Sub
En el código anterior, la celda A2 será seleccionada. Si elimináramos la línea «Set ws=HojaActiva«, entonces la sentencia If pasaría por alto esa línea de código y la celda A2 no se seleccionaría.
Is Nothing también puede utilizarse en otras aplicaciones de Microsoft Office como PowerPoint, Outlook, Access y Word. El siguiente código comprueba si el Objeto Documento ha sido asignado al Documento Activo de Word.
Sub CheckDocumentObject()
Dim wdDoc As Document
Set wdDoc = ActiveDocument
If wdDoc Is Nothing Then
MsgBox "Documento No Asignado"
Else
MsgBox "Documento Asignado"
End If
End Sub