Programator pentru conectarea programelor cu Excel. Programare liniară în Excel

Fiecare utilizator a experimentat faptul că uneori în Excel nu există instrumente adecvate care să le satisfacă nevoile. Cu toată abundența Capabilitati Excel Uneori este imposibil să automatizezi soluțiile la unele probleme, deoarece nu există limită pentru perfecțiune. Soluția perfectă– aceasta oferă utilizatorului posibilitatea de a-și crea propriile instrumente specifice. Macro-urile au fost create în acest scop.

Scrierea macrocomenzi în Excel

Cod macrocomandă Excel scris în limbaj Visual Basic for Application (VBA) și este executat de instrumentul de aplicație la care este atașat. Majoritatea acestor instrumente nu sunt disponibile la nivel de fereastră programe Excel. Cum se scrie o macrocomandă.

Acum să demonstrăm cu un exemplu informații despre cum să scrieți, editați și executați codul macro.

Pentru a scrie o macrocomandă:


Notă. Dacă nu există nicio filă „DEVELOPER” în meniul principal, atunci aceasta trebuie activată în setări: „FIȘIER” - „Opțiuni” - „Personalizare panglică”. În lista din dreapta „File principale:”, bifați opțiunea „Dezvoltator” și faceți clic pe butonul OK.



Capacitățile macro în Excel

Macro-urile vă permit să automatizați procesele de lucru cu documente și multe altele... Ele pot executa aproape simultan mii de instrumente într-o singură operațiune (chiar și cu un singur clic de mouse). Acest lucru extinde posibilitățile de lucru cu programul.

Folosind macrocomenzi, utilizatorul își poate crea propriul instrument, care îi lipsește în arsenalul Excel. De exemplu, când trebuie să selectați automat fiecare al doilea rând cu un singur clic. Sau trebuie să creați simultan un anumit număr de copii ale unei anumite foi de lucru. Lista nevoilor utilizatorilor pentru automatizarea proceselor de lucru poate fi continuată pe termen nelimitat.

Dacă nu ar fi posibil să se creeze macrocomenzi în toate programele incluse în pachetul MS Office. În procesul muncii de rutină, utilizatorii ar trebui să efectueze multe operații manual (selectați fiecare altă linie făcând clic pe fiecare al doilea titlu cu mouse-ul sau copiați și lipiți o foaie la un moment dat). Lucrat manual V cele mai bune cazuri duce la pierdere sumă uriașă timp și, în cel mai rău caz, duce la erori sau chiar la pierderea de date valoroase.

Abilitatea de a crea macrocomenzi și de a automatiza fluxurile de lucru vă salvează munca de timp pierdut și erori. În continuare, ne vom uita la modul de a crea o macrocomandă care se va executa automat și fără erori. muncă de rutină cu un singur clic de mouse. Vom lua în considerare și în ce locuri registrul de lucru Excel poate crea și stoca macrocomenzi. Cum să le lansați și să le executați, precum și cum să le optimizați cât mai mult posibil pentru a se potrivi nevoilor dvs.

Excel oferă un arsenal mare și abundent de instrumente pentru stocarea și procesarea unor cantități uriașe de informații de date. Deși pentru cel mai universal program analitic Excel, stocarea datelor în sine este mai puțin interesantă decât capacitatea de a le procesa, structura și analiza cu prezentare în rapoarte. În aceste scopuri, este utilizat cel mai puternic instrument de procesare a datelor analitice, cum ar fi „Tabelele pivot”. Dar poate fi îmbunătățit în continuare cu ajutorul macrocomenzilor. Și apoi posibilitățile tabele pivot nu cunosc limite.

Pe lângă sfaturi despre cum să înveți să scrii macrocomenzi VBA pentru Excel, îți voi spune povestea mea - cum am învățat să programez în VBA.

Totul a început în secolul trecut, în 1993 anul când eram la școală. În timpul lecțiilor de informatică, în clasa noastră, erau calculatoare monstru numite „Corvette”, și am scris programe simple pe ele în BASIC. Aceste computere diferă destul de mult de cele „normale” (compatibile cu IBM) - aveau un afișaj monocrom, dar nu HDDși unități de dischetă, iar singurul lucru care a rulat pe el (automat, după pornire) a fost interpretul de limbaj de bază.

De fapt, interesul meu pentru programare a apărut mai devreme - la vârsta de 9 ani, când am văzut în revista „Modelist-Konstruktor” din 1988 (pe care o citesc în mod regulat, din scoarță în scoarță) câteva coduri de mașină pentru computerul „Specialist”. . Am fost atunci foarte interesat de posibilitatea de a introduce câteva litere și cifre în computer pentru a-l face să facă ceea ce îmi doream. Din păcate, situația financiară a părinților mei la acea vreme lăsa mult de dorit, iar cumpărarea oricărui aspect de computer era exclusă. Așa că m-am amuzat copiend aceste coduri din revistă într-un caiet, în speranța că cândva voi avea un computer și îl voi putea controla :)

