štvrtok 29. septembra 2011

Znefunkčnenie tlačidla Close dialógového okna (Excel VBA)

Ak s pomocou VBA vytvoríte dialógové okno, je frustrujúce čo i len pomyslenie na to, že je ho možné zatvoriť jedným kliknutím. To znamená, že tvrdá práca, ktorú ste strávili pri vytváraní dialógového okna, vyjde navnivoč. Môžete tomu predísť tým, že zakážete až príliš známe červené tlačidlo Close v pravom hornom rohu dialógového okna.Ako na to sa naučíte v dnešnom kurze Excel pre VBA.

Zakaždým, keď vytvoríte UserForm, je toto tlačidlo automaticky zahrnuté v záhlaví. Je však možné zadržať ho nejakou textovou správou. Ak chcete v dialógovm okne znefunkčniť tlačidlo Close:
  1. Spustite aplikáciu Excel a otvorte zošit, v ktorom ste vytvorili dialógové okno.
  2. Stlačte [Alt][F11] k otvoreniu VBE (Visual Basic Editor) a potom kliknite pravým tlačidlom myši na UserForm v Project Explorer. (Ak sa Vám nezobrazuje, zvoľte View l Project Explorer z menu VBE)
  3. Z výslednej ponuky vyberte View Code.
  4. Zadajte kód uvedený nižšie v okne s kódom.

Private Sub UserForm_QueryClose _
(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Please make a selection and click OK."
Cancel = True
End If
End Sub

Používateľa sme sa rozhodli upozorniť správou Please make a selection and click OK. Samozrejme, že môžete zmeniť text správy v okne tak, aby vám to vyhovovalo. Možno budete chcieť jednoducho červené tlačidlo Close znefunkčniť. Avšak je vhodné dať používateľovi inštrukcie, ak je to možné.

Pre otestovanie znefunkčnenia tlačidla Close:
  1. Uložte zmeny vykonané vo VBE.
  2. Sprístupnite UserForm pre všetkých používateľov. Napríklad ak chcete zatvoriť pracovný zošit a otvoriť ho znovu tak aby sa zobrazil UserForm.
Kliknite na tlačidlo Close v pravom hornom rohu dialógového okna, aby ste videli, či sa zobrazí vaša správa. UserForm zostáva otvorené.