Application Development Excel VBA

Hozzon létre egy alkalmazás, amely figyeli
a projektalapú alkatrészek

Itt összpontosítani a figyelmet néhány más kérdést hozzon létre a teljes alkalmazás Excel példája alapján egy másik igazi programot.

A fejlesztés során a különféle alkalmazások felhalmozódnak több újrahasznosítható alkatrészeket, és nyomon követésére hagy sok időt. Például, hogyan kell meghatározni, hogy melyik fájl használatban van a projektben OBJobAgent - SPREAD.VBX vagy új verzió SSVBX25.VBX? Ahol használják OBORD32 modul - a projektben, vagy együtt OBSuper AvailAgent projekt? Ezek a kérdések egy hatalmas sor.

Kezelésének megkönnyítése újrafelhasználható komponensek használt tároló (repository) a forráskódot, de sok kisebb szervezetek nem működnek velük. Amint ajánlható egy „egyszerűsített” megoldások használata Excel 97 alkotnak egy pivot táblát, amely tükrözi a használata a komponensek bármely projektek.

VB projekt fájlok ASCII-fájlokat tartalmazó elérési utat és fájlnevet alkotó a projekt. VB 3.0-es verzió befogadó projekt leírása tárolt MAK-fájlokat, és tartalmaz egy meglehetősen egyszerű neveinek listája (lásd. 1. listát). Mivel VB4, a kapott fájl kiterjesztését VBP, összetételét és szerkezetét tárolt információk azt jelentősen megváltozott (lásd. 2. listát).

1. lista töredéke egy tipikus MAK-fájl
A VB3 listáját tartalmazza projektelemek

2. lista A töredék a tipikus VBP-fájlt VB5, listáját tartalmazó projekt komponenseket.

C: \ WINDOWS \ SYSTEM \ Stdole2.tlb # Normál OLE típusai

C: \ Program Files \ Common Files \ Microsoft Shared \ DC: \ Program _

Az ötlet, hogy gyűjtünk megvalósítani, az alábbiak szerint. Azon dolgozunk, hogy az Excel, következetesen felfedezni mi érdekli a projekt fájlokat, és hozzon létre egy táblázat az összes felhasznált alkatrészek ezekben az alkalmazásokban, majd ezt az információt, hogy hozzon létre a végső összefoglaló táblázat (lásd. Ábra. 1) Ez a probléma megoldható több módon. Például, akkor írj a szükséges eljárásokat VB5 és hatására az Excel egy ActiveX szerver. Azonban itt is megmutatja, hogyan kell írni ezeket az eljárásokat egy olyan környezetben, Excel, VBA.

Megjegyzés. Hagyja az olvasók nem bánom a címe: „Gróf File” az 1. ábrán. Mi kifejezetten volna bizonyítani az esetleges nyelvi problémák, amikor az orosz nyelvű alkalmazás készül az angol verzió a Office - az angol szavak ebben az esetben automatikusan generálja létre a Kimutatás varázsló.

Létrehozása saját eljárásai

1. lépés: Indítsa el az Excel, adjon meg egy nevet az új projekt PivotVBP.xls és megy a VB IDE (Alt + F11). Készítsen van új BAS-modul (parancs Insert | modult) és neve, mint PivotVBP (a neve Tulajdonságok ablak doboz).

Most kezdjük el írni ezt a modul feldolgozza a kódot (a végleges változat a kódot a 3. listában). Vegye figyelembe, hogy új eljárások, vagy használhatja a parancsot Insert | eljárási vagy beírja az első eljárás, a címsorban (Sub ProcedureName) közvetlenül a modul kódját ablakot.

3. lista A szöveg a kód modult PivotVBP.

Attribútum VB_Name = "PivotVBP"

„Beállítása a táblázat fejlécében

„LoadProjectFile eredeti formáját

„Táblázat alkatrészek és visszaadja az eredményt

Ha LoadProjectFile Then „van legalább egy projekt

„Formation Kimutatás

Ha FileType $ <> „” Akkor „meghatározott alkatrész

„Release fájl neve a teljes

Hívjon FileNameTest (Filen $, Path $, $ Filename)