Pentru că în acele zile computer de acasă a fost un lux (doar unii aveau Spectrums acasă, iar unii au avut norocul să aibă un IBM PC 286 scump), am învățat Basic exclusiv la școală, uneori rămânând până târziu după școală. Programul școlar s-au asigurat doar 2 ani de predare la disciplina „Informatică” (clasele a 10-a și a 11-a), dar încă din copilărie m-au interesat tot felul de electronică, așa că am început să frecventez cursurile din clasa a VIII-a, citind acolo singura carte de instrucțiuni despre „Corvette” (aceasta este cartea cu care a început călătoria mea în programare, este în PDF) și încercând să compun programe simple. Curând, profesorul a început să mă lase să intru calculatorul principal(numai că avea capacitatea de a salva programe pe o dischetă de 5,25" - și chiar și atunci, a fost nevoie de multă muncă) - și programele mele au devenit mult mai complexe. Odată am reușit chiar să implementez jocul „Poker” cu interfata grafica(s-a dovedit a fi aproximativ 2000 de linii de cod) - asta în ciuda faptului că interpretul de bază permitea afișarea pe ecran doar a simbolurilor și a primitivelor grafice.
Ca urmare, până la sfârșitul școlii ( 1996 an) Am folosit cu pricepere buclele și am avut ceva experiență în compunerea algoritmilor.

Cât despre algoritmi, acest termen încă mă face alergic. În timp ce studiam la școală, la prelegeri de informatică (am studiat destul de bine, iar noi, câștigătorii de tot felul de olimpiade, am fost trimiși la educație suplimentară matematică și informatică la o școală cu frecvență redusă la USU), am fost forțați să scriem algoritmi într-un fel de pseudocod (un amestec de rusă și Turbo Pascal). Deoarece eram vizibil în urma colegilor mei în programare (au studiat la Calculatoare compatibile cu IBM, unde era același Pascal și multe altele, iar eu, cu excepția BASIC, nu știam și nu vedeam nimic), era foarte greu să stăpânesc sintaxa limbajului algoritmic. În plus, nu am înțeles (și încă nu înțeleg) de ce este necesar să petrecem o oră compilând un algoritm pentru cel mai simplu program, dacă puteți doar să deschideți editorul și să scrieți câteva rânduri de cod (pentru mine, care în mod normal știu engleza, sintaxa limbajului BASIC era mult mai clară decât acest misterios pseudocod algoritmic). Nu se vorbește deloc despre organigrame - când îmi amintesc de institutul în care am fost forțați să desenăm diagrame de flux (pe mai multe coli A4) pentru cele mai simple programe de 10 linii, nu mai înțeleg cum dorința de a studia programarea poate rămâne până la urmă. acest.. .

După absolvirea școlii, la institut, am studiat puțin Turbo Pascal, unde pregătirea mea de programare s-a oprit timp de un deceniu (nu era computer acasă sau la serviciu), și am uitat aproape tot ce am studiat la orele de informatică.
Cu toate acestea, în 2004 an, la munca mea, sefii au decis in sfarsit sa inlocuiasca masina de scris (pe care bateam deja foarte priceput tastele) cu un computer simplu (era un Pentium-1 cu 64 de megabiti RAM si Windows 98). Având în vedere că atunci am văzut Windows pentru prima dată, a trebuit să învăț cum să folosesc un computer de la zero.

Am stăpânit rapid calculatorul, pentru că... Deja în a doua zi, Windows s-a prăbușit după o încercare nereușită de a overclock procesorul și a trebuit să învăț urgent cum să reinstalez sistemul de operare și programele. Persoana care m-a ajutat să instalez computerul în prima zi de cunoaștere a computerului sistem de operareși programe de bază, nu a fost capabil să mă ajute în mod constant. El m-a lăsat distribuții Windowsși Office, câteva discuri cu utilități diferite, după care mi-a explicat cum să introduc și să format text în Word, cum să deschid și să salvez fișiere prin meniul programului, și a plecat, urandu-mi mult succes. Nu am avut de ales decât să stăpânesc sistemul la întâmplare.

Ce binecuvântare (după mașină de scris) a fost capacitatea de a salva și edita documente tipărite... și nu m-a deranjat deloc faptul că lansarea Word a durat aproximativ 20-30 de secunde (și CorelDRAW s-a încărcat în câteva minute). Computerul a devenit hobby-ul meu principal - în câteva luni am stăpânit programele de bază, șase luni mai târziu, am căutat în registru cu putere și principal, restabilind Windows-ul prăbușit (cine își amintește că Win98 mă va înțelege), pe parcurs am stăpânit. arhitectura computerului (a trebuit constant să reconectam modulele de memorie, să conectez suplimentar hard disk-uri, și așa mai departe.)

Treaba mea era să mă pregătesc diverse documente(acte, ordine, etc.) și am început să mă gândesc cum să o simplific (nu-mi place să fac același lucru în fiecare zi). Aproape imediat am observat elementul „Visual Basic Editor” în meniul Microsoft Word, și m-am dus să văd ce fel de animal era. M-am uitat, m-am uitat la ajutorul încorporat, dar nu am înțeles mare lucru. Acest Basic nu semăna deloc cu cel pe care l-am studiat la școală. Mi-am dat seama că poți desena forme cu nasturi și câmpuri de text, - dar încă nu am înțeles cum să o fac să funcționeze. Nu exista acces la internet, așa că nu am putut să mă uit la exemple de utilizare.

Aș fi renunțat la această chestiune, dar apoi, într-o bună zi, Fișiere Word Au început să se deschidă încet, iar când s-au deschis, a început să apară un fel de eroare. Am început să mă uit și am descoperit că eroarea apare la executarea unei macrocomenzi de 20 de linii care a ajuns în mod misterios în toate documentele mele. După ce m-am uitat la cod, mi-am dat seama că acesta nu era altceva decât un virus macro care infectează toate fișierele Word care au fost deschise și încearcă fără succes să trimită niște date prin rețea. (apropo, aceasta a fost prima și ultima dată când am văzut un macrovirus - de atunci mii au trecut prin mine Fișiere Excelși Word și nu am întâlnit niciodată macrovirusuri în ele). Acest lucru m-a interesat - dacă o macrocomandă poate colecta date de pe un computer, se poate copia în alte fișiere și chiar trimite ceva la o altă adresă IP, atunci aproape orice se poate face folosind macrocomenzi!

Și am început să stăpânesc macrocomenzi - citesc ajutorul încorporat pentru VBA, am încercat exemple de cod din acest ajutor, am scris bucle simple (pe care mi-am amintit de la școală), am desenat forme simple etc. Am folosit pe deplin înregistrarea macrocomenzilor în Word, optimizând codul rezultat. (Nu lucram cu Excel la acel moment - nu prea înțelegeam de ce ar putea fi util). Acest lucru a adus puține beneficii - dar a fost interesant pentru mine, pentru că... Am fost interesat de programare încă de la școală. Treptat, munca mea a început să devină mai simplă, deși automatizarea a durat mai mult timp decât ar fi fost nevoie execuție manuală toate acțiunile.

Într-o zi, în 2006 anul, chiar aveam nevoie de abilități de programare VBA. Ca parte a muncii mele, trebuia să creez (desenez în CorelDRAW) multe planuri de evacuare similare (acestea sunt desene ale camerelor cu săgeți și pictograme specifice). A fost posibil să le desenați manual, dar pentru ca rezultatul să respecte GOST, a fost necesar să se mențină diferite proporții și distanțe între elemente. Deplasarea pictogramelor în jurul foii, ajustarea distanței de la linii și pictogramele învecinate „prin ochi”, a devenit rapid plictisitoare. Și a trebuit, de asemenea, să aliniez totul, să desenez rapid și să conectez frumos linii punctate, să fac pregătirea înainte de presare de fiecare dată etc. etc... Ca urmare, după ce am petrecut 2 sau 3 luni automatizării acestui proces, am realizat de mai multe ori o reducere a timpului de realizare a unui desen. În plus, era plăcut să mă uit la fețele colegilor mei când se întâmplau miracole în fața ochilor lor - liniile erau trasate și mutate pe ecran de la sine, săgețile aliniate și îndoite, totul fulgera, iar un minut mai târziu deja trăgeam. o dischetă de pe computer, gata pentru a fi trimisă la tipografie (cu două copii ale fișierului, complet gata pentru tipărire)

Afară era vară 2008 al anului. Nu aveam nimic mai bun de făcut, așa că am decis să ajut oamenii care au venit pe forumuri pentru sfaturi cu rezolvarea problemelor în Excel. M-am implicat rapid în asta - a fost plăcut să aud recunoștință de la oameni pentru care „butonul meu magic” a salvat multe ore de același tip de muncă. În plus, ajutorul a necesitat foarte puțin efort - uneori era suficient să scrieți 2-3 linii de cod. Atunci am început să-mi dau seama că cunoștințele mele de VBA și Excel erau încă foarte, foarte slabe și am început să învăț, înțelegând soluțiile propuse de colegii mai experimentați.

A durat 2 sau 3 ani, timp în care am ajutat pe toți cei de pe forumuri, să înceapă să se simtă încrezător în Excel. La început am scris macrocomenzi foarte simple, apoi altele mai complexe. Un an mai târziu, au început să mă contacteze cu comenzi - atunci eram gata să lucrez pentru bănuți (pentru că scopul nu era să câștig bani, ci să ajut oamenii). Prima comandă mai mult sau mai puțin serioasă pentru care am perceput o taxă a fost un program pentru ofițerii de admitere – trebuia să implementez o bază de date în Excel. În 3 săptămâni de chin și reluare (programul a fost comandat de o studentă care însăși nu știa exact de ce are nevoie), programul a fost scris - și am câștigat aproximativ 3.500 de ruble din el. De atunci nu am mai lucrat cu elevii - nu sunt suficienți bani, nu există specificații tehnice, sunt multe cereri de reluare (pentru că profesorului nu i-a plăcut ceva), și în general este neplăcut să realizezi că programul va fi lansat o singură dată, iar apoi nimeni nu o va folosi.

ÎN 2009 anul am făcut un site web. Ar putea fi numit doar un site web cu o întindere - era format dintr-o singură pagină (așa arăta la acel moment). După cum înțelegeți, nu ar putea exista niciun beneficiu de pe un astfel de site - cei care au vizitat site-ul știau deja ce fac. Dar mi-am dorit mai mult - ca site-ul să beneficieze atât de mine, cât și de vizitatori. Prin urmare, a trebuit urgent să studiez construirea site-ului web - și, datorită ajutorului unui prieten, câteva luni mai târziu site-ul a achiziționat un motor sub forma CMS Drupal (nu aș fi reușit eu să fac asta). Încă nu mi-am dat seama ce să public pe site, așa că am început să-l folosesc ca caiet- publicați macrocomenzi și funcții universale utile acolo, astfel încât să nu trebuiască să le căutați de fiecare dată fișiere diferite, amintindu-mi când și cui i-am făcut asta.

La mai puțin de șase luni mai târziu, traficul pe site a început să crească. S-a dovedit că macrocomenzile pe care le-am postat erau interesante pentru mulți, iar acest lucru mi-a dat un stimulent pentru a dezvolta în continuare resursa - am început să postez soluții gata făcute sub formă de fișiere Excel și suplimente, acordați mai multă atenție funcționalității și structurii site-ului. În același timp, numărul de comenzi a început să crească - vizitatorii site-ului au văzut că posibilitățile de macrocomenzi sunt nelimitate și s-au adresat la mine cu o solicitare de a-și automatiza munca. Dar, totuși, erau prea puține comenzi pentru a considera serios programarea ca o sursă de venit - erau 2-3 comenzi mici pe lună. Chiar dacă au comandat un program relativ complex, nu a adus bucurie - din cauza lipsei mele de experiență, am convenit imediat asupra sumei, iar apoi, din bunătatea inimii mele, am fost de acord cu diverse modificări care nu erau incluse în original. sarcina pentru program. Ca urmare a acestui fapt, am lucrat săptămâni întregi la un singur program și am câștigat foarte puțin - deoarece inițial se presupunea că era foarte puțin de făcut.

Dar acest timp (aproape un an) nu a fost irosit - nu am câștigat niciun ban, dar am câștigat o experiență neprețuită în dezvoltare interfețe cu utilizatorul(A trebuit să desenez formulare de introducere cu sute de câmpuri), rezolvând sarcini non-standard Excel (procesarea site-ului web, lucrul cu fișiere, imagini etc.), în același timp învățând să înțeleg perfect clienții și sarcinile lor (aa, ar trebui am văzut cum unii oameni formulează sarcini pentru programe complexeîntr-o propoziție de 10 cuvinte...). Încă nu devenisem telepat, dar am început să ghicesc ce își dorește cu adevărat clientul și le-am oferit oamenilor exact ceea ce au nevoie (majoritatea oamenilor înșiși nu știu ce vor atunci când cer ajutor). Și totul ar fi fost bine, dacă nu pentru lipsa comenzilor (până atunci, ajutarea oamenilor de pe forum devenise plictisitoare - aceleași întrebări în fiecare zi, nimeni nu dorea să folosească căutarea și chiar și studenții erau freeloaders).

Și am început să mă gândesc cum să măresc numărul de comenzi - am vrut ca hobby-ul meu să înceapă în sfârșit să genereze venituri tangibile. Din nou a trebuit să intru în construirea site-ului - stăpânesc Bazele SEO, design și crearea de site-uri web în general. Și într-o zi mi-am dat seama ce mai lipsea de pe site - buton mare a plasa o comanda. Fără să te gândești de două ori, în 5 minute acest buton (pe care îl poți vedea acum în stânga colțul de sus pagini) a fost adăugat la toate paginile site-ului. Rezultatul nu a întârziat să apară - într-o lună am primit mai multe comenzi decât în ​​întregul an precedent.

A sosit 2012 an. Numărul de comenzi a crescut până la un volum atât de mare încât nu aveam cum să mă ocup singur de ele. Am început să transfer unele dintre comenzi colegilor mei (în special comenzi mari și complexe), pentru că încă nu pot câștiga toți banii și nici nu vreau să stau la monitor zile în șir. În același timp, la locul meu de muncă principal (între 8:00 și 17:00 am lucrat ca inginer la un furnizor local de internet), volumul de muncă a crescut considerabil și nu am mai avut timp să scriu macrocomenzi în timp de lucru. Ca urmare, nu a mai rămas timp pentru dezvoltarea site-ului - seara am avut timp doar să rezolv unele dintre comenzi, iar scrisorile necitite au început să se acumuleze prin poștă.

Era timpul să schimb ceva în viața mea - să fac o alegere între muncă și programare. Și așa, la mijlocul lui iulie 2012, am făcut această alegere - am scris o scrisoare de demisie de la locul meu principal de muncă, hotărând să mă dedic programării (dezvoltarea macrocomenzilor pentru Excel). De atunci, am timp liber mai mult decât suficient, așa că plănuiesc să reîncep extinderea site-ului și să lucrez mai activ la comenzi (pentru a elimina situațiile în care clienții au așteptat câteva săptămâni macrocomenzile).
Nu știu încă ce va urma din toate acestea, timpul va spune. Cred că cererea de macrocomenzi pentru Excel va continua cel puțin încă 2-3 ani, așa că nu voi rămâne fără pâine și unt.

De asemenea, în planurile pentru viitorul apropiat se află și dezvoltarea și publicarea programelor de completare shareware pentru Excel (primele încercări în acest domeniu au dat rezultate bune).
Și apoi plănuiesc să încep să dezvolt baze de date (cu o interfață web) și să trec treptat la lucrul cu servicii web.

<спустя 4 года, решил продолжить статью>

Și acum este deja în curte 2016 an. Spre bucuria mea, Microsoft nu a renunțat încă la suportul pentru VBA în Excel, așa că continui să lucrez în acest domeniu. Acești 4 ani mi-au schimbat foarte mult viața – veniturile mi-au crescut de mai multe ori, am început să călătoresc mult și am avut mai puțin timp la muncă. Numărul de comenzi pentru macrouri era în continuă creștere, așa că am început să colaborez cu mai mulți programatori, cărora le-am transferat comenzi atunci când nu mă puteam descurca din lipsă de timp. Unii dintre colegii mei ( cărora le-am dat ordine de lucru) au dispărut în timp, în timp ce alții, dimpotrivă, au colaborat cu mine din ce în ce mai activ – iar acum am o echipă care rezolvă orice probleme (un coleg ia macrocomenzi simple și face le repede, altul face macrocomenzi complexe folosind soluții nestandardizate, a treia se ocupă de comenzile de volum „întunecate”, în care trebuie să discutați despre sarcină timp de câteva săptămâni, apoi să o faceți pentru încă o lună, a patra este specializată în formule, a cincea setează analizoare etc. - fiecare are propriile sale domeniul propriu de activitate).

Ridica echipa buna nu a fost o sarcină ușoară - deși eu însumi nu prea căutam pe nimeni (jumătate dintre ei au apelat la mine pentru muncă, celorlalți le-am scris chiar eu, pentru că știam de la toată lumea de pe forumurile Excel că sunt buni specialiști), am nu a putut lucra cu toată lumea perioadă lungă de timp. Unii apăreau rar online și nu răspundeau suficient de repede la comenzi, alții percepeau munca mai mult ca pe un hobby (dacă dintr-o dată nu mai era dorința de a lucra, o astfel de persoană putea dispărea timp de o săptămână, sau chiar o lună, fără să mă avertizeze nici pe mine, nici pe cel client). O persoană chiar a reușit să mă înșele din bani (a luat mai multe comenzi și a dispărut fără să-mi plătească comisionul). Dar toate acestea sunt în trecut - acum am doar băieți de încredere (cu care lucrez de câțiva ani) care preiau comenzi de orice complexitate și termină întotdeauna munca.

De când am reușit să scap de „rutină” ( o cantitate mare comenzi mici, deși aduc un venit bun, dar ocupă 100% din timpul meu), am început să acord mai multă atenție dezvoltării și promovării suplimentelor universale pentru Excel. Acum am 9 astfel de suplimente în arsenalul meu, dar doar 5 sunt vândute cu succes: FillDocuments (prima mea lucrare, până de curând, a fost printre liderii în venituri și are o cerere stabilă, deoarece tot ce ar putea fi util pentru utilizatori pentru a completa documente a fost deja implementat acolo), PastePictures (vândut din 2012, dar a început să câștige popularitate relativ recent), Unificare (acum 3 ani acesta a fost cel mai complex dintre programele mele), Lookup (cel mai simplu dintre suplimentele mele) , în esență un înlocuitor formule VLOOKUP, - dar foarte popular printre utilizatori) și Parser (un parser universal pentru colectarea datelor de pe site-uri și fișiere, cel mai sofisticat dintre programele mele de până acum - 17.600 de linii de cod). În ceea ce privește analizatorul, în 2013 ideea de a face așa ceva mi se părea absolut nerealist (și am refuzat clienții, spunând că este imposibil de făcut solutie universala pentru site-uri precum Unification - programe de procesare a prețurilor), dar apoi numărul de comenzi pentru analizoare de site a început să crească și am decis să încerc, ceea ce nu am regretat niciodată - veniturile din soluțiile bazate pe acest add-on mi-au depășit toate așteptările .

