Hirdetés
Nem lenne jó, ha képes lesz Excel-táblázatot vagy Word-dokumentumot megnyitni anélkül, hogy bármit meg kellene tennie az összes adat közvetlenül szöveges vagy CSV-adatfájlból kiolvasásra kerül, és közvetlenül a táblázatba vagy a Wordbe ágyazott diagramba töltődik be dokumentum? Ez egy olyan automatizálási forma, amely az Office termékeket használja, mert ha lehetséges az adatok diagramjának automatizálása az Office alkalmazásban, gondoljon csak a lehetőségekre. Automatikusan betölti az adatokat egy diagramba egy jelentéshez, amelyet összeállít a főnökének - nincs adatbevitel. Vagy betölti az adatokat egy diagramba közvetlenül egy e-mailbe az Outlook alkalmazásban.
Ennek megvalósításához az Office Web Components bővítmény telepítése szükséges. Ezen túlmenően be kell állítania néhány dolgot az Office alkalmazásban, amelyet az adatok importálásához használni kíván, és készen áll arra, hogy automatikusan elindítsa a jelentési munkát. Fedeztem fel néhány olyan elemet, amelyeket az előző cikkben fogunk használni
VBA cikkek Hogyan készítheti el saját egyszerű alkalmazását a VBA segítségévelSzeretné tudni, hogyan készítheti el saját VBA alkalmazását a problémák megoldására? Ezeket a tippeket használhatja saját VBA szoftverének elkészítéséhez. Olvass tovább itt a MakeUseOfban. Néhány esetben az adatok átadása történt a között alkalmazások a vágólapra Adjon minden információt a VBA-alkalmazások között a vágólap használatávalA VBA-val való munka egyik leginkább bosszantó része az egyes alkalmazásokon belül, hogy nem mindig könnyű két alkalmazást egymáshoz „beszélgetni”. Kipróbálhatja a nagyon gyors tranzakciókat ... Olvass tovább , exportálás Outlook-feladatok az Excelhez Az Outlook feladatok exportálása az Excelbe a VBA segítségévelFüggetlenül attól, hogy rajongója vagy a Microsoftnak, egy jó dolog, amit legalább az MS Office termékekkel kapcsolatban el lehet mondani, az, hogy mennyire könnyű egyesíteni őket egymással ... Olvass tovább , és küldés E-mailek egy Excel-ből Hogyan lehet e-maileket küldeni Excel táblázatkezelő segítségével VBA szkriptekkelKódsablonunk segítségével automatikusan beállíthatja az e-maileket az Excel programból, az együttműködési adatobjektumok (CDO) és a VBA parancsfájlok segítségével. Olvass tovább forgatókönyv.Amit megmutatom neked, hogyan lehet az Office Web Components-et kombinálni a szöveges fájl szkriptekkel egy zökkenőmentes, automatizált adatfolyam a számítógépén lévő sima szöveges fájlból az Office termékbe (esetünkben a Excel). Ugyanezt a technikát - néhány apró módosítással - használhatja a Word, az Outlook vagy akár a PowerPoint alkalmazásban. Bármely Office termék (vagy bármilyen más termék, amely a fejlesztők számára VBA-háttérrel rendelkezik) lehetővé teszi ezen technika használatát.
Importálhat és hozhat létre grafikát adatfájlokból
Mielőtt grafikát hozhat létre az adatfájlokból, először engedélyeznie kell néhány dolgot. Ebben a példában megmutatom, hogyan engedélyezheti ezeket a funkciókat az Excelben, de a folyamat szinte azonos az összes többi Office terméknél.
Először, mielőtt bármilyen VBA fejlesztést elvégezne, engedélyeznie kell az eszközsor Fejlesztő lapját (ha még nem tette meg). Ehhez csak lépjen a Beállítások menübe, kattintson a „Szalag testreszabása” elemre, és engedélyezze a „Fejlesztő” fület.
Visszatérve az Excle-hez, most a menüben megjelenik a „Fejlesztő” felirat. Kattintson rá, majd a „Design Mode” elemre. Ezután kattintson a „Kód megtekintése” elemre a VBA szerkesztő megtekintéséhez.
A szerkesztő belsejében engedélyeznie kell azokat a hivatkozásokat, amelyekre szüksége lesz a kódhoz, amelyet megadni fogok neked. Győződjön meg arról, hogy telepítette az Office Web Components bővítményt, mielőtt ezt megtenné, különben a Microsoft Chart objektum nem lesz elérhető.
Kattintson az Eszközök, majd a Referenciák elemre, és megjelenik a rendszerében elérhető összes referencia felsorolása. Ha nem tudod, mi ezek - a hivatkozások alapvetően olyan kód- és objektumkönyvtárak, amelyeket bevonhat a saját projektjébe. Ezek lehetővé teszik néhány igazán jó dolgot megtenni, attól függően, hogy milyen referenciát engedélyez. Ha éppen telepítette az Office Web Components rendszert, akkor új könyvtárként kell hozzáadnia, ezért kattintson a Tallózás gombra a megfelelő .dll fájl megtalálásához.
Ha telepítette az Office Web Components programot, akkor a DLL fájl neve OWC11.dll, és a c: \ program fájlok \ közös fájlok \ microsoft megosztott \ webkomponensek \ 11 \
Jelölje be a „Microsoft Office Web Components 11.0” hivatkozás jelölőnégyzetét, és ne felejtsük el válassza a „Microsoft Scripting Runtime” lehetőséget is, amely hozzáférést biztosít az adatok olvasásához vagy írásához fájlokat.
Most, hogy hozzáadta a referenciát, ideje hozzátenni a tényleges diagramot a lapjához. Az Excel programban vezérlőket adhat hozzá, ha a Fejlesztő menü „Beszúrás” elemére kattint, majd az „ActiveX vezérlők” alatt a sarokban lévő kis eszközök ikonra kattint.
Görgessen a „Microsoft Office Chart 11.0” elemre, és kattintson az OK gombra.
Végül elkezdjük az üzletet. Így néz ki az MS Web Component diagram beágyazva egy táblázatba. Ugyanaznak látszik beágyazva egy Word-dokumentumba vagy bármi másba.
Tehát, az Excel esetében azt szeretném, ha a diagram azonnal betölti az adatokat az adatfájlból a munkafüzet megnyitásakor. Ehhez belép a kódszerkesztőbe, ha rákattint a „Kód megtekintése” elemre a Fejlesztő menüben, majd kattintson duplán a Munkafüzetre a munkafüzet kódjának megtekintéséhez. Változtassa meg a jobb oldali legördülő menüt „Megnyitás” -ra. Ez a szkript akkor fut, amikor a munkafüzet-fájlt először megnyitják.
Ahhoz, hogy betöltse a diagramot a kódból származó adatokkal, maga a diagramnak szüksége van egy névre. Menjen vissza a táblázathoz, kattintson a jobb egérgombbal a diagramra, és válassza a Tulajdonságok lehetőséget. Látni fogja a „Név” mezőt, valami hasonlóval: „ChartSpace1”. Bármire megváltoztathatja. „MyChart” -nak hívták.
Ugyanakkor, csak hogy tudd, milyen az adatfájl - az enyém egy olyan szövegfájl, amelyet vesszővel elválasztott formátumban töltöttek be az adatértékek. Ez a fájl lehet bármi - az érzékelőktől exportált laboratóriumi adatok, a gyakornokok által manuálisan beírt pénzügyi információk vagy bármi más. A fájlt a kóddal olvassa be, tehát nem számít, hogy néz ki az adat, mindaddig, amíg tudod, hogy néz ki minden sor, amikor a program beolvassa.
Tehát most a móka kedvéért. Megmutatom a kódot kis részekben, hogy ez ne legyen túl nagy, és elmagyarázom, mi a kód. A kód teteje először az összes értéket beolvassa a szövegfájlból, és két tömbben tárolja őket, az egyik x változókhoz (xVar) és egy y változókhoz (yVar).
Dim fso as New FileSystemObject. Dim fnum. Dim MyFile as String. Dim strDataLine mint karakterlánc. Dim xVar () mint változat. Dim yVar () mint változat. Dim intNumOfLines egész számként MyFile = "c: \ fájlok \ MyData.txt" fnum = FreeFile () Nyissa meg a MyFile fájlt az elsőként történő bevitelhez. intNumOfLines = 0. Tegye, amíg nem EOF (1) intNumOfLines = intNumOfLines + 1 1. bemenet, strDataLine 1. bemenet, strDataLine. Hurok. Az 1. számú ReDim xVar bezárása (intNumOfLines) ReDim yVar (intNumOfLines) Nyissa meg a MyFile fájlt az elsőként történő bevitelhez. intNumOfLines = 0. Tegye, amíg nem EOF (1) 1. bemenet, xVar (intNumOfLines) 1. bemenet, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Hurok. Zárja be az 1. szót
Ez a kód alapvetõen kétszer fut az adatfájlon - elsõ alkalommal a tömbök méretezéséhez a pontos hosszúság szükséges az adatok tárolásához, majd másodszor az adatok beolvasásához tömbök. Ha nem tudja, mi a tömb - ez egy változó vagy egy tároló terület, amely hosszú listát fog tartalmazni azokról az értékekről, amelyekhez hozzá lehet férni azzal a sorrenddel, hogy az értéket a tömbben tárolták. Az egyik betöltött harmad például (3) lenne.
Most, hogy ezen tömbök közül kettő betöltődött az összes fájlból az értékekkel, készen áll arra, hogy betöltse ezeket az értékeket a már beágyazott diagramba. Íme a kód, amely ezt teszi.
A Sheet1.MyChart .Clear .Refresh Set oChart = .Charts beállítással. Adjon hozzá oChart-ot. HasTitle = True oChart. Cím. Felirat = "Saját adataim értékei" 'oChart. Belső. Szín = "kék" oChart. PlotArea. Belső. Szín = "fehér" Beállítva oSeries = oChart. SeriesCollection. Hozzáadás az oSeries segítségével .Caption = "Saját adataim" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Szín = "kék" .Vonala. DashStyle = chLineDash .Line. Súly = 2 .Type = chChartTypeLine Vége oChart-tal. HasLegend = Igaz. oChart. Legenda. Pozíció = chLegendPositionBottom. Vége
A „Sheet1.MyChart” összekapcsolja a kódot a beágyazott tényleges diagrammal. Azon alapul, amit neveztek. Ez a helyzet akkor fordul elő, ha beágyazja a Word, a Powerpoint vagy más Office termékekbe. Nem a „Sheet1” segítségével utalja rá, hanem bármilyen elem tartja a diagramot ebben az esetben, például a Wordben a „document1”.
A fenti kód beállítja a grafikon címkézését és színezését, majd az „.setdata” módszerrel betölti az értékeket mind a 2 dimenziós adatkészlet x, mind y értékére. A fenti kód futtatása után a következő grafikon jelenik meg.
Ezek az adatok egyenesen nem jelennek meg a szöveges fájlban. Az egyetlen hátrány, hogy az adatfájloknak csak akkor kell kétdimenziósnak lenniük, ha a fenti kódot akarják használni. Megadhat további értékeket az adatkészlethez, de módosítania kell a fenti kódot, hogy a harmadik értéket minden alkalommal elolvassa a hurokban, majd másolatot készítsen a „SeriesCollection. Add ”szakasz hozzáadása egy új sorozat létrehozásához, majd ugyanúgy hozzáadása a diagramhoz.
Bonyolultnak tűnhet, ha elolvassa a fenti kódot, de ha egyszer megtette ezeket, az egy darab sütemény, hogy módosítsa azt az Ön igényei szerint. Ugyanazt a diagramot és hasonló kódot használhatja sávdiagram, szórásdiagram vagy bármilyen más diagramtípus létrehozásához, amelyet ugyanazzal az objektummal kíván használni. Sokoldalú és rugalmas - és hatékony eszköz az arzenáljában, ha az automatizálás rajongója vagy a nagyobb termelékenység érdekében.
Játsszon a fenti kóddal, és nézd meg, lehet-e automatikusan betölteni az adatokat az alkalmazásokba. Milyen kreatív felhasználásokra gondolhat fel ilyen típusú automatizálás? Ossza meg gondolatait és visszajelzéseit az alábbi megjegyzés szakaszban!
Ryan BSc villamosmérnöki diplomával rendelkezik. 13 évet dolgozott az automatizálás területén, 5 évet az informatika területén, és most Apps Engineer. A MakeUseOf volt vezérigazgatója, az adatmegjelenítéssel foglalkozó nemzeti konferenciákon beszélt, és szerepelt a nemzeti televízióban és rádióban.