Publicitate
Nu ar fi frumos să aveți posibilitatea să deschideți doar o foaie de calcul Excel sau un document Word și fără a fi nevoie să faceți nimic la toate, datele sunt citite direct dintr-un fișier de date text sau CSV și se încarcă direct într-o diagramă încorporată în foaia de calcul sau Word document? Aceasta este o formă de automatizare folosind produsele Office, deoarece, dacă este posibil să automatizăm graficul datelor în Office, gândiți-vă doar la posibilități. Puteți încărca automat datele într-un grafic pentru un raport pe care îl creați pentru șeful dvs. - nu este necesară o intrare de date. Sau puteți încărca datele într-un grafic direct într-un e-mail din Outlook.
Tehnica pentru a realiza acest lucru implică instalarea suplimentului Office Web Components. În plus, trebuie doar să configurați câteva lucruri din aplicația Office pe care doriți să o utilizați pentru a importa datele și sunteți gata să începeți automatizarea activității de raportare. Am acoperit câteva dintre elementele pe care le vom folosi în acest articol în precedent
Articole VBA Cum îți poți face propria aplicație simplă cu VBADoriți să știți cum să vă faceți propria aplicație VBA pentru a rezolva problemele? Utilizați aceste sfaturi pentru a crea propriul software VBA. Citeste mai mult aici la MakeUseOf. Câteva dintre acestea au inclus datele de trecere între aplicații cu clipboard Treceți orice informație între aplicațiile VBA folosind tabloul de bordUna dintre cele mai frustrante părți ale colaborării cu VBA în aplicații specifice, este că nu este întotdeauna ușor să obții două aplicații care să „vorbească” între ele. Puteți încerca tranzacții foarte rapide ... Citeste mai mult , export Sarcini Outlook către Excel Cum să exportați sarcinile Outlook în Excel cu VBAIndiferent dacă sunteți sau nu fan Microsoft, un lucru bun despre care se poate spune despre produsele MS Office, cel puțin, este cât de ușor este să integrați fiecare dintre ele unul cu altul ... Citeste mai mult , și trimiterea E-mailuri dintr-un Excel Cum să trimiteți e-mailuri dintr-o foaie de calcul Excel folosind scripturi VBAModelul nostru de cod vă va ajuta să configurați e-mailuri automate din Excel utilizând scripturi de colaborare (CDO) și scripturi VBA. Citeste mai mult script-ul.Ceea ce vă voi arăta este cum să combinați Componentele Web Office cu scripturile de fișiere text pentru a crea un un flux automat de date dintr-un fișier text plat de pe computer în produsul Office (în cazul nostru Excela). Puteți utiliza aceeași tehnică - cu câteva mici modificări - în Word, Outlook sau chiar PowerPoint. Orice produs Office (sau orice alt produs pentru această problemă) care are un back-end VBA pentru dezvoltatori, vă va permite să utilizați această tehnică.
Importați și creați un grafic din fișierele de date
Înainte de a putea crea un grafic din fișierele de date, va trebui să activați mai întâi câteva lucruri. În acest exemplu, vă voi arăta cum să activați aceste funcții în Excel, dar procesul este aproape identic în orice alt produs Office.
În primul rând, înainte de a face orice dezvoltare VBA, trebuie să activați fila pentru dezvoltatori din bara de instrumente (dacă nu ați făcut-o deja). Pentru a face acest lucru, trebuie doar să accesați meniul Opțiuni, faceți clic pe „Personalizați panglică” și activați fila „Dezvoltator”.
Înapoi în Excle, veți vedea acum „Meniul dezvoltator” în meniuri. Faceți clic pe el și faceți clic pe „Mod de proiectare”. Apoi faceți clic pe „View Code” pentru a vedea editorul VBA.
În cadrul editorului este locul în care va trebui să activați referințele de care aveți nevoie pentru codul pe care vi-l voi oferi să funcționeze. Asigurați-vă că ați instalat suplimentul Office Web Components înainte de a face acest lucru, altfel obiectul Microsoft Chart nu va fi disponibil.
Faceți clic pe Instrumente, apoi pe Referințe și veți vedea o listă cu toate referințele disponibile pe sistemul dvs. Dacă nu știți care sunt acestea - referințele sunt practic biblioteci de coduri și obiecte pe care le puteți trage în propriul proiect. Acestea vă permit să faceți unele lucruri cu adevărat mișto, în funcție de ce referință activați. Dacă tocmai ați instalat Office Web Components în sistemul dvs., va trebui să îl adăugați ca o bibliotecă nouă, așa că faceți clic pe butonul Browse pentru a găsi fișierul .dll corect.
Dacă ați instalat componente Web Office, fișierul DLL se numește OWC11.dll și este stocat în c: \ fișiere de program \ fișiere comune \ microsoft shared \ web components \ 11 \
Faceți clic pe caseta de selectare pentru referința „Microsoft Office Web Components 11.0” și nu vă uitați selectați de asemenea „Microsoft Scripting Runtime”, care vă va oferi acces la citire sau scriere din date fișiere.
După ce ați adăugat referința, este timpul să adăugați graficul real în foaia dvs. În Excel, puteți adăuga controale făcând clic pe „Inserare” din meniul Dezvoltator și făcând clic pe pictograma instrumentelor mici din colțul de sub „ActiveX Controls”.
Parcurgeți „Microsoft Office Chart 11.0” și faceți clic pe OK.
În sfârșit ajungem la afaceri. Iată cum arată graficul componentelor Web Web încorporat într-o foaie de calcul. Va arăta la fel încorporat într-un document Word sau orice altceva.
Așadar, în cazul Excel, vreau ca graficul să încarce instantaneu date din fișierul de date la deschiderea fișierului de carte de lucru. Pentru a face acest lucru, accesați editorul de coduri făcând clic pe „Vizualizare cod” din meniul Dezvoltator și faceți dublu clic pe Cartea de lucru pentru a vedea codul cărții de lucru. Modificați meniul vertical în „Deschide”. Acesta este scriptul care se va rula la deschiderea primului fișier de carte.
Pentru a încărca graficul cu date din cod, graficul în sine are nevoie de un nume. Reveniți la foaia de calcul, faceți clic dreapta pe grafic și alegeți Proprietăți. Veți vedea câmpul „Nume” cu ceva de genul „ChartSpace1”. Puteți schimba acest lucru în orice. Am numit-o pe a mea „MyChart”.
De asemenea, doar pentru a ști cum este fișierul de date - al meu este un fișier text plin cu valori de date în format delimitat prin virgulă. Acest fișier ar putea fi oricum - date de laborator exportate de la senzori, informații financiare introduse manual în fișier de către stagiari sau orice altceva. Vei citi fișierul cu codul tău, deci nu contează cum arată datele, atât timp cât știi cum va arăta fiecare linie atunci când programul tău îl va citi.
Deci, acum pentru partea distractivă. Îți voi arăta codul în secțiuni mici, astfel încât să nu fie copleșitor și să-ți explic ce face codul. Partea de sus a codului va citi mai întâi toate valorile din fișierul text și le va stoca în două arrayx, una pentru x variabile (xVar) și alta pentru variabile y (yVar).
Dim fso Ca New FileSystemObject. Dim fnum. Dim MyFile ca șir. Dim strDataLine ca șir. Dim xVar () ca variantă. Dim yVar () ca variantă. Dim intNumOfLines As Inter MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Deschideți MyFile pentru intrare ca # 1. intNumOfLines = 0. Do while Not EOF (1) intNumOfLines = intNumOfLines + 1 Input # 1, strDataLine Input # 1, strDataLine. Buclă. Închideți numărul 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Deschideți MyFile pentru intrare ca numărul 1. intNumOfLines = 0. În timp ce nu EOF (1) Intrare # 1, xVar (intNumOfLines) Intrare # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Buclă. Închideți numărul 1
Practic, acest cod parcurge fișierul de date de două ori - prima dată pentru a dimensiona matricile astfel încât acestea sunt lungimea exactă necesară pentru a stoca datele și apoi a doua oară pentru a citi datele în acestea matrice. Dacă nu știți ce este un tablou - este o variabilă sau o zonă de stocare care va conține o listă lungă de valori pe care le puteți accesa utilizând ordinea în care valoarea a fost stocată în tablou. Cea de-a treia încărcare ar fi (3), de exemplu.
După ce aveți două dintre aceste tablouri încărcate cu toate valorile din fișierul dvs. de date, sunteți gata să încărcați acele valori în graficul pe care l-ați încorporat deja. Iată codul care face asta.
Cu Sheet1.MyChart .Clear .Refresh Set oChart = .Charts. Adăugați oChart. HasTitle = True oChart. Titlu. Legenda = "Valorile datelor mele" 'oChart. Interior. Color = "albastru" oChart. PlotArea. Interior. Color = "white" Set oSeries = oChart. SeriesCollection. Adăugați cu oSeries .Caption = "Valorile datelor mele" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Color = "albastru" .Line. DashStyle = chLineDash .Line. Greutate = 2. Tipul = chChartTypeLine End cu oChart. HasLegend = Adevărat. oChart. Legendă. Poziție = chLegendPositionBottom. Se termina cu
Este „Sheet1.MyChart” care conectează codul la graficul real pe care l-ați încorporat. Se bazează pe ceea ce ai numit-o. Acesta va fi cazul când îl încorporați în Word, Powerpoint sau orice alt produs Office. Nu îl veți referi folosind „Foaie1”, ci în schimb orice element deține Graficul în acest caz, cum ar fi „document1” în Word, de exemplu.
Codul de mai sus setează apoi etichetarea și colorarea graficului, apoi încarcă valorile folosind metoda „.setdata” atât pentru valorile x cât și pentru cele din setul de date dimensional 2. Odată ce codul de mai sus este executat, va apărea următorul grafic.
Aceste date sunt direct din fișierul text. Singurul dezavantaj este că fișierele de date ar trebui să fie bidimensionale doar dacă doriți să utilizați codul de mai sus. Puteți adăuga mai multe valori la setul de date, dar va trebui să modificați codul de mai sus pentru a citi în a treia valoare de fiecare dată prin buclă, apoi să dublați „SeriesCollection. Secțiune Adăugare ”pentru a crea o altă serie și apoi adăugați-o în grafic în același mod.
Poate părea complex doar citind codul de mai sus, dar după ce ați făcut unul dintre acestea, este o bucată de tort pentru a-l modifica în funcție de nevoile dvs. Puteți utiliza același grafic și cod similar pentru a crea o diagramă de bare, o diagramă de difuzare sau orice alt tip de diagramă pe care doriți să îl utilizați cu același obiect. Este versatil și flexibil - și este un instrument puternic în arsenalul dvs. dacă sunteți un fan al automatizării pentru o productivitate mai mare.
Jucați-vă cu codul de mai sus și vedeți dacă puteți încărca automat date în aplicațiile dvs. Ce utilizări creative poți gândi pentru acest tip de automatizare? Partajează-ți gândurile și feedback-ul în secțiunea de comentarii de mai jos!
Ryan are o diplomă de licență în inginerie electrică. A lucrat 13 ani în domeniul ingineriei automatizării, 5 ani la IT, iar acum este inginer pentru aplicații. Fost redactor manager al MakeUseOf, a vorbit la conferințele naționale despre vizualizarea datelor și a fost prezentat la TV și radio naționale.