Dar nu toate programele au avut succes. Am refuzat complet să vând un program (YandexMarket) - site-ul s-a schimbat prea des, programul necesita îmbunătățiri, algoritmul pentru găsirea datelor necesare nu era evident, apoi a apărut un captcha - și am decis că nu merită să pierzi timpul dezvoltare ulterioară program, returnând bani mai multor clienți. Alte programe, precum BarcodeScanner, Labels, SearchText, deși au recuperat timpul petrecut cu dezvoltarea și continuă să genereze venituri, dar nu pot fi comparate cu cele cinci programe de vârf.

Pe măsură ce s-au dezvoltat suplimentele universale descrise mai sus, s-a format așa-numitul „motor” al programului - un set de macrocomenzi și elemente de interfață care vă permite să creați rapid o soluție gata de vânzare din orice idee. Motorul a fost inițial necesar pentru a susține actualizări (pentru ca utilizatorul să poată verifica și instala o actualizare cu un singur clic), ulterior a câștigat funcționalitate de securitate (hackerii au început să acorde atenție soluțiilor mele, deoarece cererea pentru ele creștea în fiecare an - și eu trebuia să inventeze diverse scheme protecție împotriva utilizării ilegale, în ciuda faptului că protecția codului încorporat în Excel nu este bună, deoarece poate fi eliminată în câteva secunde). Pe parcurs, a trebuit să creez funcționalități pentru activarea și actualizarea programelor din partea site-ului; am început să înțeleg puțin despre PHP și MySQL, realizând scripturi care interacționează cu motorul programului.

