Citiți cartea Excel

Rezultatul aplicării macro prezentat în Fig. 3.20.

Figura arată că intervalul de celule delimitate cadru și grila în interiorul acestuia este reprezentat ca linii punctate.

Fig. 3.20. Frame și grilă

inserarea rapidă a numelor funcționarilor în documentul

Trucul, pe care o vom discuta în această secțiune vă permite să inserați rapid oriunde în textul documentului este predefinit. O astfel de posibilitate este utilă, de exemplu, pentru a insera în document și post numele directorului și contabilului-șef (sau alți angajați). Un astfel de obiectiv este atins prin utilizarea unui macro, codul afișat în Listing 3.67.

Listarea 3.67. Introduceți text într-un document

„Umplerea celulei curente

ActiveCell = «Director General»

„Ultimele trei coloane în poziția corectă

Celulele (ActiveCell.Row, ActiveCell.Column + 3); selectați

ActiveCell.FormulaR1C1 = «A. B. Rubliov "

„Celula cu«contabil-șef»pe cele trei coloane la stânga _

și trei linii de mai jos, celula cu numele directorului

Celulele (ActiveCell.Row + 3, ActiveCell.Column - 3); selectați

ActiveCell = «Contabil șef“

„Ultimele trei coloane în poziția corectă

Celulele (ActiveCell.Row, ActiveCell.Column + 3); selectați

ActiveCell = «T. S. Kopeikin "

După executarea textul macro corespunzător va fi inserat în documentul în care este poziționat cursorul (fig. 3.21).

Fig. 3.21. Introduceți text într-un document

Evident, care pot fi introduse cu macro de mai sus, în documentul curent orice text arbitrar.

Apelarea fereastra de setări de font

Folosind un mic macro poate provoca fereastra de setări de font. Codul pentru acest macro arata ca acest lucru (a se vedea Listarea 3,68).

Listarea 3.68. fereastra de setări de font

„Apel standard setările de font Windows a celulei curente

După rularea va deschide o fereastra Formatare celule, care au efectuat acțiunile necesare. Definit în această fereastră, setările sunt aplicate la celula în care este poziționat cursorul.

Afișează informații despre documentul curent

Pentru a afișa rapid informațiile cu privire la numele fișierului curent, numele foii de lucru curente și numărul de foi din registrul de lucru curent, puteți folosi macro, codul afișat în Listing 3.69.

Listarea 3,69. Informații despre documentul curent

Dim i ca integer

„Afișează numele fișierului registru de lucru

„Afișează numele paginii curente

„numărul de plăci Pin

Pentru i = 1 Pentru ActiveWorkbook.Sheets.Count

ActiveSheet.Cells (i, 3) = i

Rezultatul macro prezentat în Fig. 3.22.

Fig. 3.22. Informații despre fișierul curent

În acest caz, celula A1 afișează numele fișierului curent, în celula B1 - numele foii de lucru activ, cât și în coloana C - Informații cu privire la numărul de foi de lucru în cartea curentă.

Concluzie Rezultatele calculelor într-o fereastră separată

Efectuarea truc simplu poate afișa rezultatul calculului obținut prin formulele într-o fereastră separată de informații. Pentru a face acest lucru, puteți crea o varietate de macro-uri (în funcție de complexitatea calculului, conținutul de celule și formule, și așa mai departe. D.). Listarea 3.70 prezintă un exemplu de una dintre aceste macro-uri.

Listarea 3,70. Fereastra cu rezultatul calculului

„Porniți prima frunză

„Este plasat în datele de celule

„Scoate rezultatul calculului

MsgBox Range ( «A3»). Formula + "=" + str (Range ( «A3»). Valoare)

Rezultatul macro prezentat în Fig. 3.23.

Fig. 3.23. Formula și rezultatul

În plus, după valoarea macro apare în celula A2 5, și în celula A3 - 8.

rezoluția ecranului de ieșire
Listarea 3.71. Rezoluția monitorului

