Not show value

I want to hide the entered value to InputBox, using VBA codes. How?
LVL 11
HuaMin ChenSystem AnalystAsked:
Who is Participating?
 Option Explicit

    ' --- Global Constants (Messages) ------------------------------------
  Global gMsgText As String       'Text in MsgBox() and InputBox() functions
   Global gMsgType As Integer      'Type in MsgBox() and InputBox() functions
   Global gMsgTitle As String      'Title for MsgBox() and InputBox() function
   Global gStatusText As String    'Status bar text used in Application.Echo method

 ' API set A:
 '  Used by the callback process (TimerProc) to hook into
 '  the InputBox window
 '  Ref:

 Private Declare Function FindWindow Lib "user32" Alias _
 "FindWindowA" (ByVal lpClassName As String, _
 ByVal lpWindowName As String) As Long

 Private Declare Function FindWindowEx Lib "user32" Alias _
 "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
 ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

 Public Declare Function SetTimer& Lib "user32" _
 (ByVal hwnd&, ByVal nIDEvent&, ByVal uElapse&, ByVal _

 Public Declare Function KillTimer& Lib "user32" _
 (ByVal hwnd&, ByVal nIDEvent&)

 Private Declare Function SendMessage Lib "user32" Alias _
 "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
 ByVal wParam As Long, lParam As Any) As Long
 ' Constants for API set A
 Public Const NV_INPUTBOX As Long = &H5000&

 Public Function TimerProc(ByVal lHwnd&, ByVal uMsg&, _
 ByVal lIDEvent&, ByVal lDWTime&) As Long
   Dim lTemp As Long
   ' This function allows for a mask character on an inputbox
   '    ' Usage (Replace anything between [] with valid names from your project):
   '  From a form or module:
   '  1. Declare a Long variable
   '  2. Call the timer function:  [variable] = SetTimer([form].Hwnd, NV_INPUTBOX, [elapsed time], AddressOf [function name])
   '  2b. Example usage from a form: lTemp = SetTimer(Me.Hwnd, NV_INPUTBOX, 1, AddressOf TimerProc)
   '  3. Create your InputBox as usual
    Dim lEditHwnd As Long
   ' Find a handle to the InputBox window, then to the textbox
   ' the user types in (Known as "Edit")
   '    ' **This part is VERY important, here is how the FindWindowEx call should look:
   ' **Only change the parameters that are enclosed in [ ] in the following example
    lTemp = FindWindowEx(FindWindow("#32770", "[gMsgText]"), 0, "Edit", "")
    lEditHwnd = FindWindowEx(FindWindow("#32770", gMsgTitle), 0, "Edit", "")
   ' Send the mask character to the target InputBox when the user types
   ' The mask character in this sample is the Asc("*") - the "*" can be changed
   ' to whatever you like.
   Call SendMessage(lEditHwnd, EM_SETPASSWORDCHAR, Asc("#"), 0)
   ' Destroy the timer object when done (The user clicks OK or Cancel from the InputBox)
   KillTimer lHwnd, lIDEvent

 End Function
Sub test()
   gMsgTitle = "MsgTitle"
   gMsgType = vbOKOnly + vbInformation
   gMsgText = "MsgText"
   Dim lEditHwnd As Long
   Dim lTemp As Long
   Dim sPwd As String
   lTemp = SetTimer(Application.hwnd, NV_INPUTBOX, 1, AddressOf TimerProc)
   sPwd = InputBox(gMsgText, gMsgTitle)
   MsgBox "the password you entered was: " & sPwd
End Sub

Open in new window


You can create a user form with a textbox with PasswordChar ( for example *) to hide what is being entered

HuaMin ChenSystem AnalystAuthor Commented:
Sorry, I'm only calling the codes, within Excel, and I think it is not worth of creating the form, due to such password value, within Excel file.
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

but the inputbox as no possibility to hide the tipped text
HuaMin ChenSystem AnalystAuthor Commented:
Is there any other better way?
HuaMin ChenSystem AnalystAuthor Commented:
Sorry, from the example, I do not see the details to hide the password. Thanks
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.