În ultimii câțiva ani, cea mai mare parte a timpului meu a fost petrecut cu furnizarea de asistență tehnică (în fiecare an sunt din ce în ce mai mulți cumpărători de programe) și pe dezvoltarea suplimentului de analiză, ca fiind cea mai populară și promițătoare dintre soluțiile mele ( adaug noua functionalitate, public exemple de parsere configurate). Nivelul meu de programare, datorită parserului și noului motor de program, a crescut considerabil - chiar dacă codul meu de acum 5 ani era de o calitate destul de înaltă și funcționa fără erori, dar acum adopt o abordare mai responsabilă în proiectarea codului , confruntat cu nevoia de mulți ani de a-mi sprijini suplimentele cu multe mii de linii de cod. Acum, odată cu introducerea unui nou motor (multilingv) în toate suplimentele, refactorizez (actualizez) codul, făcându-l mai simplu, ușor de înțeles și universal. Apropo, despre multilingvism, am decis să-mi vând suplimentele în afara CSI și chiar am făcut un site separat (să postez acolo doar suplimente universale, cu o interfață și descriere pe limbi diferite), dar încă îmi este prea lene să fac asta. Poate într-o zi se vor rezolva (dar deocamdată sunt destui cumpărători din CSI)

Planurile mele pentru viitor (din septembrie 2016) sunt să dezvolt zona de analiză a site-urilor web în Excel și, în sfârșit, să fac instrucțiuni video pentru programele mele (nu sunt prea leneș să adaug noi funcționalități la program pentru câteva săptămâni la rând, în timp ce utilizatorii și Ei nu își pot da seama ce au, din cauza lipsei unui certificat cu drepturi depline. Ei bine, nu-mi place să înregistrez videoclipuri))
Ei bine, este timpul să intru pe piața internațională, deoarece toate programele mele au devenit multilingve (deși traducerea este doar în engleză deocamdată și doar parțial)