Funcția Lib GetSystemMetrics declară «user32» _

(ByVal nIndex Ca Long) Ca pe termen lung

„Constantele sunt trecute într-o funcție pentru a determina _

dimensiuni orizontale și verticale imagine

Const SM_CXSCREEN = 0

Const SM_CYSCREEN = 1

lngHorzRes Dim Atâta timp

lngVertRes Dim Atâta timp

„Pregătirea lățimea și înălțimea imaginii pe monitor

MsgBox „Rezoluția actuală:“ lngHorzRes "X" lngVertRes

După rularea macro (în caseta de selecție macro, acesta va fi numit GetMonitorResolution), o fereastra afișată pe ecran, care va afișa rezoluția ecranului curent.

Aceasta este deschisă în acest moment?

Atunci când se lucrează cu un număr mare de registre de lucru, uneori, au nevoie pentru a vedea rapid care dintre ele sunt deschise în acest moment. Pentru a rezolva această problemă va ajuta la următoarea macrocomandă (Listarea 3,72).

Listarea 3.72. fișierele deschise

carte Dim ca obiect

„Afișează numele fiecărui registru de lucru

Pentru fiecare carte din Workbooks

Listarea 3,73. „Cărți“ glisare

foaie Dim Ca obiect

„Afișează numele tuturor foile din registrul de lucru activ

Pentru fiecare foaie In ActiveWorkbook.Sheets

După pornirea macro, ecranul va afișa aceeași fereastră ca și în macro precedent. Acesta va afișa numele prima foaie de carte curentă, și apoi, după fiecare apăsare pe OK - nume de foi ulterioare.

Crearea unui text defilare

Pot crea un Excel defilare? Da, puteți și va ajuta să ne în codul din listingul 3,74.

Listarea 3,74. Crearea unui text defilare

Dim intSpacesLeft Ca Integer „Numărul de spații la începutul

„Setați numărul inițial de spații

„Apelul ticker prima funcție

Dacă intSpacesLeft> = 0 Apoi

Gama ( «A1»). Valoarea = Space (intSpacesLeft) „Bună!“

intSpacesLeft = intSpacesLeft - 1

„Excel care indică faptul că această procedură trebuie să apelați prin _

Application.OnTime Acum + TIMEVALUE ( «00:00:01»),

După celulă Start macro-Al va afișa textul defilare cu textul Buna ziua!.

celulă intermitent

Luați în considerare destul de un truc interesant, cu care puteți face blițul (de exemplu, culorile se schimbă alternativ) orice celulă pentru o anumită perioadă de timp.

Să presupunem că avem nevoie de o celulă, care este de 10 ori la fiecare 5 secunde se va schimba culoarea de fundal de la roșu la verde. Pentru a rezolva această problemă, vom folosi următoarele macro (afișare 3,75).

Listarea 3,75. celulă intermitent

intCalls statice Integer „Numărul Contor de clipiri

„Dacă celula clipit de cel puțin 10 ori, apoi schimba _

încă o dată culoarea

Dacă intCalls <10 Then

intCalls = intCalls + 1

„Definiția ce culoare trebuie să instalați

Dacă intervalul ( «A1»). Interior.Color <> RGB (255, 0, 0) Atunci

„Culoarea celulară nu este de culoare roșie, așa că acum alocați _

este roșu

Gama ( «A1»). Interior.Color = RGB (255, 0, 0)

„Atribuirea verde de celule

Gama ( «A1»). Interior.Color = RGB (0, 255, 0)

„Această procedură este necesară pentru a apela după 5 secunde

Application.OnTime Acum + TIMEVALUE ( «00:00:05»),

După pornirea macro BlinkingCell clipește Al celulei. Prin efectuarea de modificări corespunzătoare la macro dată se poate regla durata ciclului și de a schimba culoarea de fundal pe cont propriu.

AutoShapes rotative