„Add a leírást a komponens (a projekt típusát, nevét

„File) a fájlok gyűjtése

Files.Add Array (Project $, $ fájltípusra, Fájlnév $), txt $

Fogjuk írni a kódot eljárások elve alapján „top-down” - a klasszikus módszer a strukturált programozás - a magas szintű komponensek alacsonyabb. Az ezen megközelítés helyességének már régóta bizonyított, - szükség van arra gondolni, legalább a társfejlesztőktől akik majd megértik programok kijavítani, vagy használja a saját projekteket. De közben a „top-down”, akkor mindig emlékezni a kész alsó szinten alkatrészek, amelyek nagyrészt alapja alkalmazás.

2. lépés: CreateVBProjCrossRef első aki eljárás, amely a szülő minden kedves alkalmazásokat. Ez először beállítja a fejléceket, amelyeket használni fognak az eredeti, majd az összefoglaló táblázatokat. Aztán fordul LoadProjectFile funkciót. képződött az eredeti tábla alkalmazás komponensek. Ha a függvény értéke igaz (igazság), az azt jelenti, hogy egy ilyen táblázat jött létre legalább egy projektben. Ebben az esetben a 'szubrutin, amely épít a pivot táblát.

3. lépés: Az eljárás SetUpHeadings a Nyíl objektum jelenleg aktív táblázatot rendelni oszlop nevét. Megjegyezzük, hogy az Offset módszert alkalmazzák a jobbra eltolt míg kitölti fejléc a második és harmadik oszlop, valamint kiemelni a cellát az első oszlop első sorában található, amely a következő fejezetekbe.

Meglehetősen gyakori ellenérv ellen a program „top-down” az az állítás, hogy ez megnehezíti a hibakeresés fázisában - alkalmazás indítható csak végrehajtható írás után az összes kódot. Ez az érv azonban nem helytálló: valójában fokozatosan hibakeresés könnyen valósítják meg a különböző „dugók” (üres vagy végrehajtott egy egyszerűsített változata az eljárások).

Emlékezzünk továbbá, hogy amikor a működő VBA közegben, amikor az alkalmazás indításakor végrehajtásra (Run / F5) vezérlő átvisszük egy komponenst (ebben az esetben - eljárás), amely jelenleg az aktív ablakban környezetet. Tehát mielőtt nyomja meg az F5 állítsa a kurzort a kód ablakban CreateVBProjCrossRef eljárást.

4. lépés: Az írás LoadProjectFile eljárás, a legfontosabb, hogy az egész projekt - a kialakulását az eredeti alkatrészek az asztalra. Ez fut a hurok, utalva a szabványos párbeszédablak adja meg a nevét egy meglévő fájl (ábra. 2). Ebből a célból az eljárás a kérelem tárgya és getopenfilename .MAK kiterjesztés és .VBP azonosítani a projekt fájlokat. Ha a felhasználó kiválasztása helyett a fájl (Open) gombot megnyomja a Mégse, megalakult a táblázat véget ér, és visszatér a hívó program Igaz vagy hamis értéket attól függően, hogy legalább az egyik projekt került kiválasztásra, vagy sem.

Írja be a kiválasztott fájl (MAK vagy VBP) lehet meghatározni annak meghosszabbítását. De vajon mi itt másképpen: a projekt fájl megnyitásakor és ellenőrzött jelenléte az egyenlőségjel az első sorban (lásd az 1. és 2.). Figyeljük meg, hogy abban az esetben, MAK-fájl, be kell állítani a mutatót az olvasási / írási belül a fájlt az elején, hogy vegye figyelembe az első sorban a kialakulását az összetevők listáján.

Ezt követően, az eljárást nevezik - LoadMAK vagy LoadVBP, hogy letöltse a gyűjtemény Files projekt fájlt, majd tegye az információkat a fájlok gyűjteménye egy táblázatba. Felhívjuk figyelmét, hogy az első A loop. Következő Keressük gyűjteménye fájlok, és a második egy ciklusban. Következő - egy tömb, amely részletes információkat az egyes fájlok.