<продолжение следует>

Pentru a simplifica colectarea de informații, a automatiza intrarea și ieșirea datelor și multe altele, se utilizează programarea în Excel.

Video despre scrierea (programarea) macrocomenzilor în VBA în Excel

VBA (Visual Basic for Applications) este un tip de limbaj de programare Visual Basic inclus în pachetul Microsoft Excel

Programarea în excel accelerează execuția diverselor sarcini pe computer.

Când scrie coduri în excel, programatorul folosește:

  • Există două moduri principale de a scrie cod: scrie în interiorul unei foi; în interiorul cărții. Orice program în mediu de lucru excel începe cu cuvânt cheie„SUB”, urmat de orice nume folosind litere sau cifre, după care deschidem și închidem parantezele () și apăsăm „ENTER”, se creează un mediu de lucru pentru scrierea unui program. În mediul de lucru, tastați Application, specificați ThisWorkBooks - this book, apoi Sheet - sheets, apoi Cells (5,1) - cell number, scrieți mai întâi rândul, apoi coloana. Programarea va arăta astfel: Application - ThisWorkBooks - Sheets - Cells (5,1). Atribuim acestei adrese valoarea 10 prin operatorul de atribuire a tastei „=” și lansăm programul pentru execuție apăsând butonul „RunSub” sau apăsând tasta „F5”. Valoarea atribuită 10 va apărea în locația specificată.

