Această tehnică vă permite să afișați un ecran de pornire atunci când deschideți orice fișier de lucru dat în Excel.
Screensaverul apare imediat după deschiderea fișierului și dispare automat în câteva secunde.
Pasul 1. Creați formularul de ecran
Faceți clic pe butonul Imagine și trageți dreptunghiul în formă pentru a plasa imaginea de fundal. Apoi, în bara de instrumente Proprietăți (dacă nu o vedeți, apoi alegeți Afișați-Proprietăți din meniu), selectați fișierul imagine din Imagine:
Este posibil să fie necesar să redimensionați ușor formularul pentru a se potrivi complet imaginii. Pentru a scrie text într-un formular, puteți utiliza comanda de etichetare din caseta de instrumente.
În fine, după ce ați selectat în prealabil întregul formular, puteți specifica textul din bara de titlu utilizând proprietatea Caption din panoul Properties:
În final, ar trebui să obțineți ceva de genul:
Pasul 2. Adăugați codul de control
Faceți clic dreapta pe formular și selectați Vizualizare cod. În modulul de formular care se deschide, adăugați următorul cod:
Deschideți modulul E-Book din colțul din stânga sus (dacă nu este vizibil - afișați fereastra corespunzătoare prin meniul View-Project Explorer) și adăugați următorul cod:
Și, în final, introduceți un modul regulat (Insert - Module) și copiați-l acolo:
Cum funcționează?
Când deschideți registrul de lucru, Excel execută procedura Workbook_Open din modulul E-Book. Această procedură afișează formularul screensaver pe ecran. Când se afișează formularul, procedura UserForm_Activate este pornită. care cu o întârziere de 5 secunde pornește macro-ul KillTheForm. care elimină formularul de pe ecran.
Link-uri conexe
Bună ziua, ai putea să-mi spui de ce adăugarea unui astfel de economizor de ecran ar putea sparge autobackupul, creat în întregime de lecție:
Crearea copiilor de rezervă ale fișierelor valoroase S-a rupt astfel încât să nu prezinte erori, doar fișierul din dosarul de salvare nu apare.
Poate că aceasta este ceva legat de crearea UserForm și de conflictul în execuția modulului cu backup și formular. În primul rând, am redenumit forma, desigur schimbând toate legăturile necesare cu ea în cartea și modulul curent2. S-a găsit o problemă cu copia de rezervă. M-am gândit, am decis, poate că macrocomenzile sunt executate la început într-o ordine ierarhică, redenumite în formularul utilizatorului, astfel încât în lista de module a fost afișat mai târziu modulul de backup. Nu a ajutat. Următoarea idee a apărut. Modulul eliminat2, referitor la imagine, macro-ul de acolo a fost adăugat la modulul 1 (copie de rezervă). Prea nu a ajutat. Imaginea a funcționat și funcționează, dar backup-ul nu este salvat. Nu am avut idei noi, din păcate. Campania va trebui să înlăture screensaverul, deoarece funcția de salvare, în mod obiectiv, este mai importantă decât orice altă imagine.
Nikolay, vă invit pentru sfat, poate că știți care este problema și sper că veți vedea și veți răspunde. Vă mulțumim anticipat.
UPD. Întrebarea a rezolvat, adăugând într-o macrocomandă în această carte linia Module1.auto_open.
P.S. Mă duc în vba ca un pisoi orb, dar, de cele mai multe ori, plătește.