5. lépés: Írásban kódot LoadMAK eljárások LoadVBP és FilesAdd. A különbség a kezelések között LoadMAK LoadVBP és azonosították egy alkatrészre a projektben definíciós fájl vonalak. Az első esetben, ez történik a fájlnév kiterjesztése, a második - a kulcs szót a sor elejére. Mindkét eljárást használja a kiegészítő alprogramot FilesAdd, amely lehetővé tette a válogatott rövid fájlnév és megírja leírása A gyűjtemény fájlok.

FONTOS. Egyes műveletek feldolgozásában MAK és VBP vonalak szimbólum fájlok szoktuk korábban létrehozott ParseString FileNameTest és eljárásokat, hogy használták a különféle VB-alkalmazásokat. Ezek rögzítik a modulokat és PARSESUB.BAS INSTRREV.BAS, ill. Feltöltöd az alkalmazás létre az Excel / VBA környezetben, akkor használja a következő parancsot a Fájl | Importfájl, de meg kell jegyezni, egy nagyon fontos pont.

BAS-modullal, így töltik Office / VBA (ez vonatkozik a Word, az Excel és a), automatikusan elveszíti a logikai kapcsolatot a megfelelő BAS-tárolt fájlok a lemezen, és válik a tisztán belső eleme a kérelmet. Ez az egyik alapvető különbség BAS-használat logikai modulok a szokásos VB és a VBA. A második esetben (amivel foglalkozunk most, dolgozó Excel 97) tett változtatásokat BAS-fájl nem befolyásolják az állam a BAS-betöltött modult, és fordítva.

Ennek megfelelően, ha azt akarjuk, a jövőben az alkalmazások használják egyes modulok vannak kialakítva a VBA, meg kell égetni őket egy lemezt egy speciális parancsot a File | Export. Így helyett a nevét olvasási / írási parancsok hozzáadása / Save modulok Import / Export valójában különbségeket tükröző mechanizmusának dolgozó modulok.

Miután letöltötte és PARSESUB.BAS INSTRREV.BAS modulok látni fogjuk, hogy az Excel / VBA kaptak triviális nevek module1 és module2. Az ilyen helyettesítés nevek tűnik a helyes lépés, mert - ismételjük még egyszer - ez a más alkatrészek, amelyek nem kapcsolódnak a szülő fájl. Ebben a tekintetben az opció kidolgozott Word 97, amikor a nevét a beltéri egység van hozzárendelve az eredeti fájl nevét (szigorúan véve nem is a fájl nevét, és a nevét az első Képesség VB_Name fájl sor - ha létezik), ez nem túl jó, mert azt az illúziót kelti a világos levelezés a két részegység között.

6. lépés: Mivel mindez a letöltés után és PARSESUB.BAS INSTRREV.BAS (parancs File | Import File) modulokat, amelyeket átalakíthatók module1 és module2 a projekt, akkor hajtsa végre az alábbi műveleteket. Másolja a szöveget ParseString module1 eljárások modul (kiemelve a szöveget, majd írd a vágólapra, és vissza onnan). Ezután távolítsa el a module1 (ott is maradt, nem kell az eljárás), és nevezze module2 a Szolgáltatás (lásd. 4. listát).

4. lista A szöveg a kód modult Service

Képesség VB_Name = „Szolgáltatás”

Sub FileNameTest (PathFile $, Path $, Fájl $)

„Napló: $ PathFile - teljes fájlnevet

„Out: Path $ - directory

„File $ - fájlnév

POS2 - pos - Len (del $)))

ElseIf n> 1, akkor

ParseString = „” „n-edik adat elem nem található

Hozzon létre egy Kimutatás

Ismerkedés a teremtés CreatePivotTable eljárás, amely létrehoz egy összefoglaló táblázat alapján az eredeti alkatrészek az asztalra. Mint látni fogjuk, a kód ezen eljárás meglehetősen kicsi, de kell írni, hogy kézzel - ez elég unalmas. Ezért jobb, hogy egy varázsló Pivot Table Wizard, majd módosítsa a kódot létre ez egy egyetemes formában.

