Wist u dat het mogelijk is om onderscheid te maken tussen een gebruiker die op "OK" klikt op een InputBox en op "Annuleren", zelfs als hij geen tekst heeft ingevoerd?
Bekijk de volgende voorbeeldcode:
Sub InputBoxTest()
Dim Result As String
Result = InputBox("Leave this box blank")
If StrPtr(Result) = 0 Then
Debug.Print "User clicked [Cancel]"
ElseIf Len(Result) = 0 Then
Debug.Print "User clicked [OK]"
Else
Debug.Print "User can't follow instructions"
End If
End Sub
Hier is de testcode in actie:
Als je geïnteresseerd bent in waarom dit werkt, raad ik de volgende vraag aan over stackoverflow:Wat zijn de voordelen en risico's van het gebruik van StrPtr in VBA? Beide best gestemde antwoorden (van gebruikers Comintern en GSerg) zijn het lezen waard voor achtergrondkennis.
Externe referenties
InputBox-functie (Visual Basic for Applications) Microsoft Docso365devx Wat zijn de voordelen en risico's van het gebruik van de StrPtr-functie in VBA? Terwijl ik op zoek was naar een manier om te testen wanneer een gebruiker een InputBox annuleert, stuitte ik op de StrPtr-functie. Ik geloof dat het controleert of een variabele ooit een waarde heeft gekregen en nul retourneert als het nooit is geweest Stack OverflowChrisB