Când lucrați cu acest obiect în Excel, este utilizat „mediul de dezvoltare”. „Mediul de dezvoltare” este apelat apăsând Ctrl+F11, după care trebuie să selectați fila „Vizualizare”, apoi „Browser de proiect”, care va afișa trei elemente, două foi ale registrului de lucru și registrul de lucru Excel în sine.

DOM - Document model de obiect (model de obiect document) - independent interfata software, permițând scripturilor și programelor să găsească acces la conținut, XHTML și documente HTMLși să modifice designul și structura acestor documente. DOM nu limitează structura documentului, ci îl reprezintă ca un arbore de noduri, oricare dintre acestea fiind un element, atribut, obiect grafic sau text.

  • „Lucrul cu variabile” sunt cuvinte sau litere care conțin un anumit sens, de exemplu: X=5, Y=10, puteți efectua orice operații matematice cu ele. Să spunem, pentru a găsi suma acestor valori folosind programare, în mediul de lucru în care intrăm programul următor: Cells(2,1) = X+Y apăsați „RunSub” sau „F5” în linia 2, coloana 1 va afișa 15 - suma valorilor programabile. Pe lângă numere, valorile pot conține cuvinte, singura diferență este că cuvintele programabile trebuie plasate între ghilimele.

Programarea este ușor de învățat și poate fi folosită utilizatorii obișnuiți. Dezvoltarea macrocomenzilor în VBA automatizează fluxul de lucru și crește productivitatea acestuia.

