Palabras clave: inputbox, strptr
Autor: Happy
Objetivo
Obtener la respuesta cuando el usuario pulsa Cancelar o "X" en un InputBox
Habitualmente controlamos la respuesta "" asumiendo que el usuario ha cancelado la inserción de datos. Eso es habitualmente así porque, en general, si lanzamos un InputBox es porque esperamos que nos responda algo.
Pero la respuesta "" también se puede dar si el usuario pulsa el botón Aceptar sin texto en el cuadro.
Happy nos muestra cómo funciona con esta simple rutina utilizando el método oculto de VBA llamado StrPtr.
Sub ControlarRespuestaInputBox()
Dim Respuesta As Variant
Respuesta = InputBox("Escribe (o no) algo en el InputBox")
' Se utiliza el método VBA oculto StrPtr para obtener el puntero de una variable tipo String
' si devuelve 0 es que el puntero es un Null, así que no ha habido respuesta positiva
If StrPtr(Respuesta) = 0 Then
MsgBox "Se ha pulsado Cancelar o se ha cerrado el mensaje con la 'X'", vbInformation
ElseIf Len(Respuesta) = 0 Then
MsgBox "No se ha escrito nada, pero se ha pulsado Aceptar", vbInformation
Else
MsgBox "En el InputBox se ha escrito: " & Respuesta, vbInformation
End If
End Sub
NOTA: según se lee por la red, se trata de un método oculto e indocumentado lo que implica que puede desaparecer sin previo aviso.