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. 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). 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 - scrieApelați un tabel de culori
Listarea 3,77. Afișarea tabelului de culori