Come nascondere quanto inserito dall’utente in una casella di input

Andrea sta scrivendo una macro e desidera offrire agli utenti l’opportunità di inserire la propria password prima di consentire loro di utilizzare determinate funzioni fornite dalla macro. Sta usando la funzione InputBox e si chiede se esista un modo per “mascherare” qualunque cosa qualcuno inserisca, in modo che la password venga mantenuta privata mentre viene digitata (ciò avviene in molti programmi, dove qualunque cosa venga digitata viene sostituita sullo schermo con asterischi o qualche altro carattere).

Non esiste un modo diretto per farlo utilizzando la funzione InputBox; non include le funzionalità necessarie. Ci sono persone che lo hanno fatto utilizzando chiamate API e simili, ma questo è piuttosto complicato.

Un approccio più semplice consiste nel creare il proprio UserForm in VBA. Il form può contenere una casella di testo e il controllo include una proprietà che puoi impostare in modo che funzioni come carattere di mascheramento quando qualcuno immette una password. Se visualizzi la finestra delle proprietà per il controllo TextBox, vedrai una proprietà denominata PasswordChar. Impostalo su qualunque carattere desideri utilizzare per il mascheramento. Ad esempio, potresti inserire un singolo asterisco nella proprietà.

Quando arriva il momento di verificare se l’utente ha inserito la password corretta, tutto ciò che devi fare è controllare il valore nel controllo TextBox; sarà “in chiaro” (non mascherato), mentre la versione su schermo rimane mascherata. In altre parole, se qualcuno inserisce “MyPass” come password, quello sarà il valore associato al controllo stesso. Tuttavia, sullo schermo vengono visualizzati sei asterischi (o qualunque carattere di mascheramento specificato), uno per ogni lettera digitata.

 

Come nascondere quanto inserito dall'utente in una casella di input 1

 

 

Tags: , , ,

Ti è stato utile?