Lucrul cu dialogurile, Excel pentru toate

Fără îndoială că fiecare dezvoltator face ca utilizatorul simplu de locuri de muncă un pic, dar este mai ușor. Și, desigur, uneori, nevoie doar de feedback de la utilizator atunci când anumite programe. Despre ea și vreau să vă spun astăzi.






Ceea ce vreau să spun: există situații în care este necesar:

  • pentru a informa utilizatorul a codului;
  • primi confirmarea de la utilizator pentru a efectua o anumită acțiune;
  • să solicite orice informație (număr, de căutare de text, intervalul de căutare, etc.).

Pur și simplu cere și confirmarea se poate face cu deja built-in casetele de dialog.

Din principalele există trei tipuri:
MsgBox - să informeze utilizatorul cu posibilitatea de a caseta cerere de acțiune (Da, Nu, Anulare, etc);
InputCasuta - informații text din fereastra de interogare de utilizator (de căutare de text, data, numărul etc.);
Application.InputBox - un pic mai mult decât o versiune InputCasuta extinsă cu posibilitatea de a specifica nu numai textul și numerele, dar, de asemenea, a evidenția o serie de celule (de exemplu, pentru a indica celulele în care pentru a căuta valoare sau de a fi vopsit).

INFORMAȚII DIALOG MsgBox

Cel mai simplu tip. Este folosit pentru a informa utilizatorul. De obicei, folosit la sfârșitul codului:






MsgBox Promt. [Butoane]. [Titlu]. [HelpFile]. [Context]
instrucțiuni obligatorii este doar prima opțiune - Promt. Se precizează în mod direct un mesaj de afișat:

Funcția MessageBoxTimeOut Lib declarã "User32" Alias ​​"MessageBoxTimeoutA" (ByVal hwnd lungi. ByVal lpText ca șir. ByVal lpCaption ca șir. ByVal uType Ca VbMsgBoxStyle. ByVal wLanguageId lungi. DwMilliseconds ByVal Atâta timp) Atâta timp

În afară de textul mesajului evident și titlul. care poate fi înlocuit cu propria valoare. Acesta se concentrează asupra constantă lSeconds . Ea este responsabil pentru numărul de secunde pentru a afișa mesajul. In exemplul de mai sus, mesajul va fi afișat timp de 5 secunde. și apoi se închide în sine. în cazul în care nu anterior butonul OK a fost apăsat.

Dacă doriți să afișați mesajul timp de 10 secunde. este necesar doar pentru a înlocui 5 până la 10.

lSeconds Const Atâta timp = 10

parametru uType Acesta funcționează în același mod. ca parametru Butoane MsgBox standardul. E. Puteți combina diferite tipuri de butoane, și de a folosi acest lucru ca un standard de MsgBox. dar să-l închidă automat. în cazul în care un utilizator accidental „a adormit“ sau lenea lui / o dată că - apoi apăsați.

 Sub AutoCloseMsgBox ()

lSeconds Const Atâta timp = 10

retval = MessageBoxTimeOut (0 „Fișiere procesate. Imprimarea unei liste?“ vbNewLine _

„Dacă este selectată acțiunea fereastra se va închide în 10 secunde.“ "Www.excel-vba.ru". _

vbInformation + vbYesNo. 0 . lSeconds * 1000)

Dacă retval = 6 Apoi „Da butonul (Da) a fost apăsat