Referință de funcție Foaie Excel este o referință pentru funcțiile din foaia de lucru Excel în format Ajutor Windows.chm. Fișierul conține o listă completă a funcțiilor foii Excel în rusă și engleză și este furnizat cu exemple de utilizare și aplicare a funcțiilor. Directorul poate fi necesar atât pentru utilizatorii începători, cât și pentru cei mai experimentați.

Tipul fisierului:.chm

Referință pentru funcțiile din foaia de lucru Excel(532,2 KiB, 15.462 descărcări)

Programarea VBA în MSOffice este un tutorial foarte bun pentru începători să programeze în VBA. Cartea este scrisă de un profesor certificat Microsoft Office într-un limbaj ușor de înțeles și are liste clare de coduri. Manualul vă va ajuta să stăpâniți programarea nu numai în Microsoft Excel, dar de asemenea Microsoft Wordși Microsoft Project.

Tipul fisierului:.pdf

Programare VBA în MSOffice(4,1 MiB, 26.659 descărcări)
Nu aveți permisiunea de a descărca acest fișier. Poate că nu sunteți înregistrat pe site. Înregistrați-vă și încercați să descărcați din nou.

Walkenbach J. Programare profesională în VBA Excel 2003 - poate cel mai popular manual pentru începători. Mulți oameni au început cu el. Adevărat, în versiunea tipărită acest manual Sunt folosite liste de coduri, care nu trebuie întotdeauna luate cu credință - foarte des există greșeli de scriere și se găsesc simboluri rusești în locul celor englezești. Prin urmare, personal aș sfătui să nu copiați codurile direct din carte, ci să le rescrieți manual în editorul VBA. În acest fel, vă veți aminti mai bine și vă veți scuti de căutarea erorilor.

