Você sabia que é possível distinguir entre um usuário clicando em "OK" em um InputBox versus "Cancelar", mesmo que não tenha digitado nenhum texto?
Considere o seguinte código de exemplo:
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
Aqui está o código de teste em ação:

Se você estiver interessado em saber por que isso funciona, recomendo a seguinte pergunta sobre stackoverflow:Quais são os benefícios e riscos de usar StrPtr no VBA? Vale a pena ler as duas respostas mais votadas (dos usuários Comintern e GSerg) para obter conhecimento prévio.
Referências externas
Função InputBox (Visual Basic for Applications)Microsoft Docso365devxQuais são os benefícios e riscos de usar a função StrPtr no VBA?Enquanto procurava uma maneira de testar quando um usuário cancela um InputBox, me deparei com a função StrPtr. Eu acredito que ele verifica se uma variável já recebeu um valor e retorna zero se nunca foi
