Munkavégzés a dialógusok, excel minden

Kétségtelenül minden fejlesztő teszi a munkát egyszerű felhasználói egy kicsit, de egyszerűbb. És persze, néha csak kell visszajelzést a felhasználónak, ha bizonyos programok. Róla, és azt akarom mondani ma.
Ez alatt azt értem: vannak olyan helyzetek, amikor szükséges:

  • tájékoztatja a felhasználót a kódot;
  • visszaigazolást kap a felhasználó számára, hogy az adott művelet elvégzésére;
  • kérni minden olyan információ (szám, szöveges keresés, a keresési tartományt, stb.)

Egyszerűen kérhet és visszaigazolás lehet tenni a már beépített párbeszédablakok.

A fő háromféle:
MsgBox - tájékoztatja a felhasználót arra, hogy a doboz akció kérés (Igen, Nem, mégse, stb);
InputBox - szöveges információt a felhasználó lekérdezés ablak (keresési szöveg, dátum, szám, stb);
Application.InputBox - egy kicsit több, mint egy kiterjesztett változata InputBox a képesség, hogy ne csak a szöveg és számok, hanem jelölje ki a cellatartományt (például, hogy jelezze a sejtekben, amelyekben keresni érték vagy átfesthető).

Információs párbeszéd MsgBox

A legegyszerűbb típus. Arra használják, hogy tájékoztatja a felhasználót. Általában használt végén a kód:
MsgBox Promt. [Gombok]. [Cím]. [HelpFile]. [Context]
Kötelező utasítások csak az első lehetőség - Promt. Úgy amely közvetlenül üzenetet kijelző:

Állapítsa Funkció MessageBoxTimeOut Lib "User32" Alias ​​"MessageBoxTimeoutA" (ByVal hwnd As Long. ByVal lpText As String. ByVal lpCaption As String. ByVal uType Ahogy VbMsgBoxStyle. ByVal wLanguageId As Long. ByVal dwMilliseconds As Long) As Long

Eltekintve a nyilvánvaló üzenet szövegét és címét. amely lehet cserélni saját. Arra összpontosít, hogy az állandó lSeconds . Ő a felelős a másodpercek számát megjeleníteni az üzenetet. A fenti példában az üzenet jelenik meg 5 másodpercig. majd bezárja magát. ha korábban nem OK gomb megnyomása után.

Ha azt szeretnénk, hogy megmutassa az üzenet 10 másodpercre. arra van szükség, hogy cserélje 5-10.

Const lSeconds As Long = 10

paraméter uType Ez ugyanígy működik. paraméterként gombok a standard MsgBox. E. Akkor össze különböző gombok, és ezt, mint a standard MsgBox. de zárja automatikusan. ha a felhasználó véletlenül „elaludt”, vagy a lustaság / egyszer, hogy - majd nyomja meg.

 Sub AutoCloseMsgBox ()

Const lSeconds As Long = 10

retval = MessageBoxTimeOut (0 "a fájlt. nyomtatása egy listát?" vbNewLine _

„Ha a művelet van kiválasztva az ablak bezárul 10 másodperc alatt.” "Www.excel-vba.ru". _

vbInformation + vbYesNo. 0 . lSeconds * 1000)

Ha retval = 6 Then „Igen gombot (Yes) lett nyomva