Noticias:

Ya hay algunas cosas colgadas en la web así que ya vuelve a estar disponible.

Menú Principal

Respuesta de InputBox

Iniciado por xavi, Abril 05, 2022, 12:14:42 PM

Tema anterior - Siguiente tema

xavi

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.