8. lépés: Menj el az Excel környezetet úgy, hogy a képernyőn hoztuk létre az eredeti táblázatot (3.) Volt látható. Adjuk meg a makro rögzítési módot a parancsot az Eszközök | Macro | Record New Macro (a Status Bar-kijelzőn a szót felvétel). Hagy egy nevet a makró az alapértelmezett. Aztán egy csapat adatok | kimutatás varázsló elindul pivot táblák, amelyek következetesen kínálnak komplett négy műveleteket a párbeszédablakokból nekik.

Az első mezőbe, elhagyja a javasolt alapértelmezett beállítás, hogy hozzon létre egy pivot táblát - Microsoft Excel lista vagy adatbázis - és kattintson a Tovább gombra (4. ábra) gombot. A következő lépés is átesnek megváltoztatása nélkül semmit.

A harmadik lépés - a legfontosabb: a kialakulása egy kimutatási táblázatot struktúrát. Egy párbeszédablak jelenik meg a képen táblázat séma (5.).

A jobb oldalon dolgozzák három gomb, amelyek megfelelnek a három oszlop az aktuális táblázatot. Mivel a gombfelirataihoz használt tartalmát a sejtek az első sorban a táblázat, amely értelmezi az oszlop nevek. Húzza a neve a megfelelő gombokat, a táblázat kialakításához ábrán látható. 6.

Ehhez a neve a „projekt” kell helyezni a „oszlop”, „típus”, és a „Fájl” - a „sort”, majd a „File” - a „DATA”.

Az utolsó, negyedik lépés is átesnek megváltoztatása nélkül semmit (használt New munkalap kapcsoló) - kattintson a Befejezés gombra. Mi lesz létre a Kimutatás varázsló. Most megáll a makro rögzítési mód - eszközök | Macro | Felvétel leállítása.

9. lépés: Vissza a VBA környezetben. Ott látni fogjuk a projekt ablakban, hogy van egy új modul, és ez - olyan eljárás, amely a következőképpen néz ki:

ActiveSheet.PivotTableWizard SourceType: = xlDatabase, _

RowFields: = Array ( "típus", "Fájl") _

Másolni, hogy a fő modul PivotVBP, átnevezni CreatePivotTable, mint module1 modult levesszük a projekt. A fenti kód azt látjuk, hogy az első sorban használ hivatkozás egy adott tartományban 16 vonalak. Ahhoz, hogy ezt az eljárást bármely sorok számát, szükséges hozzá csak két sornyi kódot kell bontania egy sejt, amely nagyobb egy sorban. Ebben az esetben fogjuk használni CurrentRegion Selection objektum eljárás elkülönítésére a szomszédos sorok és oszlopok. Az is szükséges, hogy változtatni az érv SourceData = Kiválasztási módszer a PivotTableWizard, hogy használja a kiválasztás objektum, mint egy sor. A munkánk eredményét mutatja a 3. listában.

10. lépés Ellenőrizze, hogy a mi alkalmazás. Fuss a CreateVBProjCrossRef eljárást. Ezután egymás után adja meg a fájlokat a „Download VB-projekt fájlt” alkotják az eredeti tábla alkatrészeket. Töltse ki a fájl kiválasztó gomb megnyomásával az ablakban Cansel, és akkor megjelenik egy összefoglaló táblázatot VB-projekt alkatrészeket.

Rögzítse egyéb eljárások csak kód modulokat. Ebben a projektben, hoztunk létre két ilyen modulok - PivotVBP és a szolgáltatás. Elosztó eljárások két modul, azt akarta hangsúlyozni specificitását rutinok. A PivotVBP olyan eljárások írásbeli részeként egy adott alkalmazás, és nem látjuk a használatának lehetősége ezek közül bármelyik más projektekben. De a szolgáltató modul rögzített eljárások általunk előállított korábbi fejlesztéseket.

Tudtad, hogy ha egyes kutatók megpróbálják összeegyeztetni a relativitás és éteri fizika, mondjuk, például, hogy a kozmosz áll 70% -a „fizikai vákuum”, és 30% - az anyag és a mező, akkor esik alapvető logikai ellentmondás. Ez az ellentmondás a következő.

Hírek Fórum
Knights-éter elmélet