„Excel-makro” változatai közötti eltérés
A Miau Wiki wikiből
(→Tutoriál-ajánlások) |
Jkv5 (vitalap | szerkesztései) (→Specialitások) |
||
(200 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
− | A szócikk célja, hogy tutoriál-ajánlások mellett rámutasson szemléletformáló részletekre a | + | '''A szócikk laptörténete (https://miau.my-x.hu/mediawiki/index.php?title=Excel-makro&action=history) felfogható egy autodidakta VBA-kurzus lehetséges lefolyásaként!''' |
− | A | + | |
− | Így a | + | A szócikk célja, hogy tutoriál-ajánlások mellett rámutasson szemléletformáló részletekre a rögzítés alapú makró-írás kapcsán. |
+ | A makró-rögzítésből ugyanis ritkán lesz pont az a funkcionalitás, amire ténylegesen szüksége van a felhasználónak. | ||
+ | Így a makró-rögzítés utáni kód hatásos és hatékony átalakítása érdekében tudni kell, mi is a felhasználó valós mozgástere (pl. mely "beégetett" paraméter hogyan vezérelhető). | ||
+ | Ez a wiki-szócikk tehát a rögzített makrókkal való együttműködést helyezi a fókuszba, de jelzés-értékűen egyfajta "Excel-mentes" programozási mintákat is bemutat... | ||
+ | (A VBA az itt jelzetteknél lényegesen többet tud! - vö. ajánlott tankönyv) | ||
+ | |||
+ | Egy Excel-tanfolyam lényege a szakmai vita, a ténylegesen megoldandó feladatokkal való közös azonosulás, az alternatívák és/vagy kockázatok feltárása, | ||
+ | vagyis a miértek közös értelmezése. | ||
+ | Ha nem az interaktivitás a célja egy képzésnek, vagyis csak a hogyanok a lényegesek és a miértek nem relevánsak, akkor tutoriálok kell készíteni/keresni/használni, | ||
+ | ahogy az itt is számos ponton előkerül... | ||
+ | |||
+ | A programozás kapcsán a tudás életképes csírája az, amit egyszer már sikerült ténylegesen alkalmazni is a látottak, hallottak közül! | ||
+ | |||
+ | '''2023-tól minden Excel-makro-kérdést először a chatGPT-vel érdemes megkonzultálni: https://www.youtube.com/watch?v=yf783C-mnk4 ''' | ||
+ | + https://www.youtube.com/watch?v=obWIImqBMxc | ||
+ | Önellenőrzési lehetőség: Az az igény/elvárás/gondolat, melyet a chatGPT nem tud értelemesen kezelni, lehet, hogy még a Megrendelő fejében nem forrta ki magát eléggé?! | ||
+ | (pl. nincs meg a megfelelő szóhasználat, a megfelelő nyelvi letisztultság, ...) | ||
+ | |||
+ | |||
+ | =Jó tanácsok= | ||
+ | *Bármennyire fáradságos, érdemes már rögtön az első kódírási kísérletkor az első VBA-rendszerüzenetet/hibaüzenetet, ennek kiváltó kódját és a megoldást jelentő kódot, ill. a megoldás lényegét egy fajta munkanaplóban folyamatosan rögzíteni, mert a rendszerüzenet/hibaüzenetek nem elég specifikusak ahhoz, hogy a programozó azonnal tudja, mit is rontott el, valamint hol kell változtatni a siker érdekében! | ||
+ | *Ha egy kód azonnal sikerül, érdemes elrontani minél több ponton, hogy lássuk a rontások hatásait a működésre és/vagy a hibaüzenetekre... | ||
+ | *Minél rövidebb egy kód, annál egyszerűbb rájönni a felmerülő hibák okára. | ||
+ | *Érdemes minden kódírás előtt úm. manuálisan végig vinni a tervezett (adatfeldolgozási) lépéseket és így teszteredményekhez jutni, melyeket a lépésről-lépésre törtőnő (F8) ellenőrzés alatt minden egyes változó minden időpillanatban felvett értéke kapcsán lehet majd hasznosítani. | ||
=Tutoriál-ajánlások= | =Tutoriál-ajánlások= | ||
− | *Fogalmi, stratégiai alapozás: https://www.youtube.com/watch?v=AEUKbrdTkiY (13:13) | + | |
+ | Tankönyv: pl. https://szlavip.web.elte.hu/Magamnak/VB/VB_le%EDr%E1s.pdf | ||
+ | |||
+ | ''Gyors áttekintés/önteszt (17 kérdéskör): https://www.youtube.com/watch?v=S5awwOwnyhE (17 releváns tudnivaló kezdőknek - 16:35 EN)'' inkl. '''[tematika 5]''' | ||
+ | ''Technikák/önteszt (7 kérdéskör): https://www.youtube.com/watch?v=RD5mi9ba_Ys (7 koncepcionális alapvetés kezdőknek - 16:03 - EN)'' inkl. '''[tematika 3 + tematika 1.4/2.1]''' | ||
+ | ''Cellák kezelése (.cells) a VBA-ban/önteszt: https://www.youtube.com/watch?v=x_PCdMlO41M (1of4 - 05:56 - EN)'' inkl. '''[tematika 3]''' | ||
+ | ''2 of 4: https://www.youtube.com/watch?v=tlmFmcimIwU (06:21 - EN)'' | ||
+ | ''3 of 4: https://www.youtube.com/watch?v=oW2ZqqArIhA (05:24 - EN)'' | ||
+ | ''4 of 4: https://www.youtube.com/watch?v=rf8rK7rzoU0 (06:21 - EN)'' | ||
+ | |||
+ | *Fogalmi, stratégiai alapozás: | ||
+ | **https://www.youtube.com/watch?v=AEUKbrdTkiY (13:13 - HU) '''[tematika 1]''' | ||
+ | ***https://www.youtube.com/watch?v=LM-OrJgFTqo (05:16 - HU) - Az Excel kapcsolata más OOP nyelvekkel | ||
+ | ***https://www.youtube.com/watch?v=zeOXmKGP8nA (04:58 - HU) - UML | ||
**Mi is az a VBA? | **Mi is az a VBA? | ||
− | **Mit jelent a | + | **Mit jelent a makró-rögzítés? |
**Mit jelent az MS Office-hatókör (pl. Excel, Word, ...)? | **Mit jelent az MS Office-hatókör (pl. Excel, Word, ...)? | ||
**Videó-kommentárok: | **Videó-kommentárok: | ||
− | ***Makró-rögzítés indítása: ALT+F8 és/vagy menü: | + | ***Makró-rögzítés indítása: |
− | ***Makró-rögzítés típusa: abszolút (A1:B2) vagy relatív (S[1]O[1]) | + | ****ALT+F8 és/vagy menü: |
− | * | + | *****NÉZET |
− | + | *****MAKRÓK, | |
− | 1. Makrók | + | ****ill. Fejlesztőeszközök menü-szalagról, |
− | 1.1. Makrók rögzítése | + | ****valamint ALT+F11 (VBA-környezet indítása, ill. |
− | 1.2. Felvételi jellemzők beállítása | + | ****visszalépés az Excel-be, ALT+Q VBA bezárása ÉS visszatérés az Excel-be) |
− | 1.3. Makrók tesztelése, futtatása | + | ***Makró-rögzítés típusa: abszolút (A1:B2) vagy relatív (S[1]O[1]) '''[tematika 1.2]''' |
− | 1.4. Rögzített makrók kódjának vizsgálata | + | ***Nem csak abban a munkafüzetben fut a felvett makró, ahol készült! |
− | 2. Program fejlesztői környezet | + | ***Ha nem látható a menü-szalagon a fejlesztőeszközök opció, akkor |
− | 2.1. Makrók kódjának módosítása | + | ****FÁJL |
− | 2.2. VBA fejlesztői környezet | + | ****BEÁLLÍTÁSOK |
− | 2.3. Projekt tallózó | + | ****MENÜSZALAG TESTRE SZABÁSA |
− | 2.4. Tulajdonság ablak | + | ****Fejlesztőeszközök bekapcsolása (jobb oldali lista: inkl. kód, bővítmények, vezérlők, xml)<--vö. következő tutoriál (VBA-haladóknak) |
− | 2.5. Kódszerkesztő | + | ****(s a videóban látható, a képernyő bal alsó részén lévő makrórögzítés/leállítás ikon innentől válik láthatóvá csak) |
− | 2.6. Objektumtallózó | + | *VBA haladóknak: https://www.youtube.com/watch?v=fg_A40nzq5Y (19:04 - HU) '''[tematika 2]''' |
− | 2.7. Hibakeresés ablakai | + | **Fejlesztőeszközök menü-szalag bekapcsolása/bemutatása |
− | 3. VBA objektumai | + | **Eseményvezérlés |
− | 3.1. Az objektum orientált programozás alapjai | + | **XLSM-alapú mentés |
− | 3.2. Az Excel objektum modellje | + | **Űrlap (form), gomb (button), címke (label) '''[tematika 6]''' |
− | 3.3. Munkafüzet, munkalap, sorok, oszlopok, cellák objektum műveletei | + | **Videó-kommentárok: |
− | 4. VBA nyelv elemei | + | ***Minden önmagában tesztelhető lépést tesztelni érdemes! |
− | 4.1. Változók | + | ***A makrót indító billentyű-parancs esetén a CTRL már adott, tehát csak a SHIFT+G kell lenyomni majd a CTRL+SHIFT+G definiálásához. |
− | 4.2. Vezérlési szerkezetek | + | ***Lehetőség szerint ne használjunk foglalt billentyű-parancsokat. |
− | 4.3. Eljárások, függvények | + | ***Billentyű-parancsok áttekintése: pl. https://support.microsoft.com/hu-hu/office/az-excel-billenty%C5%B1parancsai-1798d9d5-842a-42b8-9c99-9b7213f0040f |
− | 4.4. Munkalap függvények használata VBA-ban | + | ***Reprodukciós nézet: https://miau.my-x.hu/temp/demo/vba_open.xlsm '''[tematika 4]''' |
− | 5. Hibakeresés | + | ****Többlet-szöveg |
− | 5.1. Hibakeresés, nyomonkövetés | + | ****If/then egysoros nézete (vö. "_" sortörés lehetősége a kódírás során) |
− | 5.2. Hibák típusai | + | *Event handling: https://www.youtube.com/watch?v=Z2brmJ1iqCk (09:44 - EN) '''[tematika 3]''' |
− | 5.3. Nyomonkövetés, lépésenkénti végrehajtás | + | **Munkalap-specifikus kódírás (private sub) |
− | 5.4. Nyomonkövetés ablakai | + | **Angol nyelvű szakszavak |
− | 5.5. Hibakezelés | + | **Objektum-orientáltság (pl. munkalap_esemény) |
− | 6. Vezérlők alkalmazása | + | **Event-dokumentációk: |
− | 6.1. Vezérlők elhelyezése az Excel munkalapon | + | ***https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.selectionchange (EN - TXT) |
− | 6.2. Nyomógomb, adatbeviteli mezők, választókapcsolók, jelölőnégyzet, kombinált lista, görgetősáv | + | ***https://www.excelanytime.com/excel/index.php?option=com_content&view=article&id=111:worksheet-selection-change-event-excel-vba&catid=79&Itemid=475 (EN- TXT) |
− | 6.3. Vezérlők hozzárendelés makrókhoz | + | ***reprodukciós nézet (nyomkövetésre adaptálva: Event-handling-09:44-EN): https://miau.my-x.hu/temp/demo/sheet7.xlsm |
− | 6.4. Különbségek a munkalapi vezérlők és a VBA vezérlők között | + | ***115 events: https://powerspreadsheets.com/excel-vba-events/(EN - TXT) |
+ | ***áttekintés: https://trumpexcel.com/vba-events/ (EN - TXT) | ||
+ | *User forms: | ||
+ | **https://www.youtube.com/watch?v=1hmuvovrMDw (11:42 - EN) - mini projekt | ||
+ | **https://www.youtube.com/watch?v=IA7n-Q0Fjdk (05:50 - HU) - űrlapok | ||
+ | **https://www.youtube.com/watch?v=r0NADeHCr5k (02:31 - HU) - űrlapok kezelése | ||
+ | **https://www.youtube.com/watch?v=18i4PQD89O0 (03:56 - HU) - űrlap-gombok | ||
+ | **https://www.youtube.com/watch?v=BAkDWy643aE (03:20 - HU) - feliratok | ||
+ | **https://www.youtube.com/watch?v=8ySzYkIHXaE (04.18 - HU) - adatbevitel | ||
+ | **https://www.youtube.com/watch?v=9jBf81a4pJI (07:49 - HU) - adatok áramlása űrlap és Excel között | ||
+ | **https://www.youtube.com/watch?v=MZlkPCId220 (04:26 - HU) - listák használata | ||
+ | **https://www.youtube.com/watch?v=vi2FJUic1Vs (10:20 - HU) - lista bővítése | ||
+ | **https://www.youtube.com/watch?v=bjg13QXEPMw (10:27 - HU) - sokelemes listák kezelése | ||
+ | **https://www.youtube.com/watch?v=mCyfe1Oh6Ao (11:27 - HU) - választási lehetőségek | ||
+ | **https://www.youtube.com/watch?v=gUDdncCPte8 (03:28 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) I. (frame) | ||
+ | **https://www.youtube.com/watch?v=vKJR_niSv-A (05:01 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) II. | ||
+ | **https://www.youtube.com/watch?v=uznil60y590 (09:27 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) III. | ||
+ | **https://www.youtube.com/watch?v=-TPBQ7t0pyg (24:58 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) IV. | ||
+ | **https://www.youtube.com/watch?v=-yWzgN-y6Go (15:44 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) V. | ||
+ | **https://www.youtube.com/watch?v=neB38ULoq-M (06:15 - HU) - image | ||
+ | **... | ||
+ | *Project explorer / Projekt tallózó: '''[tematika 2.3]''' | ||
+ | **https://www.youtube.com/watch?v=dglaT9H7ZNk (01:14 - EN) | ||
+ | **https://www.youtube.com/watch?v=q7jdCP3CdkI (02:21 - EN) | ||
+ | **CTRL+R | ||
+ | *Object explorer / Objektum tallózó: '''[tematika 2.6]''' | ||
+ | **https://www.youtube.com/watch?v=d95AvpgmfWQ (04:38 - EN) | ||
+ | **A súgó minden listaelemre elérhető (zömmel angolul / online / jobb egérgombon keresztül - az adott elemre kattintva): pl. https://learn.microsoft.com/hu-hu/office/vba/api/excel.application.calculate?f1url=%3FappId%3DDev11IDEF1%26l%3Dhu-HU%26k%3Dk(vbaxl10.chm183084)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue | ||
+ | **F2 | ||
+ | *Properties window / tulajdonság ablak '''[tematika 2.4]''' | ||
+ | **https://www.youtube.com/watch?v=dglaT9H7ZNk (01:14 - EN) | ||
+ | **https://www.youtube.com/watch?v=v9ml70RUBVs (04:10 - EN) | ||
+ | **F4 | ||
+ | *Hibakezelés, hibakódok (szöveges segédanyagok): '''[tematika 5]''' | ||
+ | **https://hu.excel-lib.net/11705448-excel-vba-error-handling-all-you-need-to-know (HU - TXT) | ||
+ | **https://hu.know-base.net/7580102-vba-error-handling (HU - TXT) | ||
+ | **https://hu.excel-lib.com/11705873-error-handling (HU - TXT) | ||
+ | **https://hu.education-wiki.com/8318574-vba-error-handling (HU - TXT) | ||
+ | **https://www.youtube.com/watch?v=mCyfe1Oh6Ao (11:26 - HU) - ÉLŐ kódfejlesztés hibakezeléssel | ||
+ | **https://www.youtube.com/watch?v=lzQrY2sRTWY (03:36 - HU) - Korrupt állományok javítása | ||
+ | ***háttér-állományok: https://drive.google.com/drive/folders/1Q3T-ggduRC75arCFn6rdsRmCvke24k3l | ||
+ | *** | ||
+ | **https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/s6da8809(v=vs.100)?redirectedfrom=MSDN (EN) <--forrás: https://www.excelforum.com/excel-programming-vba-macros/601056-list-of-runtime-error-codes.html (EN - TXT) | ||
+ | **Error codes (lista): https://chejunkie.com/knowledge-base/common-runtime-error-codes-vba/ (EN - TXT) | ||
+ | **Error codes (lista): https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/aa264975(v=vs.60)?redirectedfrom=MSDN (EN) | ||
+ | **Error codes (lista-generálás): https://learn.microsoft.com/hu-hu/office/vba/Language/Reference/User-Interface-Help/application-defined-or-object-defined-error (EN) | ||
+ | **Beállítások elérése: | ||
+ | ***TOOLS | ||
+ | ***OPTIONS | ||
+ | *Form controls / Űrlapvezérlők: '''[tematika 6]''' | ||
+ | **https://hu.excel-lib.com/11705621-checkbox (jelölő négyzet / szöveges, HU) | ||
+ | *Makró-futtatás tiltásának manuális feloldása: | ||
+ | **https://support.microsoft.com/hu-hu/topic/a-rendszer-letiltott-egy-potenci%C3%A1lisan-vesz%C3%A9lyes-makr%C3%B3t-0952faa0-37e7-4316-b61d-5b5ed6024216 (szöveges - HU) | ||
+ | *Gyakorló feladatok: | ||
+ | **http://miau.my-x.hu/miau/236/3333_makro_versions.xlsm (csak kód) | ||
+ | **https://miau.my-x.hu/digeco/coco_prg1.xlsm (csak kód) | ||
+ | **!!!ÉLŐ PROBLÉMA-MEGOLDÁS (angolul): https://www.youtube.com/watch?v=zA_Q_Yws0gQ (43:32 - EN) + Makró nélkül?! (https://miau.my-x.hu/temp/demo/minden_harmadik_adat_transzponalasa.xlsx) + Alternatív makró rögzítéssel: https://miau.my-x.hu/temp/demo/minden_harmadik_adat_transzponalasa.xlsm | ||
+ | **Konklúziók: | ||
+ | ***'''Nem a megvalósítás (kódírás) a kritikus általában, hanem a megvalósítandó lépések matematikailag/logikailag korrekt tervezése (vö. vagyis az ötlet maga)!''' | ||
+ | ***Az Excel beépített függvényei, funkciói általában gyorsabbak, mint bármi más, amit a felhasználó meg tud programozni... | ||
+ | ***A gyorsaság mellett a memória terheltsége is lehet fontos... | ||
+ | ***A makró-rögzítés keretében keletkező kód beégetődő paramétereit általában felül kell vezérelni (tudni)... | ||
+ | ***Egy program szinte soha nincs készen, mert egyes komponensei nem elég univerzálisak, de ami adott, az lehet éppen már működőképes... (vö. FOR-ciklus hossza manuálisan, vagy DO-UNTIL-LOOP-ciklus)... | ||
+ | ***A kódírás közgazdasági kérdés (vö. információs többletérték): egy kód nem kerülhet többe, mint amennyi hasznot elvárunk tőle... | ||
+ | ***A makró-rögzítés során alkalmazott megoldási logika általában eltér a kódírás során felmerülő (quasi tisztán matematikai) megoldások logikáitól... (vö. transzponálás, szűrés vs. ciklusok vezérlése)... | ||
+ | ***Minden ötltet azonnal és kicsi méretben ellenőrizni kell (vö. pl. debug, F8, watch) és már az első hibánál le kell cserélni/finomítani kell az ötletet... | ||
+ | *Class-modules (VBA): | ||
+ | **https://www.youtube.com/watch?v=ie2Duci-qKQ (13:22 - EN) - (Válaszok a miért-is-lehet-ez-hasznos kérdésre...) | ||
+ | *... | ||
+ | |||
+ | =Szöveges segédanyagok= | ||
+ | *Esemény-vezérlők: | ||
+ | **https://learn.microsoft.com/hu-hu/office/troubleshoot/excel/create-application-level-event-handler | ||
+ | **https://support.microsoft.com/hu-hu/office/felhaszn%C3%A1l%C3%B3ifel%C3%BClet-makr%C3%B3-l%C3%A9trehoz%C3%A1sa-12590d3b-b326-4207-bfe5-19234f53f08b | ||
+ | *Paraméterezések: | ||
+ | **https://excelribbon.tips.net/T010030_Specifying_Location_for_a_Message_Box.html (message_box helyett input_box) | ||
+ | *Változók/tömbök: | ||
+ | **https://xlmotyo.hu/blog/tombok-vba-ban/ (HU) (inkl. Option Base1és Option Explicit - https://excelkingdom.blogspot.com/2012/10/option-explicit.html) | ||
+ | *Tudnivalók az Active X megoldásokról: | ||
+ | **https://support.microsoft.com/hu-hu/office/a-munkalapon-tal%C3%A1lhat%C3%B3-%C5%B1rlapok-%C5%B1rlapvez%C3%A9rl%C5%91k-%C3%A9s-activex-vez%C3%A9rl%C5%91elemek-%C3%A1ttekint%C3%A9se-15ba7e28-8d7f-42ab-9470-ffb9ab94e7c2 (HU - TXT) '''[tematika 6.4]''' | ||
+ | **Excel nyomógombok: | ||
+ | ***https://support.microsoft.com/hu-hu/office/makr%C3%B3-hozz%C3%A1rendel%C3%A9se-%C5%B1rlaphoz-vagy-vez%C3%A9rl%C5%91gombhoz-d58edd7d-cb04-4964-bead-9c72c843a283 (HU - TXT) | ||
+ | ***https://tablazatkezeles.hu/sajat-gombok-letrehozasa-excel (HU - TXT) | ||
+ | ***https://hu.extendoffice.com/documents/excel/2879-excel-create-button-to-open-sheet.html (HU - TXT) | ||
+ | *Pivot funkciók numerikus kódjai: | ||
+ | **https://learn.microsoft.com/en-us/office/vba/api/excel.xlconsolidationfunction | ||
+ | *Másolás, beillesztés: | ||
+ | **https://www.excelcampus.com/vba/copy-paste-cells-vba-macros/ (EN - TXT) | ||
+ | *Egyedi listaelemek kinyerése makró nélkül: | ||
+ | **https://www.excelanytime.com/excel/index.php?option=com_content&view=article&id=470&Itemid=694 (EN - TXT) | ||
+ | **demo: https://miau.my-x.hu/temp/demo/select_distinct_2dm.xlsm | ||
+ | ***EGYEDI(): https://support.microsoft.com/hu-hu/office/egyedi-f%C3%BCggv%C3%A9ny-c5ab87fd-30a3-4ce9-9d1a-40204fb85e1e | ||
+ | ***https://miau.my-x.hu/miau/293/flow1.xlsx (kérdőívek képlet-alapú értelmezése - pivot nélkül) | ||
+ | ***https://www.youtube.com/watch?v=obWIImqBMxc (DE - videó 00:15:00-) | ||
+ | **Gyakorló feladat: Egyedi elemek kinyerése kimutatásvarázslással, kimutatásvarázslást rögzítő makróval, kimutatásvarázslást nem használó, nem rögzített makróval | ||
+ | **Gyakorló feladat: Adatfrissítés utáni sorrendváltozás kikényszerítése makró nélkül: https://miau.my-x.hu/miau/292/makro_helyett.xlsx | ||
+ | *Offset: | ||
+ | **https://learn.microsoft.com/en-us/office/vba/api/excel.range.offset (EN - TXT) | ||
+ | *Worksheets vs Sheets | ||
+ | **https://exceloffthegrid.com/sheets-and-worksheets-in-vba/ (EN - TXT) | ||
+ | *...(ide minden olyan forrás felsorolása indokolt, melyekre valakinek legalább egyszer érdemes volt rákeresnie)... | ||
+ | |||
+ | =Programozás-filozófiai alapvetések= | ||
+ | *A VBA olyan speciális keretrendszer, ahol | ||
+ | **a grafikus interfész egy része = maga az Excel normál nézete | ||
+ | **a grafikus interfész másik része pl. a VBA-alapú űrlapok, vezérlők | ||
+ | **s a normál Excel-felületen lehetséges olyan manuális adatfeldolgozási logika kialakítása | ||
+ | **és makró-rögzítéssel való hibátlan (esetlegesen hiányos) kóddá konvertálása | ||
+ | **mely kódrészletek felfoghatók egy építőanyag-raktárban tárolt erőforrásoknak | ||
+ | **s ezen erőforrások (építőanyagok: pl. szűrés, pivot, diagram, cellába is írható függvények, stb.) kapcsán a makrórögzítés egyedi (beégetett) paraméterei | ||
+ | **programkódból felülvezérelhetők | ||
+ | **így az építőanyagok eset-specifikusan testre szabhatók | ||
+ | **s végül az épület (a program) ezen speciálisan felparaméterezett építőanyagok megfelelő sorrendű kapcsolatát jelentik... | ||
+ | *Az objektum-orientáltság látszólag már áttekinthetetlen kombinatorikai/lehetőségi teret jelent, mely azonban inkább segít, mint hátráltat. | ||
+ | *A VBA használható természetesen mindennemű grafikus felület bármilyen jellegű (vö. input/output) bevonása nélkül is (vö. változók definiálása, memória-alapú adatfeldolgozás). | ||
+ | *A VBA használata annál indokoltabb, minél inkább sikerül a makró-rögzítővel előre legyártható sablonokra (építőanyagokra) támaszkodni. | ||
+ | *Kódot "csak" a sablonok testre szabását illetően érdemes írni. | ||
+ | *Minden funkció, amit mások már függvényként, vagy más módon előkészítettek, saját kódból is előállíthatók, de ezek a megoldások általában sokkal lassabbak lesznek. | ||
+ | *A VBA-programírás lényege a sablonok testre szabásának képessége, vagyis hogy az azokba látszólag beégetett értékeket tetszőlegesen vezérelhető változókká és/vagy grafikus felületről érkező inputok tartalmává tudjuk alakítani. | ||
+ | *Hasonlóképpen a programozási tudás fokmérője az Excel/VBA beépített funkcionalitásainak megkerülni tudása (pl. diagramok automatikus sorszámozásának programozó általi vezérelni tudása, vagy ennek megkerülése, pl. legrosszabb esetben is a teljes munkafüzet bezárásán és újra indításán keresztül). | ||
+ | *A jó programozó nem (csak) az, aki minden kérdésre azonnal és fejből tudja a választ, hanem az, aki képes az online tutoriálok, fórumok erdejében minél gyorsabban eligazodni. | ||
+ | *A programírás kevésbé a hogyan valósítsunk meg egy jól átgondolt adatfeldolgozási lépéssort problémájának kezelését jelenti, mint magának a megprogramozandó lépéssornak a minél inkább VBA-specifikus megtervezését. | ||
+ | *Bizonyos más programnyelvekkel hasonló tapasztalatokra lehet szert tenni: pl. | ||
+ | **https://www.youtube.com/watch?v=-NBh_GZ81os (HU-tutoriál: C# .NET fejlesztés alapjai) | ||
+ | **... | ||
+ | *... | ||
+ | |||
+ | =Tanfolyami vezér-feladatok= | ||
+ | *Alkossunk meg egy 8 rétegű személyiségprofil-készítő rendszert a 2DM játék log-adatai alapján méret-függetlenül, de minél kevesebb kódírással a makrórögzítési szakaszok után! | ||
+ | *https://miau.my-x.hu/miau/254/2dm_kemia_demo/ | ||
+ | *https://miau.my-x.hu/temp/demo/robot_profiling_macro_f1.xlsm (első elemzési réteg) | ||
+ | *https://miau.my-x.hu/temp/demo/robot_profiling_macro_select.xlsm (paraméterezési demo) | ||
+ | *https://miau.my-x.hu/temp/demo/robot_profiling_macro_f2.xlsm (második elemzési réteg inkl. paraméterezési demo) | ||
+ | *https://miau.my-x.hu/temp/demo/f3_1.xlsm (harmadik elemzési réteg) | ||
+ | *https://miau.my-x.hu/temp/demo/f4_1.xlsm (negyedik elemzési réteg: az f3-makró alapján kizárólag paraméter-finomhangolással - makró-rögzítés nélkül) | ||
+ | *f5-f6-f7-f8-f* (ASAP) | ||
+ | *Háttér-logika: | ||
+ | **https://miau.my-x.hu/temp/demo/alany2_f1-2-3-4-5-6-7-8-plus.xlsx | ||
+ | **https://miau.my-x.hu/miau2009/index_tki.php3?_filterText0=*2dm | ||
+ | **https://miau.my-x.hu/miau2009/index_tki.php3?_filterText0=*robot-psz | ||
+ | **https://miau.my-x.hu/miau2009/index_tki.php3?_filterText0=*2DM-alap | ||
+ | ***https://miau.my-x.hu/miau2009/index_tki.php3?_filterText0=*B-modell | ||
+ | ***https://miau.my-x.hu/miau2009/index_tki.php3?_filterText0=*3-4 | ||
+ | *https://miau.my-x.hu/temp/demo/f5_1.xlsm (sebesség3 fogalmának levezetése csak szűrletekre érvényes műveleteken keresztül) | ||
+ | *... | ||
+ | |||
+ | =Házi feladat= | ||
+ | *Milyen hideg lesz a tél 2022-ben? | ||
+ | **Adatok: https://www.met.hu/eghajlat/magyarorszag_eghajlata/eghajlati_adatsorok/Budapest/adatok/napi_adatok/index.php | ||
+ | **Módszertani demo: http://miau.my-x.hu/miau/111/chf30.doc | ||
+ | **Részmegoldás makró-támogatással: https://miau.my-x.hu/miau/292/fagyos_napok_szama.xlsm | ||
+ | |||
+ | =Specialitások= | ||
+ | *F9<>xlsm: "Calculate" hatásai a cella-vizualizáció animációjára makro nélkül és makro-val: https://miau.my-x.hu/miau/302/Mappe1.xlsm | ||
+ | *Makro-alapú Excel-hibajegy-kezelés kísérlete (valós esettanulmány): https://miau.my-x.hu/miau/302/excel_support1.docx | ||
+ | *Goto/Gosub (VBA-használat mindennemű Excel-kötődés/felületi kapcsolat nélkül quasi tisztán matematikai célokra): | ||
+ | **https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/gosubreturn-statement (EN, TXT) | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_goto_gosub.xlsm | ||
+ | **Kommentárok: | ||
+ | ***nem mindegy hol kerül az RND() érték inicializálásra szakasz1 előtt, vagy után | ||
+ | ***érdemes felkészülni minden esetben arra, hogy a programlogika téves és végtelen ciklus/futásidő igény alakul ki | ||
+ | *Végtelen programfutás megszakításának lehetőségei: pl. https://hu.excel-lib.com/11705874-interrupt-a-macro (HU, TXT) + https://www.google.com/search?q=ctrl+break+on+dell+laptop (ctrl+break billentyű-kombináció beazonosítása pl. DELL laptopokon), ill. (HP: ctrl+fn+JOBBshift) | ||
+ | *Paraméter-átadás sub-ok között modulon belül: | ||
+ | **https://learn.microsoft.com/en-us/office/vba/language/concepts/getting-started/calling-sub-and-function-procedures (EN, TXT) | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_sub2sub.xlsm | ||
+ | **Kommentárok: | ||
+ | ***A goto/gosub logikából egyes részletek átemelésre kerültek szakasz1() és szakasz2() sub()-okba egymásra láncolva meghívva ezeket (Call) | ||
+ | ***A változók átadása a Call név(változó1, változó2, ...) alapon történik. | ||
+ | ***A változók fogadása a sub létrehozásakor is a fenti logikát követi sub név(változó1, változó2, ...). | ||
+ | ***Nem minden változót kell átadni modulon belül, hogy a fő működés teljesüljön. | ||
+ | *Változók átadása modulok között: | ||
+ | **https://hu.know-base.net/7580130-vba-global-variables | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_module2module.xlsm | ||
+ | *Paraméter-átadás Excel-file-ok között: | ||
+ | **https://prog.hu/tudastar/202388/vba-parameter-vagy-valtozo-atadas-excel-fajlok-kozott | ||
+ | **Gyakorló feladatok: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb.xlsm (vö. elsofile() sub indítása) | ||
+ | **Gyakorló feladatok: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa2.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb2.xlsm (vö. elsofile() sub indítása) - bbb2aaa2bbb (azaz láncreakció a C-meghajtó azonos könyvtárában a felhasználó által kezelt mindkét xlsm esetén) | ||
+ | **Gyakorló feladatok: elérési utak teljes állomány-elnevezéssel, kiterjesztéssel: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa2b.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb2b.xlsm | ||
+ | **Gyakorló feladatok: sharepoint-elérési utak teljes állomány-elnevezéssel, kiterjesztéssel: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa2c.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb2c.xlsm (csak demo a szerzőn kívül megfelelő jogosultságok nélkül) + https://miau.my-x.hu/temp/demo/sharepoint.png (csak a bbb-t megnyitva, s a hiba az aaa nyitása kapcsán lép fel - lokálisan) | ||
+ | *VBA és WIN-SCP együttműködése: | ||
+ | **https://winscp.net/forum/viewtopic.php?t=14699 (EN -TXT) | ||
+ | *VBA és távoli meghajtók kapcsolata | ||
+ | **https://prog.hu/tudastar/200797/jelszoval-vedett-halozati-meghajto-elerese-excel-vba (HU - TXT) | ||
+ | **https://prog.hu/tudastar/122889/halozati-meghajto-eltavolitasa | ||
+ | *Tömbök: | ||
+ | **https://support.microsoft.com/hu-hu/office/lbound-f%C3%BCggv%C3%A9ny-ceb18f7b-c1fc-401e-b1fb-6916ef9e8310 | ||
+ | **https://support.microsoft.com/hu-hu/office/ubound-f%C3%BCggv%C3%A9ny-212b1998-327b-4f1e-ba3f-db4f9b5ba251 | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_goto_gosub_tombok.xlsm | ||
+ | *Képletek cellába írása (abszolút és relatív hivatkozásokkal) | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_goto_gosub_tombok_kepletek.xlsm | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_goto_gosub_tombok_kepletek_relativ.xlsm | ||
+ | *Excel-verziók hatásai: https://miau.my-x.hu/mediawiki/index.php/Makro-parok-1 (2016 vs 365) | ||
+ | **https://miau.my-x.hu/temp/demo/excel_365_m.docx | ||
+ | **https://miau.my-x.hu/temp/demo/excel_2016_m.docx | ||
+ | **https://miau.my-x.hu/temp/demo/excel_makro_parok.docx | ||
+ | *Fájlból olvasás, fájlba írás: | ||
+ | **https://software-solutions-online.com/vba-open-files/ (EN - TXT) | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/fajlbol_olvasas_fajlba_iras.xlsm | ||
+ | ***https://miau.my-x.hu/temp/demo/log2.csv | ||
+ | ***https://miau.my-x.hu/temp/demo/log | ||
+ | ***https://miau.my-x.hu/temp/demo/log.txt (a kiterjesztés nélküli állomány lett ellátva txt-kiterjesztéssel) | ||
+ | ***FreeFile: https://szlavip.web.elte.hu/Magamnak/VB/VB_le%EDr%E1s.pdf#page=353 | ||
+ | *Solver engedélyezése:https://www.wallstreetmojo.com/vba-solver/ (EN - TXT) | ||
+ | **Excel: Options / Addins / Go / Solver | ||
+ | **VBA: Tools / References / Solver | ||
+ | **Reset Solver - lehetőség szerint minden indítás előtt (pl. https://www.solver.com/excel-solver-solverreset-function - EN - TXT) | ||
+ | **Gyakorló feladat: https://miau.my-x.hu/temp/demo/solver.xlsm | ||
+ | *WORD-makró futtatása Excel-ben (nem triviális): | ||
+ | **https://miau.my-x.hu/temp/demo/word_makro.docm | ||
+ | **https://miau.my-x.hu/temp/demo/word_makro_excel_is.xlsm | ||
+ | **https://www.automateexcel.com/vba/word/open-document (EN - TXT) | ||
+ | *PowerPoint - makró-rögzítés nincs | ||
+ | **https://miau.my-x.hu/temp/demo/makro_rogzites_nincs.pptm | ||
+ | **https://www.brightcarbon.com/blog/how-to-use-vba-in-powerpoint/ (EN - TXT) | ||
+ | **https://www.youtube.com/watch?v=yxXAVAzXDx4 (EN - 05:16) | ||
+ | **https://www.automateexcel.com/vba/powerpoint-macro-examples-tutorial/ (EN - TXT) | ||
+ | *Vágólap-kezelés: | ||
+ | **https://exceloffthegrid.com/what-is-cutcopymode-false-should-i-use-it/ (EN - TXT) | ||
+ | **"Conclusion: Ultimately, the decision of whether to use Application.CutCopyMode = False comes down to this: if at the end of executing the macro, the marching ants are visible, and you don’t want them to be, then use it, otherwise don’t worry about it." | ||
+ | **Hangyák léte/nem léte: https://miau.my-x.hu/temp/demo/minden_harmadik_adat_transzponalasa.xlsm | ||
+ | *Változók típusai (pl. integer, long, double, stb.): | ||
+ | **https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/data-type-summary (EN -TXT) | ||
+ | **https://www.google.com/search?q=vba+long+integer&ei=VR9NY7yNDcLzkgXwpYmQBw&ved=0ahUKEwj8i-ja-Ob6AhXCuaQKHfBSAnIQ4dUDCA4&uact=5&oq=vba+long+integer&gs_lcp=Cgdnd3Mtd2l6EAMyBAgAEEcyBAgAEEc6CggAEEcQ1gQQsANKBAhBGABKBQhAEgExSgQIRhgAUMMBWMMBYP0PaAFwAngAgAEAiAEAkgEAmAEAoAEByAECwAEB&sclient=gws-wiz (EN -TXT) | ||
+ | *Ha nem fut le egy a rendezés... | ||
+ | **https://answers.microsoft.com/en-us/msoffice/forum/all/troubleshooting-autosort-vba-in-excel/1cbc4237-e8e1-440d-bc43-32898f4dedf9 (EN - TXT) | ||
+ | **pl. érdemes lehet a rendezéssel érintett teljes területet megadni | ||
+ | **Ha nem fut le minden egyes (elvileg identikus) laptopon ugyanaz a pivot-táblán belüli rendezést előíró makró? | ||
+ | **ilyen esetben nem is lehet több cellát a makró-rögzítés kapcsán kijelölni a rendezés kikényszerítéséhez... | ||
+ | **ha tehát nem stabil a rendezés pivot-on belül, akkor kerülő út lehet a pivot másolatának rendezése: pl. https://www.automateexcel.com/vba/sorting/ (EN - TXT) | ||
+ | **alternatív megoldás a makró-rögzítés logikája helyett a kézzel írt kód a rendezés kapcsán: pl. https://stackoverflow.com/questions/39778636/sort-pivottable-vba (EN - TXT) | ||
+ | *CMD-hívás (pl. C-URL) VBA-ból: | ||
+ | **https://stackoverflow.com/questions/17956651/execute-a-command-in-command-prompt-using-excel-vba | ||
+ | **https://miau.my-x.hu/bprof/2021/curl.docx (HU - TXT) | ||
+ | *REM blokkosítása (sok kódsort egyszerre kijelölve): | ||
+ | **https://www.tachytelic.net/2018/11/how-to-comment-a-block-of-code-in-the-microsoft-office-vba-editor/ (inkl. videó 00:19) | ||
+ | *Merevlemezről CSV-állomány beolvasása sorról sorra: | ||
+ | **https://www.exceldemy.com/excel-vba-read-csv-file-line-by-line/ (EN - TXT) | ||
+ | **inkl. DO-UNTIL-LOOP | ||
+ | *Cellák tartalmának, helyének, típusának lekérdezése: | ||
+ | **https://support.microsoft.com/hu-hu/office/cella-f%C3%BCggv%C3%A9ny-51bd39a5-f338-4dbe-a33f-955d67c2b2cf (HU - TXT) | ||
+ | **https://www.automateexcel.com/vba/activecell-row-column/ (EN - TXT) | ||
+ | *Range-műveletek: | ||
+ | **https://www.wallstreetmojo.com/vba-variable-range/ (EN - TXT) | ||
+ | **https://learn.microsoft.com/en-us/office/vba/api/excel.range.address (EN - TXT) | ||
+ | *Email-küldés Excel-adatokkal: https://www.youtube.com/watch?v=obWIImqBMxc (DE - videó - kb. 00.19.00-) | ||
+ | *Legördülő lista előállítása: https://www.youtube.com/watch?v=obWIImqBMxc (DE - videó - kb. 00:24:00-) | ||
+ | *BEEP() és a HA()-függvény kapcsolata: https://www.youtube.com/watch?v=ue9a71AEVm4 (EN - videó) | ||
+ | *... | ||
+ | |||
+ | =Releváns témakörök= | ||
+ | |||
+ | Egyes kulcsszavak angolul: pl. https://iqjb.hu/tanfolyamok/microsoft/microsoft-excel-word-powerpoint-project-access/feladatok-automatizalasa-a-microsoft-excel-ben-i | ||
+ | |||
+ | *1. Makrók | ||
+ | **1.1. Makrók rögzítése | ||
+ | **1.2. Felvételi jellemzők beállítása | ||
+ | **1.3. Makrók tesztelése, futtatása | ||
+ | **1.4. Rögzített makrók kódjának vizsgálata | ||
+ | *2. Program fejlesztői környezet | ||
+ | **2.1. Makrók kódjának módosítása | ||
+ | **2.2. VBA fejlesztői környezet | ||
+ | **2.3. Projekt tallózó | ||
+ | **2.4. Tulajdonság ablak | ||
+ | **2.5. Kódszerkesztő | ||
+ | **2.6. Objektumtallózó | ||
+ | **2.7. Hibakeresés ablakai | ||
+ | *3. VBA objektumai | ||
+ | **3.1. Az objektum orientált programozás alapjai | ||
+ | **3.2. Az Excel objektum modellje | ||
+ | **3.3. Munkafüzet, munkalap, sorok, oszlopok, cellák objektum műveletei | ||
+ | *4. VBA nyelv elemei | ||
+ | **4.1. Változók | ||
+ | **4.2. Vezérlési szerkezetek | ||
+ | **4.3. Eljárások, függvények | ||
+ | **4.4. Munkalap függvények használata VBA-ban | ||
+ | *5. Hibakeresés | ||
+ | **5.1. Hibakeresés, nyomonkövetés | ||
+ | **5.2. Hibák típusai | ||
+ | **5.3. Nyomonkövetés, lépésenkénti végrehajtás | ||
+ | **5.4. Nyomonkövetés ablakai | ||
+ | **5.5. Hibakezelés | ||
+ | *6. Vezérlők alkalmazása | ||
+ | **6.1. Vezérlők elhelyezése az Excel munkalapon | ||
+ | **6.2. Nyomógomb, adatbeviteli mezők, választókapcsolók, jelölőnégyzet, kombinált lista, görgetősáv | ||
+ | **6.3. Vezérlők hozzárendelés makrókhoz | ||
+ | **6.4. Különbségek a munkalapi vezérlők és a VBA vezérlők között | ||
+ | |||
+ | Tesztek: https://docs.google.com/spreadsheets/d/1bi9V_AIAN1QGqTZ44bSoCemlnXggadZlCRjDFvOubSM/edit#gid=1931489930 | ||
+ | Mentett állapot: https://miau.my-x.hu/temp/demo/vba_tesztek.xlsx |
A lap jelenlegi, 2023. augusztus 27., 09:19-kori változata
A szócikk laptörténete (https://miau.my-x.hu/mediawiki/index.php?title=Excel-makro&action=history) felfogható egy autodidakta VBA-kurzus lehetséges lefolyásaként!
A szócikk célja, hogy tutoriál-ajánlások mellett rámutasson szemléletformáló részletekre a rögzítés alapú makró-írás kapcsán. A makró-rögzítésből ugyanis ritkán lesz pont az a funkcionalitás, amire ténylegesen szüksége van a felhasználónak. Így a makró-rögzítés utáni kód hatásos és hatékony átalakítása érdekében tudni kell, mi is a felhasználó valós mozgástere (pl. mely "beégetett" paraméter hogyan vezérelhető). Ez a wiki-szócikk tehát a rögzített makrókkal való együttműködést helyezi a fókuszba, de jelzés-értékűen egyfajta "Excel-mentes" programozási mintákat is bemutat... (A VBA az itt jelzetteknél lényegesen többet tud! - vö. ajánlott tankönyv)
Egy Excel-tanfolyam lényege a szakmai vita, a ténylegesen megoldandó feladatokkal való közös azonosulás, az alternatívák és/vagy kockázatok feltárása, vagyis a miértek közös értelmezése. Ha nem az interaktivitás a célja egy képzésnek, vagyis csak a hogyanok a lényegesek és a miértek nem relevánsak, akkor tutoriálok kell készíteni/keresni/használni, ahogy az itt is számos ponton előkerül...
A programozás kapcsán a tudás életképes csírája az, amit egyszer már sikerült ténylegesen alkalmazni is a látottak, hallottak közül!
2023-tól minden Excel-makro-kérdést először a chatGPT-vel érdemes megkonzultálni: https://www.youtube.com/watch?v=yf783C-mnk4 + https://www.youtube.com/watch?v=obWIImqBMxc Önellenőrzési lehetőség: Az az igény/elvárás/gondolat, melyet a chatGPT nem tud értelemesen kezelni, lehet, hogy még a Megrendelő fejében nem forrta ki magát eléggé?! (pl. nincs meg a megfelelő szóhasználat, a megfelelő nyelvi letisztultság, ...)
Tartalomjegyzék
Jó tanácsok
- Bármennyire fáradságos, érdemes már rögtön az első kódírási kísérletkor az első VBA-rendszerüzenetet/hibaüzenetet, ennek kiváltó kódját és a megoldást jelentő kódot, ill. a megoldás lényegét egy fajta munkanaplóban folyamatosan rögzíteni, mert a rendszerüzenet/hibaüzenetek nem elég specifikusak ahhoz, hogy a programozó azonnal tudja, mit is rontott el, valamint hol kell változtatni a siker érdekében!
- Ha egy kód azonnal sikerül, érdemes elrontani minél több ponton, hogy lássuk a rontások hatásait a működésre és/vagy a hibaüzenetekre...
- Minél rövidebb egy kód, annál egyszerűbb rájönni a felmerülő hibák okára.
- Érdemes minden kódírás előtt úm. manuálisan végig vinni a tervezett (adatfeldolgozási) lépéseket és így teszteredményekhez jutni, melyeket a lépésről-lépésre törtőnő (F8) ellenőrzés alatt minden egyes változó minden időpillanatban felvett értéke kapcsán lehet majd hasznosítani.
Tutoriál-ajánlások
Tankönyv: pl. https://szlavip.web.elte.hu/Magamnak/VB/VB_le%EDr%E1s.pdf
Gyors áttekintés/önteszt (17 kérdéskör): https://www.youtube.com/watch?v=S5awwOwnyhE (17 releváns tudnivaló kezdőknek - 16:35 EN) inkl. [tematika 5] Technikák/önteszt (7 kérdéskör): https://www.youtube.com/watch?v=RD5mi9ba_Ys (7 koncepcionális alapvetés kezdőknek - 16:03 - EN) inkl. [tematika 3 + tematika 1.4/2.1] Cellák kezelése (.cells) a VBA-ban/önteszt: https://www.youtube.com/watch?v=x_PCdMlO41M (1of4 - 05:56 - EN) inkl. [tematika 3] 2 of 4: https://www.youtube.com/watch?v=tlmFmcimIwU (06:21 - EN) 3 of 4: https://www.youtube.com/watch?v=oW2ZqqArIhA (05:24 - EN) 4 of 4: https://www.youtube.com/watch?v=rf8rK7rzoU0 (06:21 - EN)
- Fogalmi, stratégiai alapozás:
- https://www.youtube.com/watch?v=AEUKbrdTkiY (13:13 - HU) [tematika 1]
- https://www.youtube.com/watch?v=LM-OrJgFTqo (05:16 - HU) - Az Excel kapcsolata más OOP nyelvekkel
- https://www.youtube.com/watch?v=zeOXmKGP8nA (04:58 - HU) - UML
- Mi is az a VBA?
- Mit jelent a makró-rögzítés?
- Mit jelent az MS Office-hatókör (pl. Excel, Word, ...)?
- Videó-kommentárok:
- Makró-rögzítés indítása:
- ALT+F8 és/vagy menü:
- NÉZET
- MAKRÓK,
- ill. Fejlesztőeszközök menü-szalagról,
- valamint ALT+F11 (VBA-környezet indítása, ill.
- visszalépés az Excel-be, ALT+Q VBA bezárása ÉS visszatérés az Excel-be)
- ALT+F8 és/vagy menü:
- Makró-rögzítés típusa: abszolút (A1:B2) vagy relatív (S[1]O[1]) [tematika 1.2]
- Nem csak abban a munkafüzetben fut a felvett makró, ahol készült!
- Ha nem látható a menü-szalagon a fejlesztőeszközök opció, akkor
- FÁJL
- BEÁLLÍTÁSOK
- MENÜSZALAG TESTRE SZABÁSA
- Fejlesztőeszközök bekapcsolása (jobb oldali lista: inkl. kód, bővítmények, vezérlők, xml)<--vö. következő tutoriál (VBA-haladóknak)
- (s a videóban látható, a képernyő bal alsó részén lévő makrórögzítés/leállítás ikon innentől válik láthatóvá csak)
- Makró-rögzítés indítása:
- https://www.youtube.com/watch?v=AEUKbrdTkiY (13:13 - HU) [tematika 1]
- VBA haladóknak: https://www.youtube.com/watch?v=fg_A40nzq5Y (19:04 - HU) [tematika 2]
- Fejlesztőeszközök menü-szalag bekapcsolása/bemutatása
- Eseményvezérlés
- XLSM-alapú mentés
- Űrlap (form), gomb (button), címke (label) [tematika 6]
- Videó-kommentárok:
- Minden önmagában tesztelhető lépést tesztelni érdemes!
- A makrót indító billentyű-parancs esetén a CTRL már adott, tehát csak a SHIFT+G kell lenyomni majd a CTRL+SHIFT+G definiálásához.
- Lehetőség szerint ne használjunk foglalt billentyű-parancsokat.
- Billentyű-parancsok áttekintése: pl. https://support.microsoft.com/hu-hu/office/az-excel-billenty%C5%B1parancsai-1798d9d5-842a-42b8-9c99-9b7213f0040f
- Reprodukciós nézet: https://miau.my-x.hu/temp/demo/vba_open.xlsm [tematika 4]
- Többlet-szöveg
- If/then egysoros nézete (vö. "_" sortörés lehetősége a kódírás során)
- Event handling: https://www.youtube.com/watch?v=Z2brmJ1iqCk (09:44 - EN) [tematika 3]
- Munkalap-specifikus kódírás (private sub)
- Angol nyelvű szakszavak
- Objektum-orientáltság (pl. munkalap_esemény)
- Event-dokumentációk:
- https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.selectionchange (EN - TXT)
- https://www.excelanytime.com/excel/index.php?option=com_content&view=article&id=111:worksheet-selection-change-event-excel-vba&catid=79&Itemid=475 (EN- TXT)
- reprodukciós nézet (nyomkövetésre adaptálva: Event-handling-09:44-EN): https://miau.my-x.hu/temp/demo/sheet7.xlsm
- 115 events: https://powerspreadsheets.com/excel-vba-events/(EN - TXT)
- áttekintés: https://trumpexcel.com/vba-events/ (EN - TXT)
- User forms:
- https://www.youtube.com/watch?v=1hmuvovrMDw (11:42 - EN) - mini projekt
- https://www.youtube.com/watch?v=IA7n-Q0Fjdk (05:50 - HU) - űrlapok
- https://www.youtube.com/watch?v=r0NADeHCr5k (02:31 - HU) - űrlapok kezelése
- https://www.youtube.com/watch?v=18i4PQD89O0 (03:56 - HU) - űrlap-gombok
- https://www.youtube.com/watch?v=BAkDWy643aE (03:20 - HU) - feliratok
- https://www.youtube.com/watch?v=8ySzYkIHXaE (04.18 - HU) - adatbevitel
- https://www.youtube.com/watch?v=9jBf81a4pJI (07:49 - HU) - adatok áramlása űrlap és Excel között
- https://www.youtube.com/watch?v=MZlkPCId220 (04:26 - HU) - listák használata
- https://www.youtube.com/watch?v=vi2FJUic1Vs (10:20 - HU) - lista bővítése
- https://www.youtube.com/watch?v=bjg13QXEPMw (10:27 - HU) - sokelemes listák kezelése
- https://www.youtube.com/watch?v=mCyfe1Oh6Ao (11:27 - HU) - választási lehetőségek
- https://www.youtube.com/watch?v=gUDdncCPte8 (03:28 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) I. (frame)
- https://www.youtube.com/watch?v=vKJR_niSv-A (05:01 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) II.
- https://www.youtube.com/watch?v=uznil60y590 (09:27 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) III.
- https://www.youtube.com/watch?v=-TPBQ7t0pyg (24:58 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) IV.
- https://www.youtube.com/watch?v=-yWzgN-y6Go (15:44 - HU) - checkbox vs. option button (jelölő négyzet, rádiógomb, adatkeret) V.
- https://www.youtube.com/watch?v=neB38ULoq-M (06:15 - HU) - image
- ...
- Project explorer / Projekt tallózó: [tematika 2.3]
- https://www.youtube.com/watch?v=dglaT9H7ZNk (01:14 - EN)
- https://www.youtube.com/watch?v=q7jdCP3CdkI (02:21 - EN)
- CTRL+R
- Object explorer / Objektum tallózó: [tematika 2.6]
- https://www.youtube.com/watch?v=d95AvpgmfWQ (04:38 - EN)
- A súgó minden listaelemre elérhető (zömmel angolul / online / jobb egérgombon keresztül - az adott elemre kattintva): pl. https://learn.microsoft.com/hu-hu/office/vba/api/excel.application.calculate?f1url=%3FappId%3DDev11IDEF1%26l%3Dhu-HU%26k%3Dk(vbaxl10.chm183084)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue
- F2
- Properties window / tulajdonság ablak [tematika 2.4]
- https://www.youtube.com/watch?v=dglaT9H7ZNk (01:14 - EN)
- https://www.youtube.com/watch?v=v9ml70RUBVs (04:10 - EN)
- F4
- Hibakezelés, hibakódok (szöveges segédanyagok): [tematika 5]
- https://hu.excel-lib.net/11705448-excel-vba-error-handling-all-you-need-to-know (HU - TXT)
- https://hu.know-base.net/7580102-vba-error-handling (HU - TXT)
- https://hu.excel-lib.com/11705873-error-handling (HU - TXT)
- https://hu.education-wiki.com/8318574-vba-error-handling (HU - TXT)
- https://www.youtube.com/watch?v=mCyfe1Oh6Ao (11:26 - HU) - ÉLŐ kódfejlesztés hibakezeléssel
- https://www.youtube.com/watch?v=lzQrY2sRTWY (03:36 - HU) - Korrupt állományok javítása
- háttér-állományok: https://drive.google.com/drive/folders/1Q3T-ggduRC75arCFn6rdsRmCvke24k3l
- https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/s6da8809(v=vs.100)?redirectedfrom=MSDN (EN) <--forrás: https://www.excelforum.com/excel-programming-vba-macros/601056-list-of-runtime-error-codes.html (EN - TXT)
- Error codes (lista): https://chejunkie.com/knowledge-base/common-runtime-error-codes-vba/ (EN - TXT)
- Error codes (lista): https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/aa264975(v=vs.60)?redirectedfrom=MSDN (EN)
- Error codes (lista-generálás): https://learn.microsoft.com/hu-hu/office/vba/Language/Reference/User-Interface-Help/application-defined-or-object-defined-error (EN)
- Beállítások elérése:
- TOOLS
- OPTIONS
- Form controls / Űrlapvezérlők: [tematika 6]
- https://hu.excel-lib.com/11705621-checkbox (jelölő négyzet / szöveges, HU)
- Makró-futtatás tiltásának manuális feloldása:
- Gyakorló feladatok:
- http://miau.my-x.hu/miau/236/3333_makro_versions.xlsm (csak kód)
- https://miau.my-x.hu/digeco/coco_prg1.xlsm (csak kód)
- !!!ÉLŐ PROBLÉMA-MEGOLDÁS (angolul): https://www.youtube.com/watch?v=zA_Q_Yws0gQ (43:32 - EN) + Makró nélkül?! (https://miau.my-x.hu/temp/demo/minden_harmadik_adat_transzponalasa.xlsx) + Alternatív makró rögzítéssel: https://miau.my-x.hu/temp/demo/minden_harmadik_adat_transzponalasa.xlsm
- Konklúziók:
- Nem a megvalósítás (kódírás) a kritikus általában, hanem a megvalósítandó lépések matematikailag/logikailag korrekt tervezése (vö. vagyis az ötlet maga)!
- Az Excel beépített függvényei, funkciói általában gyorsabbak, mint bármi más, amit a felhasználó meg tud programozni...
- A gyorsaság mellett a memória terheltsége is lehet fontos...
- A makró-rögzítés keretében keletkező kód beégetődő paramétereit általában felül kell vezérelni (tudni)...
- Egy program szinte soha nincs készen, mert egyes komponensei nem elég univerzálisak, de ami adott, az lehet éppen már működőképes... (vö. FOR-ciklus hossza manuálisan, vagy DO-UNTIL-LOOP-ciklus)...
- A kódírás közgazdasági kérdés (vö. információs többletérték): egy kód nem kerülhet többe, mint amennyi hasznot elvárunk tőle...
- A makró-rögzítés során alkalmazott megoldási logika általában eltér a kódírás során felmerülő (quasi tisztán matematikai) megoldások logikáitól... (vö. transzponálás, szűrés vs. ciklusok vezérlése)...
- Minden ötltet azonnal és kicsi méretben ellenőrizni kell (vö. pl. debug, F8, watch) és már az első hibánál le kell cserélni/finomítani kell az ötletet...
- Class-modules (VBA):
- https://www.youtube.com/watch?v=ie2Duci-qKQ (13:22 - EN) - (Válaszok a miért-is-lehet-ez-hasznos kérdésre...)
- ...
Szöveges segédanyagok
- Esemény-vezérlők:
- Paraméterezések:
- https://excelribbon.tips.net/T010030_Specifying_Location_for_a_Message_Box.html (message_box helyett input_box)
- Változók/tömbök:
- https://xlmotyo.hu/blog/tombok-vba-ban/ (HU) (inkl. Option Base1és Option Explicit - https://excelkingdom.blogspot.com/2012/10/option-explicit.html)
- Tudnivalók az Active X megoldásokról:
- https://support.microsoft.com/hu-hu/office/a-munkalapon-tal%C3%A1lhat%C3%B3-%C5%B1rlapok-%C5%B1rlapvez%C3%A9rl%C5%91k-%C3%A9s-activex-vez%C3%A9rl%C5%91elemek-%C3%A1ttekint%C3%A9se-15ba7e28-8d7f-42ab-9470-ffb9ab94e7c2 (HU - TXT) [tematika 6.4]
- Excel nyomógombok:
- https://support.microsoft.com/hu-hu/office/makr%C3%B3-hozz%C3%A1rendel%C3%A9se-%C5%B1rlaphoz-vagy-vez%C3%A9rl%C5%91gombhoz-d58edd7d-cb04-4964-bead-9c72c843a283 (HU - TXT)
- https://tablazatkezeles.hu/sajat-gombok-letrehozasa-excel (HU - TXT)
- https://hu.extendoffice.com/documents/excel/2879-excel-create-button-to-open-sheet.html (HU - TXT)
- Pivot funkciók numerikus kódjai:
- Másolás, beillesztés:
- Egyedi listaelemek kinyerése makró nélkül:
- https://www.excelanytime.com/excel/index.php?option=com_content&view=article&id=470&Itemid=694 (EN - TXT)
- demo: https://miau.my-x.hu/temp/demo/select_distinct_2dm.xlsm
- EGYEDI(): https://support.microsoft.com/hu-hu/office/egyedi-f%C3%BCggv%C3%A9ny-c5ab87fd-30a3-4ce9-9d1a-40204fb85e1e
- https://miau.my-x.hu/miau/293/flow1.xlsx (kérdőívek képlet-alapú értelmezése - pivot nélkül)
- https://www.youtube.com/watch?v=obWIImqBMxc (DE - videó 00:15:00-)
- Gyakorló feladat: Egyedi elemek kinyerése kimutatásvarázslással, kimutatásvarázslást rögzítő makróval, kimutatásvarázslást nem használó, nem rögzített makróval
- Gyakorló feladat: Adatfrissítés utáni sorrendváltozás kikényszerítése makró nélkül: https://miau.my-x.hu/miau/292/makro_helyett.xlsx
- Offset:
- Worksheets vs Sheets
- ...(ide minden olyan forrás felsorolása indokolt, melyekre valakinek legalább egyszer érdemes volt rákeresnie)...
Programozás-filozófiai alapvetések
- A VBA olyan speciális keretrendszer, ahol
- a grafikus interfész egy része = maga az Excel normál nézete
- a grafikus interfész másik része pl. a VBA-alapú űrlapok, vezérlők
- s a normál Excel-felületen lehetséges olyan manuális adatfeldolgozási logika kialakítása
- és makró-rögzítéssel való hibátlan (esetlegesen hiányos) kóddá konvertálása
- mely kódrészletek felfoghatók egy építőanyag-raktárban tárolt erőforrásoknak
- s ezen erőforrások (építőanyagok: pl. szűrés, pivot, diagram, cellába is írható függvények, stb.) kapcsán a makrórögzítés egyedi (beégetett) paraméterei
- programkódból felülvezérelhetők
- így az építőanyagok eset-specifikusan testre szabhatók
- s végül az épület (a program) ezen speciálisan felparaméterezett építőanyagok megfelelő sorrendű kapcsolatát jelentik...
- Az objektum-orientáltság látszólag már áttekinthetetlen kombinatorikai/lehetőségi teret jelent, mely azonban inkább segít, mint hátráltat.
- A VBA használható természetesen mindennemű grafikus felület bármilyen jellegű (vö. input/output) bevonása nélkül is (vö. változók definiálása, memória-alapú adatfeldolgozás).
- A VBA használata annál indokoltabb, minél inkább sikerül a makró-rögzítővel előre legyártható sablonokra (építőanyagokra) támaszkodni.
- Kódot "csak" a sablonok testre szabását illetően érdemes írni.
- Minden funkció, amit mások már függvényként, vagy más módon előkészítettek, saját kódból is előállíthatók, de ezek a megoldások általában sokkal lassabbak lesznek.
- A VBA-programírás lényege a sablonok testre szabásának képessége, vagyis hogy az azokba látszólag beégetett értékeket tetszőlegesen vezérelhető változókká és/vagy grafikus felületről érkező inputok tartalmává tudjuk alakítani.
- Hasonlóképpen a programozási tudás fokmérője az Excel/VBA beépített funkcionalitásainak megkerülni tudása (pl. diagramok automatikus sorszámozásának programozó általi vezérelni tudása, vagy ennek megkerülése, pl. legrosszabb esetben is a teljes munkafüzet bezárásán és újra indításán keresztül).
- A jó programozó nem (csak) az, aki minden kérdésre azonnal és fejből tudja a választ, hanem az, aki képes az online tutoriálok, fórumok erdejében minél gyorsabban eligazodni.
- A programírás kevésbé a hogyan valósítsunk meg egy jól átgondolt adatfeldolgozási lépéssort problémájának kezelését jelenti, mint magának a megprogramozandó lépéssornak a minél inkább VBA-specifikus megtervezését.
- Bizonyos más programnyelvekkel hasonló tapasztalatokra lehet szert tenni: pl.
- https://www.youtube.com/watch?v=-NBh_GZ81os (HU-tutoriál: C# .NET fejlesztés alapjai)
- ...
- ...
Tanfolyami vezér-feladatok
- Alkossunk meg egy 8 rétegű személyiségprofil-készítő rendszert a 2DM játék log-adatai alapján méret-függetlenül, de minél kevesebb kódírással a makrórögzítési szakaszok után!
- https://miau.my-x.hu/miau/254/2dm_kemia_demo/
- https://miau.my-x.hu/temp/demo/robot_profiling_macro_f1.xlsm (első elemzési réteg)
- https://miau.my-x.hu/temp/demo/robot_profiling_macro_select.xlsm (paraméterezési demo)
- https://miau.my-x.hu/temp/demo/robot_profiling_macro_f2.xlsm (második elemzési réteg inkl. paraméterezési demo)
- https://miau.my-x.hu/temp/demo/f3_1.xlsm (harmadik elemzési réteg)
- https://miau.my-x.hu/temp/demo/f4_1.xlsm (negyedik elemzési réteg: az f3-makró alapján kizárólag paraméter-finomhangolással - makró-rögzítés nélkül)
- f5-f6-f7-f8-f* (ASAP)
- Háttér-logika:
- https://miau.my-x.hu/temp/demo/f5_1.xlsm (sebesség3 fogalmának levezetése csak szűrletekre érvényes műveleteken keresztül)
- ...
Házi feladat
- Milyen hideg lesz a tél 2022-ben?
- Adatok: https://www.met.hu/eghajlat/magyarorszag_eghajlata/eghajlati_adatsorok/Budapest/adatok/napi_adatok/index.php
- Módszertani demo: http://miau.my-x.hu/miau/111/chf30.doc
- Részmegoldás makró-támogatással: https://miau.my-x.hu/miau/292/fagyos_napok_szama.xlsm
Specialitások
- F9<>xlsm: "Calculate" hatásai a cella-vizualizáció animációjára makro nélkül és makro-val: https://miau.my-x.hu/miau/302/Mappe1.xlsm
- Makro-alapú Excel-hibajegy-kezelés kísérlete (valós esettanulmány): https://miau.my-x.hu/miau/302/excel_support1.docx
- Goto/Gosub (VBA-használat mindennemű Excel-kötődés/felületi kapcsolat nélkül quasi tisztán matematikai célokra):
- https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/gosubreturn-statement (EN, TXT)
- Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_goto_gosub.xlsm
- Kommentárok:
- nem mindegy hol kerül az RND() érték inicializálásra szakasz1 előtt, vagy után
- érdemes felkészülni minden esetben arra, hogy a programlogika téves és végtelen ciklus/futásidő igény alakul ki
- Végtelen programfutás megszakításának lehetőségei: pl. https://hu.excel-lib.com/11705874-interrupt-a-macro (HU, TXT) + https://www.google.com/search?q=ctrl+break+on+dell+laptop (ctrl+break billentyű-kombináció beazonosítása pl. DELL laptopokon), ill. (HP: ctrl+fn+JOBBshift)
- Paraméter-átadás sub-ok között modulon belül:
- https://learn.microsoft.com/en-us/office/vba/language/concepts/getting-started/calling-sub-and-function-procedures (EN, TXT)
- Gyakorló feladat: https://miau.my-x.hu/temp/demo/no_excel_sub2sub.xlsm
- Kommentárok:
- A goto/gosub logikából egyes részletek átemelésre kerültek szakasz1() és szakasz2() sub()-okba egymásra láncolva meghívva ezeket (Call)
- A változók átadása a Call név(változó1, változó2, ...) alapon történik.
- A változók fogadása a sub létrehozásakor is a fenti logikát követi sub név(változó1, változó2, ...).
- Nem minden változót kell átadni modulon belül, hogy a fő működés teljesüljön.
- Változók átadása modulok között:
- Paraméter-átadás Excel-file-ok között:
- https://prog.hu/tudastar/202388/vba-parameter-vagy-valtozo-atadas-excel-fajlok-kozott
- Gyakorló feladatok: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb.xlsm (vö. elsofile() sub indítása)
- Gyakorló feladatok: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa2.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb2.xlsm (vö. elsofile() sub indítása) - bbb2aaa2bbb (azaz láncreakció a C-meghajtó azonos könyvtárában a felhasználó által kezelt mindkét xlsm esetén)
- Gyakorló feladatok: elérési utak teljes állomány-elnevezéssel, kiterjesztéssel: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa2b.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb2b.xlsm
- Gyakorló feladatok: sharepoint-elérési utak teljes állomány-elnevezéssel, kiterjesztéssel: https://miau.my-x.hu/temp/demo/no_excel_file2file_aaa2c.xlsm + https://miau.my-x.hu/temp/demo/no_excel_file2file_bbb2c.xlsm (csak demo a szerzőn kívül megfelelő jogosultságok nélkül) + https://miau.my-x.hu/temp/demo/sharepoint.png (csak a bbb-t megnyitva, s a hiba az aaa nyitása kapcsán lép fel - lokálisan)
- VBA és WIN-SCP együttműködése:
- VBA és távoli meghajtók kapcsolata
- Tömbök:
- Képletek cellába írása (abszolút és relatív hivatkozásokkal)
- Excel-verziók hatásai: https://miau.my-x.hu/mediawiki/index.php/Makro-parok-1 (2016 vs 365)
- Fájlból olvasás, fájlba írás:
- https://software-solutions-online.com/vba-open-files/ (EN - TXT)
- Gyakorló feladat: https://miau.my-x.hu/temp/demo/fajlbol_olvasas_fajlba_iras.xlsm
- https://miau.my-x.hu/temp/demo/log2.csv
- https://miau.my-x.hu/temp/demo/log
- https://miau.my-x.hu/temp/demo/log.txt (a kiterjesztés nélküli állomány lett ellátva txt-kiterjesztéssel)
- FreeFile: https://szlavip.web.elte.hu/Magamnak/VB/VB_le%EDr%E1s.pdf#page=353
- Solver engedélyezése:https://www.wallstreetmojo.com/vba-solver/ (EN - TXT)
- Excel: Options / Addins / Go / Solver
- VBA: Tools / References / Solver
- Reset Solver - lehetőség szerint minden indítás előtt (pl. https://www.solver.com/excel-solver-solverreset-function - EN - TXT)
- Gyakorló feladat: https://miau.my-x.hu/temp/demo/solver.xlsm
- WORD-makró futtatása Excel-ben (nem triviális):
- PowerPoint - makró-rögzítés nincs
- Vágólap-kezelés:
- https://exceloffthegrid.com/what-is-cutcopymode-false-should-i-use-it/ (EN - TXT)
- "Conclusion: Ultimately, the decision of whether to use Application.CutCopyMode = False comes down to this: if at the end of executing the macro, the marching ants are visible, and you don’t want them to be, then use it, otherwise don’t worry about it."
- Hangyák léte/nem léte: https://miau.my-x.hu/temp/demo/minden_harmadik_adat_transzponalasa.xlsm
- Változók típusai (pl. integer, long, double, stb.):
- https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/data-type-summary (EN -TXT)
- https://www.google.com/search?q=vba+long+integer&ei=VR9NY7yNDcLzkgXwpYmQBw&ved=0ahUKEwj8i-ja-Ob6AhXCuaQKHfBSAnIQ4dUDCA4&uact=5&oq=vba+long+integer&gs_lcp=Cgdnd3Mtd2l6EAMyBAgAEEcyBAgAEEc6CggAEEcQ1gQQsANKBAhBGABKBQhAEgExSgQIRhgAUMMBWMMBYP0PaAFwAngAgAEAiAEAkgEAmAEAoAEByAECwAEB&sclient=gws-wiz (EN -TXT)
- Ha nem fut le egy a rendezés...
- https://answers.microsoft.com/en-us/msoffice/forum/all/troubleshooting-autosort-vba-in-excel/1cbc4237-e8e1-440d-bc43-32898f4dedf9 (EN - TXT)
- pl. érdemes lehet a rendezéssel érintett teljes területet megadni
- Ha nem fut le minden egyes (elvileg identikus) laptopon ugyanaz a pivot-táblán belüli rendezést előíró makró?
- ilyen esetben nem is lehet több cellát a makró-rögzítés kapcsán kijelölni a rendezés kikényszerítéséhez...
- ha tehát nem stabil a rendezés pivot-on belül, akkor kerülő út lehet a pivot másolatának rendezése: pl. https://www.automateexcel.com/vba/sorting/ (EN - TXT)
- alternatív megoldás a makró-rögzítés logikája helyett a kézzel írt kód a rendezés kapcsán: pl. https://stackoverflow.com/questions/39778636/sort-pivottable-vba (EN - TXT)
- CMD-hívás (pl. C-URL) VBA-ból:
- REM blokkosítása (sok kódsort egyszerre kijelölve):
- Merevlemezről CSV-állomány beolvasása sorról sorra:
- https://www.exceldemy.com/excel-vba-read-csv-file-line-by-line/ (EN - TXT)
- inkl. DO-UNTIL-LOOP
- Cellák tartalmának, helyének, típusának lekérdezése:
- Range-műveletek:
- Email-küldés Excel-adatokkal: https://www.youtube.com/watch?v=obWIImqBMxc (DE - videó - kb. 00.19.00-)
- Legördülő lista előállítása: https://www.youtube.com/watch?v=obWIImqBMxc (DE - videó - kb. 00:24:00-)
- BEEP() és a HA()-függvény kapcsolata: https://www.youtube.com/watch?v=ue9a71AEVm4 (EN - videó)
- ...
Releváns témakörök
Egyes kulcsszavak angolul: pl. https://iqjb.hu/tanfolyamok/microsoft/microsoft-excel-word-powerpoint-project-access/feladatok-automatizalasa-a-microsoft-excel-ben-i
- 1. Makrók
- 1.1. Makrók rögzítése
- 1.2. Felvételi jellemzők beállítása
- 1.3. Makrók tesztelése, futtatása
- 1.4. Rögzített makrók kódjának vizsgálata
- 2. Program fejlesztői környezet
- 2.1. Makrók kódjának módosítása
- 2.2. VBA fejlesztői környezet
- 2.3. Projekt tallózó
- 2.4. Tulajdonság ablak
- 2.5. Kódszerkesztő
- 2.6. Objektumtallózó
- 2.7. Hibakeresés ablakai
- 3. VBA objektumai
- 3.1. Az objektum orientált programozás alapjai
- 3.2. Az Excel objektum modellje
- 3.3. Munkafüzet, munkalap, sorok, oszlopok, cellák objektum műveletei
- 4. VBA nyelv elemei
- 4.1. Változók
- 4.2. Vezérlési szerkezetek
- 4.3. Eljárások, függvények
- 4.4. Munkalap függvények használata VBA-ban
- 5. Hibakeresés
- 5.1. Hibakeresés, nyomonkövetés
- 5.2. Hibák típusai
- 5.3. Nyomonkövetés, lépésenkénti végrehajtás
- 5.4. Nyomonkövetés ablakai
- 5.5. Hibakezelés
- 6. Vezérlők alkalmazása
- 6.1. Vezérlők elhelyezése az Excel munkalapon
- 6.2. Nyomógomb, adatbeviteli mezők, választókapcsolók, jelölőnégyzet, kombinált lista, görgetősáv
- 6.3. Vezérlők hozzárendelés makrókhoz
- 6.4. Különbségek a munkalapi vezérlők és a VBA vezérlők között
Tesztek: https://docs.google.com/spreadsheets/d/1bi9V_AIAN1QGqTZ44bSoCemlnXggadZlCRjDFvOubSM/edit#gid=1931489930 Mentett állapot: https://miau.my-x.hu/temp/demo/vba_tesztek.xlsx