Tipul fisierului:.pdf

Office 2007. Tutorial - Dacă decideți să aruncați o privire mai atentă asupra interfeței și caracteristicilor principale aplicații Microsoft Office, recomand să-l citiți această carte. Descrie tot ce aveți nevoie pentru a lucra cu succes în aplicații precum: Excel, Word, Outlook, Power Point, Access. După ce ați citit, veți putea crea prezentări frumoase și grafice informative, veți putea afla cum să creați sarcini în Outlook și baze de date în Access.

Tipul fisierului:.pdf

Ajutor rusesc Visual Basic pentru aplicații (VBA) - Acesta este ajutorul oficial Visual Basic pentru aplicații (VBA) care a fost inclus în Pachetul Microsoft Biroul 97. Pe atunci certificatul era încă rusificat. Nu este un secret pentru nimeni că acum, în toate versiunile de Office, ajutorul VBA este disponibil doar la Limba engleză, indiferent de localizare. Dar nu toată lumea poate citi burgheză (chiar acceptabil, după cum arată practica).
Vreau să te avertizez imediat - pentru că... ajutorul este destinat destul de versiune veche, nu toate metodele și proprietățile sunt descrise în acesta. Dar cea mai mare parte dintre ele sunt încă descrise și, sper, acest certificat te va ajuta cu studiu inițial VBA.

Tipul fisierului:.fișier de ajutor

RUS_VBA.zip(1,1 MiB, 9.164 descărcări)
Nu aveți permisiunea de a descărca acest fișier. Poate că nu sunteți înregistrat pe site. Înregistrați-vă și încercați să descărcați din nou.

Obiecte Shell_RegExp etc. - o întreagă colecție de exemple de lucru cu obiecte precum: Shell, RegExp, FileSystemObject, WshShell, Dictionary, WshNetwork, WScript, constante și funcții WScript. Toate exemplele sunt structurate în secțiuni și sunt furnizate ca referință pentru proprietățile și metodele fiecărui obiect. Este foarte convenabil dacă nu folosești aceste obiecte foarte des în munca ta și ai uitat ceva.

A scrie program de calculatorÎn primul rând, trebuie să cunoașteți un limbaj de programare. În al doilea rând, trebuie să fi instalat pe computer program special, care va compila codul pe care îl scrieți. În al treilea rând, va trebui să dezvolți și să notezi pe hârtie algoritmul programului tău, astfel încât să existe întotdeauna un obiectiv clar în fața ochilor tăi cu privire la ceea ce vom face (cel puțin, asta fac întotdeauna când scriu mai complex). programe).

Limbaj de programare Orice va face, dar când lucrezi în Excel și scrii programe pentru acesta, recomand să folosești Visual Basic for Application (VBA), deoarece Excel are deja încorporat un editor special pentru crearea de programe în Excel.

Cred că tu și cu mine putem stăpâni cu ușurință limbajul de programare, am reușit și o poți face și tu. Crede-mă, programarea în Excel este mult mai ușoară decât în ​​unele C++ sau Java. Pentru că este creat pentru toată lumea, indiferent dacă ești inginer sau contabil, VBA a fost creat pentru persoanele care folosesc Excel. Și dacă ai stăpânit Excel, atunci următorul pas logic este să stăpânești VBA.

Vă voi arăta cu un exemplu cum este creat un program în VBA.

Nu inventăm niciun algoritm; în schimb, vom scrie următoarea frază „„Codul nostru”.

1. Lansați Excel.

2. Executați comanda blitz (ține apăsate două taste) „Alt” și „F11”.

3. Creați un șablon și salvați-l.

4. Apoi notăm trei rânduri, iar rândul care începe cu un apostrof este un comentariu. Cuvântul „Sub” indică începutul programului, „program()” este numele programului, care poate fi schimbat, de exemplu, în „Macro()”.

Expresia „End Sub” indică faptul că programul se termină aici. În loc de linia „„Codul nostru”, puteți scrie algoritmul nostru în viitor.

Programarea în Excel nu este atât de dificilă pe cât ar părea, trebuie să aveți un algoritm clar, de preferință notat pe hârtie, pe care vom învăța în curând cum să îl dezvoltăm și câteva elemente de bază VBA (introducerea și ieșirea datelor în program, condiții și bucle), acest lucru va fi suficient pentru a începe.



Vezi și în această secțiune.