Pot obține o Rotate AutoShape? Se pare că poți, și nu este la fel de dificil cum pare la prima vedere. În această secțiune, vom discuta despre modul de a face mișcare în timp ce rotația doar două AutoShape.

Listarea 3.76. rotație AutoShapes

fRunning static boolean

„Verificați dacă macrocomanda este deja în execuție

Dacă fRunning Atunci

„Când reporniți oprește toate macrocomenzile care rulează

„Subliniem faptul că macro se execută

celulă Dim Ca celulă de lucru rază de acțiune“

Dim intLeftBorder Ca limită stânga pe termen lung“a celulei

Dim intRightBorder Atâta timp „marginea dreaptă a celulei

Dim intTopBorder Atâta timp „Limita superioară a celulei

Dim intBottomBorder Atâta timp „limita inferioară a celulei

Dim alngVertSpeed ​​(1 la 2) Deoarece Arrays lungi“cu valori

Dim alngHorzSpeed ​​(1 la 2) Atât timp „orizontală și verticală

ashShapes Dim (1 la 2) Ca formă „matrice transportate

Dim i ca integer

„Umple AutoShapes matrice

Set ashShapes (1) = ActiveSheet.shapes (1)

Set ashShapes (2) = ActiveSheet.shapes (2)

„Rata de matrice de umplere:

„Pentru prima cifră

„Pentru a doua cifră

„Obținerea unei frontiere de celule de lucru

Set cell = Range ( «B2»)

intRightBorder = cell.Left + cell.Width

intBottomBorder = cell.Top + cell.Height

„Performanța figurilor de rotație și de deplasare

„Schimbați poziția fiecărui AutoShape

„Controlul de a ajunge la marginea din dreapta a celulei

Dacă .Left + .Width + alngHorzSpeed ​​(i)>

Stânga = intRightBorder - .Width

„Schimbarea direcției vitezei orizontale _

„Controlul de a ajunge la marginea din stânga a celulei

Dacă .Left + alngHorzSpeed ​​(i)

„Schimbarea direcției vitezei orizontale _

„Controlul de a ajunge la frontiera inferioară a celulei

Dacă .Top + .Height + alngVertSpeed ​​(i)>

Top = intBottomBorder - .Height

„Schimbarea direcției vitezei verticale _

„Controlul de a ajunge la partea de sus a frontierei de celule

Dacă .Top + alngVertSpeed ​​(i)

„Schimbarea direcției vitezei verticale _

Stânga = .Left + alngHorzSpeed ​​(i)

Top = .Top + alngVertSpeed ​​(i)

„Rotația AutoShapes (schimbarea direcției de rotație _

se întâmplă de fiecare dată când schimbați direcțiile _

„Dă Excel comandă de intrare de utilizator mâner

Acum, în celula B2 au nevoie pentru a crea oricare două AutoShape (înainte ca celula B2 ar trebui să fie crescut în mod substanțial, ceea ce face aproximativ de marimea unui sfert de ecran pentru a avea un loc pentru a roti AutoShapes).

Acum, rulați macro-ul, se bucură de rezultatul muncii lor - AutoShapes se vor roti și pentru a muta în interiorul celulei specificate simultan. Dacă se dorește, puteți colora Autoshape în culori diferite și a stabilit unele de fundal pentru celula.

Apelați un tabel de culori

Dacă este necesar, afișați tabelul de culori și valorile de proprietate respectiv Colorlndex (această proprietate specifică culoarea de umplere indexate în funcție de paleta de culori). Pentru a face acest lucru, creați și executați următoarea macrocomandă (Listing 3.77).

Listarea 3,77. Afișarea tabelului de culori

Dim intColor Ca Integer

„Formarea antetul mesei

Interval ( «B1»). Valoarea = «Proprietatea Valoarea ColorIndex»

Pentru intColor = 1 La 56

„Celulă pătate«A»coloana în culoarea curentă

Ai citit cartea? Câștigați acest lucru!

Trimite un mesaj pentru grupul de administrator - Sergei Makarov - scrie