Autor Tema: Respuesta de InputBox  (Leído 1463 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 200
Respuesta de InputBox
« en: Abril 05, 2022, 11:14:42 am »
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.

Código: [Seleccionar]
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.
« Última modificación: Abril 05, 2022, 11:18:20 am por xavi »