Limbajul de programare VBA pentru începători. Cărți pentru a învăța Excel și VBA


Carte: Utilizarea macrocomenzilor în Excel.

Pagini: 507

Format: DJVU
Mărimea: 8,02 Mb

În ciuda funcționalității puternice oferite de interfața cu utilizatorul Excel, există o serie de sarcini care pot fi efectuate doar programatic. Cartea „Utilizarea macro-urilor în Excel” este o introducere în programarea Excel VBA, care conține exemple de rezolvare a diferitelor probleme practice care apar atunci când lucrați în Excel.Materialul cărții este destinat utilizatorilor Excel, precum și programatorilor care nu sunt familiarizați cu modelul obiect Excel. Împreună cu secțiunile despre dezvoltarea macrocomenzilor pentru Excel 2002, oferă un curs introductiv despre scrierea macrocomenzilor și a programelor în mediul Excel.

Carte: Curs intensiv de programare Excel în weekend

Editor: Dialectică
Pagini: 421
Format: DJVU
Mărimea: 12,6 MB
Calitate: Normal
Limba: Rusă
Gen: programare
Anul publicării: 2004
ISBN: 5-8459-0687-3

Capacitățile Microsoft Excel nu se limitează la lucrul cu tabele de date. În spatele instrumentelor de procesare a foilor de calcul se află un limbaj de programare puternic - VBA (Visual Basic for Applications). Cu toate acestea, aproape orice utilizator are posibilitatea de a învăța cum să scrie programe în VBA pentru a rezolva cele mai diverse probleme în Excel - de la execuția mecanică a calculelor până la crearea unui sistem de introducere a datelor cu propriile formulare de ecran și cu posibilitatea de a revizui corectitudinea a valorilor introduse.

Carte: Programare în VBA 2002

Calitate: Normal
Limba: Rusă
Gen: programare

Cartea conține un curs de programare în Visual Basic for Applications (VBA), care este limbajul de bază în aplicațiile Microsoft Office (Word, Excel, Access, PowerPoint, FrontPage, Visio etc.). Cartea este destinată începătorilor să programeze în mediul Windows folosind obiecte Word, Excel și PowerPoint.O parte a cărții este dedicată dezvoltării de aplicații Office care utilizează baze de date stocate atât în ​​fișiere separate, cât și pe servere la distanță.Cartea conține suficient material pentru a învăța elementele de bază ale limbajului Visual Basic și pentru a crea macrocomenzi simple care ajută la automatizarea lucrărilor de rutină și repetitive cu documente, foi de calcul, diagrame, prezentări etc., precum și pentru a dezvolta aplicații destul de complexe de procesare a bazelor de date folosind casete de dialog care oferă utilizatorului cele mai moderne instrumente de interfață.Majoritatea exemplelor din carte sunt dedicate problemelor actuale ale activității comerciale, astfel că cartea va fi foarte utilă managerilor de la diferite niveluri, cărora se pare că sunt destinate atât Microsoft Office, cât și limbajul de programare VBA încorporat.
Anexele de la sfârșitul cărții pot servi ca referință utilă pentru lucrul atât cu VBA, cât și cu VB obișnuit.

Carte: Programare profesională în VBA în Excel 2003
John Walkenbach
Editor: Williams
Format: PDF
Mărimea: 11 MB
Calitate: Excelent
Limba: Rusă
Anul publicării: 2005
ISBN: 5-8459-0771-3
Cartea vine cu un disc

Multe cărți au fost scrise pe Excel. Dar ceea ce face această carte specială este că plasează dezvoltarea aplicațiilor pentru foi de calcul într-un context mai larg. VBA este doar o componentă a mediului de dezvoltare a aplicațiilor personalizate, deși una semnificativă. Această carte vă va ajuta să înțelegeți complexitatea dezvoltării aplicațiilor folosind VBA. Acesta descrie numeroasele caracteristici ale limbajului VBA, capacitățile sale și mediul de utilizare. În primul rând, vi se va oferi o privire de ansamblu asupra capacităților programului, apoi veți trece la definirea conceptelor de programare VBA și apoi vă veți familiariza cu limba în sine. Dacă sunteți un programator VBA începător, atunci în această publicație veți găsi toate informațiile necesare de care veți avea nevoie pentru a lucra în continuare. Dacă aveți deja o experiență de invidiat în lucrul cu VBA, atunci această carte vă va îmbogăți și crește cunoștințele, adăugând noi tehnici și exemple din viața reală.

Versiune PDF editată și oferită cu amabilitate de către participant.

Carte: :
John Walkenbach
Editor: Wiley
Format: PDF
Pagini: 1308
Mărimea: 11,9 MB
Calitate: Excelent
Limba: Engleză
Anul publicării: 2010
Această carte se concentrează pe Visual Basic pentru aplicații (VBA), limbajul de programare încorporat în Excel (și pe alte aplicații care alcătuiesc Microsoft Office). Mai precis, vă va arăta cum să scrieți programe care automatizează diverse sarcini în Excel. Această carte acoperă totul, de la înregistrarea macrocomenzi simple până la crearea de aplicații și utilități sofisticate orientate către utilizator. Această carte nu acoperă Microsoft Visual Studio Tools for Office (VSTO). VSTO este o tehnologie relativ nouă care utilizează Visual Basic .NET și Microsoft Visual C#. VSTO poate fi folosit și pentru a controla Excel și alte aplicații Microsoft Office.
Aceasta nu este o carte pentru utilizatorii începători de Excel. Dacă nu aveți experiență cu Excel, o alegere mai bună ar putea fi Biblia Excel 2010, care oferă o acoperire cuprinzătoare a tuturor caracteristicilor Excel. Această carte este destinată utilizatorilor de toate nivelurile.

Carte: : Programare profesională în VBA în Excel 2010
John Walkenbach
Editor: Dialectică
Format: PDF
Pagini:920
Mărimea: 22,1 MB
Calitate: Excelent
Limba: Rusă
Anul publicării: 2010 Subiectul acestei cărți este limbajul de programare Visual Basic pentru aplicații (VBA), care este încorporat în Excel, precum și în alte aplicații incluse în Microsoft Office. Descrie în detaliu crearea de programe care automatizează execuția diferitelor sarcini în Excel și, de asemenea, acoperă o gamă largă de alte subiecte - de la scrierea de macrocomenzi simple până la crearea de aplicații și utilități complexe concepute pentru interacțiunea cu utilizatorul. Această carte nu descrie pachetul software Microsoft Visual Studio Tools for Office (VSTO). Este o întruchipare a unei tehnologii relativ noi care utilizează Visual Basic .NET și Microsoft Visual C#. Tehnologia VSTO poate fi folosită și pentru a controla comportamentul Excel și al altor aplicații Microsoft Office.

Această carte nu este destinată utilizatorilor începători de Excel. Dacă nu aveți experiență cu această aplicație, atunci citiți mai întâi cartea Excel 2010. Biblia utilizatorului, care explică în detaliu toate capabilitățile Excel (se adresează utilizatorilor de toate nivelurile).


Carte:Tutorial VBA
Garnaev A.
Editor: bhv
Pagini: 512
Format: html cu imagini în rar
ISBN: 5-8206-0067-3
Mărimea: 2,22 MB

Excelent

Limba: Engleză
Anul publicării: 2009

Microsoft Excel este mult mai mult decât o simplă foaie de calcul. Odată cu introducerea Editorului Visual Basic în Excel 97, urmată de stabilitatea îmbunătățită semnificativ a Excel 2000, Excel a devenit o platformă de dezvoltare respectată în sine. Aplicațiile Excel se găsesc acum alături de cele bazate pe C++, Java și platforma de dezvoltare .NET, ca parte a suită de bază de aplicații corporative esențiale.
Din păcate, Excel este încă considerat prea des ca o platformă de hobby, că oamenii dezvoltă aplicații Excel doar în timpul liber pentru a automatiza sarcini minore. O scurtă privire asupra multor cărți Excel VBA pare să confirme această opinie. Aceste cărți se concentrează pe elementele de bază ale automatizării sarcinilor Excel folosind VBA. Această carte este prima de acest gen care oferă o explicație detaliată a modului de utilizare a Excel ca platformă pentru dezvoltarea aplicațiilor profesionale de calitate.
În timp ce majoritatea celorlalte platforme de dezvoltare majore par să aibă un text standard de facto care explică cele mai bune practici acceptate de comun acord pentru arhitectura, proiectarea și dezvoltarea aplicațiilor folosind această platformă, până acum Excel nu a avut. Această carte încearcă să umple acest gol. Autorii sunt dezvoltatori profesioniști de Excel care creează aplicații bazate pe Excel pentru clienți, de la persoane fizice până la cele mai mari corporații multinaționale. Această carte explică abordările pe care le folosim atunci când proiectăm, dezvoltăm, distribuim și susținem aplicațiile pe care le scriem pentru clienții noștri.
Această carte a fost oferită de un utilizator

Puțini oameni știu că prima versiune a popularului produs Microsoft Excel a apărut în 1985. De atunci, a trecut prin mai multe modificări și este solicitat de milioane de utilizatori din întreaga lume. În același timp, mulți oameni lucrează doar cu o mică parte din capacitățile acestui procesor de foi de calcul și nici măcar nu realizează cum abilitatea de a programa în Excel le-ar putea face viața mai ușoară.

Ce este VBA

Programarea în Excel se realizează folosind limbajul de programare Visual Basic for Application, care a fost integrat inițial în cel mai faimos procesor de foi de calcul de la Microsoft.

Experții atribuie avantajele sale relative ușurința de a învăța. După cum arată practica, chiar și utilizatorii care nu au abilități profesionale de programare pot stăpâni elementele de bază ale VBA. Caracteristicile VBA includ execuția de scripturi într-un mediu de aplicații de birou.

Dezavantajul programului este problemele asociate cu compatibilitatea diferitelor versiuni. Acestea apar deoarece codul programului VBA accesează funcționalitatea care este prezentă în noua versiune a produsului, dar nu și în versiunea veche. De asemenea, dezavantajele includ deschiderea excesiv de mare a codului pentru modificări de către un străin. Cu toate acestea, Microsoft Office, precum și IBM Lotus Symphony permit utilizatorului să cripteze codul inițial și să seteze o parolă pentru a-l vizualiza.

Obiecte, colecții, proprietăți și metode

Acestea sunt conceptele care trebuie să fie înțelese de cei care urmează să lucreze în mediul VBA. În primul rând, trebuie să înțelegeți ce este un obiect. În Excel, aceste funcții sunt foaie, registru de lucru, celulă și interval. Aceste obiecte au o ierarhie specială, adică. se supune unul altuia.

Principala este Aplicația, care corespunde programului Excel în sine. Apoi vin caietele de lucru, foile de lucru și intervalul. De exemplu, pentru a accesa celula A1 dintr-o anumită foaie de lucru, trebuie să specificați o cale care ia în considerare ierarhia.

În ceea ce privește conceptul de „colecție”, acesta este un grup de obiecte din aceeași clasă, care în intrare are forma ChartObjects. Elementele sale individuale sunt, de asemenea, obiecte.

Următorul concept este proprietățile. Sunt o caracteristică necesară a oricărui obiect. De exemplu, pentru Interval este Valoare sau Formula.

Metodele sunt comenzi care indică ceea ce trebuie făcut. Când scrieți cod în VBA, acestea trebuie separate de obiect printr-un punct. De exemplu, așa cum se va arăta mai târziu, foarte des atunci când programați în Excel, este folosită comanda Cells(1,1).Select. Înseamnă că trebuie să selectați o celulă cu coordonate

Selection.ClearContents este adesea folosit împreună cu acesta. Executarea acestui lucru înseamnă ștergerea conținutului celulei selectate.

Cum să înceapă

Apoi trebuie să accesați aplicația VB, pentru care trebuie doar să utilizați combinația de taste „Alt” și „F11”. Mai departe:

  • în bara de meniu situată în partea de sus a ferestrei, faceți clic pe pictograma de lângă pictograma Excel;
  • selectați comanda Mudule;
  • salvați făcând clic pe pictograma cu imaginea;
  • ei scriu, să zicem, o schiță de cod.

Arata cam asa:

Subprogram()

„Codul nostru

Vă rugăm să rețineți că linia „Codul nostru” va fi evidențiată într-o culoare diferită (verde). Motivul este apostroful plasat la începutul rândului, ceea ce indică faptul că urmează un comentariu.

Acum puteți scrie orice cod și puteți crea un instrument nou pentru dvs. în VBA Excel (vezi exemple de programe de mai jos). Desigur, va fi mult mai ușor pentru cei care sunt familiarizați cu elementele de bază ale Visual Basic. Cu toate acestea, chiar și cei care nu le au se pot obișnui suficient de repede dacă doresc.

Macro-uri în Excel

Acest nume ascunde programele scrise în Visual Basic for Application. Astfel, programarea în Excel înseamnă crearea de macro-uri cu codul necesar. Datorită acestei caracteristici, procesorul de foi de calcul Microsoft se dezvoltă singur, adaptându-se la cerințele unui anumit utilizator. După ce v-ați dat seama cum să creați module pentru scrierea macrocomenzilor, puteți începe să vă uitați la exemple specifice de programe Excel VBA. Cel mai bine este să începeți cu cele mai simple coduri.

Exemplul 1

Sarcină: scrieți un program care va copia valoarea conținutului unei celule și apoi îl va scrie în alta.

Pentru aceasta:

  • deschide fila „Vizualizare”;
  • accesați pictograma „Macro-uri”;
  • faceți clic pe „Înregistrați macrocomandă”;
  • completați formularul care se deschide.

Pentru simplitate, lăsați „Macro1” în câmpul „Nume macro” și introduceți, de exemplu, hh în câmpul „Comandă rapidă de la tastatură” (aceasta înseamnă că puteți lansa programul cu comanda rapidă „Ctrl+h”). Apasa Enter.

Acum că înregistrarea macro a început deja, conținutul unei celule este copiat în alta. Reveniți la pictograma originală. Faceți clic pe „Înregistrați macrocomandă”. Această acțiune înseamnă sfârșitul programului.

  • reveniți la linia „Macro-uri”;
  • selectați „Macro 1” din listă;
  • faceți clic pe „Run” (aceeași acțiune este lansată prin pornirea combinației de taste „Ctrl+hh”).

Ca urmare, are loc acțiunea care a fost efectuată în timpul înregistrării macrocomenzii.

Este logic să vedem cum arată codul. Pentru a face acest lucru, reveniți la linia „Macro-uri” și faceți clic pe „Schimbare” sau „Autentificare”. Drept urmare, ei se regăsesc în mediul VBA. De fapt, codul macro în sine este situat între liniile Sub Macro1() și End Sub.

Dacă s-a făcut copierea, de exemplu, din celula A1 în celula C1, atunci una dintre liniile de cod va arăta ca Interval(„C1”). Selectați. Tradus, arată ca „Range(“C1”). Selectați”, cu alte cuvinte, merge la VBA Excel, la celula C1.

Partea activă a codului este completată de comanda ActiveSheet.Paste. Înseamnă scrierea conținutului celulei selectate (în acest caz A1) în celula selectată C1.

Exemplul 2

Buclele VBA vă ajută să creați diverse macrocomenzi în Excel.

Buclele VBA vă ajută să creați diverse macrocomenzi. Să presupunem că avem o funcție y=x + x 2 + 3x 3 - cos(x). Trebuie să creați o macrocomandă pentru a obține graficul acesteia. Acest lucru se poate face numai folosind bucle VBA.

Valorile inițiale și finale ale argumentului funcției sunt x1=0 și x2=10. În plus, trebuie să introduceți o constantă - valoarea pentru pasul de schimbare a argumentului și valoarea inițială pentru contor.

Toate exemplele de macrocomandă Excel VBA sunt create folosind aceeași procedură ca cea prezentată mai sus. În acest caz particular, codul arată astfel:

Subprogram()

pas = 0,1

Faceți în timp ce x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Celule(i, 1).Valoare = x1 (valoarea x1 este scrisă în celula cu coordonatele (i,1))

Cells(i, 2).Value = y (valoarea y este scrisă în celula cu coordonatele (i,2))

i = i + 1 (contorul este în vigoare);

x1 = x1 + shag (argumentul se schimbă cu valoarea pasului);

End Sub.

Ca urmare a rulării acestei macrocomenzi în Excel, obținem două coloane, prima dintre care conține valorile pentru x, iar a doua pentru y.

Apoi se construiește un grafic din ele într-un mod standard pentru Excel.

Exemplul 3

Pentru a implementa bucle în VBA Excel 2010, ca și în alte versiuni, împreună cu construcția Do While deja dată, se folosește For.

Luați în considerare un program care va crea o coloană. În fiecare dintre celulele sale se vor scrie pătratele numărului de rând corespunzător. Utilizarea constructului For vă va permite să o scrieți foarte scurt, fără a utiliza un contor.

Mai întâi trebuie să creați o macrocomandă așa cum este descris mai sus. Apoi scriem codul în sine. Presupunem că suntem interesați de valorile pentru 10 celule. Codul arată așa.

Pentru i = 1 până la 10 În continuare

Comanda este tradusă în limbajul „uman” prin „Repetați de la 1 la 10 în pași de unu”.

Dacă sarcina este de a obține o coloană cu pătrate, de exemplu, a tuturor numerelor impare din intervalul de la 1 la 11, atunci scriem:

Pentru i = 1 până la 10 pasul 1 În continuare.

Aici pasul este un pas. În acest caz, este egal cu doi. În mod implicit, absența acestui cuvânt în ciclu înseamnă că pasul este unic.

Rezultatele obţinute trebuie salvate în celule numerotate (i,1). Apoi, de fiecare dată când bucla este pornită, cu i crescând cu o dimensiune de pas, numărul rândului va crește automat. În acest fel codul va fi optimizat.

În general, codul va arăta astfel:

Subprogram()

Pentru i = 1 la 10 Pasul 1 (puteți scrie pur și simplu Pentru i = 1 la 10)

Celule(i, 1).Valoare = i ^ 2 (adică valoarea pătratului i este scrisă în celula (i,1)

Următorul (într-un fel joacă rolul unui contor și înseamnă un alt început al buclei)

End Sub.

Dacă totul este făcut corect, inclusiv înregistrarea și rularea macro-ului (a se vedea instrucțiunile de mai sus), atunci când o apelați, de fiecare dată veți obține o coloană de dimensiunea specificată (în acest caz, constând din 10 celule).

Exemplul 4

În viața de zi cu zi, este adesea nevoie să luați una sau alta decizie în funcție de o anumită condiție. Nu te poți descurca fără ele în VBA Excel. Exemple de programe în care cursul ulterioar de execuție al algoritmului este ales și nu este predeterminat inițial, cel mai adesea folosesc construcția If ...Then (pentru cazuri complexe) If ...Then ...END If.

Să luăm în considerare un caz concret. Să presupunem că trebuie să creați o macrocomandă pentru Excel, astfel încât următoarele să fie scrise în celula cu coordonatele (1,1):

1 dacă argumentul este pozitiv;

0 dacă argumentul este nul;

-1 dacă argumentul este negativ.

Crearea unei astfel de macrocomenzi pentru Excel începe în mod standard, prin utilizarea tastelor rapide Alt și F11. În continuare se scrie următorul cod:

Subprogram()

x= Celule(1, 1).Valoare (această comandă atribuie x valoarea conținutului celulei la coordonatele (1, 1))

Dacă x>0, atunci Cells(1, 1).Valoare = 1

Dacă x=0, atunci Cells(1, 1).Valoare = 0

Dacă x<0 Then Cells(1, 1).Value = -1

End Sub.

Tot ce rămâne este să rulați macro-ul și să obțineți valoarea necesară pentru argument în Excel.

Funcții VBA

După cum probabil ați observat deja, programarea în cel mai faimos procesor de foi de calcul Microsoft nu este atât de dificilă. Mai ales dacă înveți cum să folosești funcțiile VBA. În total, acest limbaj de programare, creat special pentru scrierea aplicațiilor în Excel și Word, are aproximativ 160 de funcții. Ele pot fi împărțite în mai multe grupuri mari. Acest:

  • Funcții matematice. Aplicându-le argumentului, obțin valoarea cosinusului, logaritmului natural, părții întregi etc.
  • Funcții financiare. Datorită disponibilității acestora și utilizând programarea Excel, puteți obține instrumente eficiente pentru calcule contabile și financiare.
  • Funcții de procesare a matricei. Acestea includ Array, IsArray; LBound; UBound.
  • Funcții Excel VBA pentru șir. Acesta este un grup destul de mare. Aceasta include, de exemplu, funcțiile Space pentru a crea un șir cu numărul de spații egal cu argumentul întreg sau Asc pentru a converti caracterele în cod ANSI. Toate sunt utilizate pe scară largă și vă permit să lucrați cu rânduri în Excel, creând aplicații care facilitează foarte mult lucrul cu aceste tabele.
  • Funcții de conversie a tipurilor de date. De exemplu, CVar returnează valoarea argumentului Expression transformându-l în tipul de date Variant.
  • Funcții pentru lucrul cu date. Acestea le extind semnificativ pe cele standard.Astfel, functia WeekdayName returneaza numele (complet sau partial) al zilei saptamanii dupa numarul acesteia. Și mai util este Timer. Oferă numărul de secunde care au trecut de la miezul nopții până la un anumit moment al zilei.
  • Funcții pentru conversia unui argument numeric în diferite sisteme numerice. De exemplu, Oct emite numere în octal.
  • Funcții de formatare. Cel mai important dintre ele este Formatul. Returnează o valoare Variant cu o expresie formatată conform instrucțiunilor specificate în declarația de format.
  • etc.

Studierea proprietăților acestor funcții și aplicarea lor va extinde în mod semnificativ domeniul de aplicare al Excel.

Exemplul 5

Să încercăm să trecem la rezolvarea unor probleme mai complexe. De exemplu:

Se oferă un document pe hârtie care raportează nivelul real al costurilor întreprinderii. Necesar:

  • dezvoltați partea de șablon folosind foaia de calcul Excel;
  • creați un program VBA care va solicita date inițiale pentru a le completa, efectuați calculele necesare și completați cu ele celulele șablon corespunzătoare.

Să luăm în considerare una dintre opțiunile de soluție.

Creați un șablon

Toate acțiunile sunt efectuate pe o foaie standard în Excel. Celulele libere sunt rezervate pentru introducerea datelor despre numele companiei de consum, valoarea costurilor, nivelul acestora și cifra de afaceri. Întrucât numărul de companii (societăți) pentru care se întocmește raportul nu este fix, celulele pentru introducerea valorilor pe baza rezultatelor și numele specialistului nu sunt rezervate în avans. Foaia de lucru primește un nou nume. De exemplu, „rapoarte”.

Variabile

Pentru a scrie un program care să completeze automat un șablon, trebuie să selectați notațiile. Acestea vor fi folosite pentru variabile:

  • NN - numărul rândului curent al tabelului;
  • TP și TF - cifra de afaceri planificată și efectivă;
  • SF și SP - valoarea efectivă și planificată a costurilor;
  • IP și IF - nivelul planificat și efectiv al costurilor.

Să folosim aceleași litere, dar cu „prefixul” Itog, pentru a desemna acumularea totalului pentru această coloană. De exemplu, ItogTP - se referă la coloana din tabel intitulată „cifra de afaceri planificată”.

Rezolvarea unei probleme folosind programarea VBA

Folosind notațiile introduse, obținem formule pentru abateri. Dacă trebuie să calculați în %, avem (F - P) / P * 100, iar în total - (F - P).

Rezultatele acestor calcule pot fi introduse cel mai bine direct în celulele corespunzătoare dintr-o foaie de calcul Excel.

Pentru totalurile reale și prognozate, acestea sunt obținute folosind formulele ItogP=ItogP + P și ItogF=ItogF+ F.

Pentru abateri utilizați = (ItogF - ItogP) / ItogP * 100 dacă calculul se efectuează în procente, iar în cazul unei valori totale - (ItogF - ItogP).

Rezultatele sunt din nou scrise imediat în celulele corespunzătoare, deci nu este nevoie să le atribuiți variabilelor.

Înainte de a rula programul creat, trebuie să salvați registrul de lucru, de exemplu, sub numele „Report1.xls”.

Butonul „Creează tabel de raportare” trebuie apăsat o singură dată după introducerea informațiilor din antet. Există și alte reguli pe care ar trebui să le cunoașteți. În special, butonul „Adăugați rând” trebuie să fie apăsat de fiecare dată după introducerea valorilor pentru fiecare tip de activitate în tabel. După ce ați introdus toate datele, trebuie să faceți clic pe butonul „Terminare” și apoi să treceți la fereastra Excel.

Acum știi cum să rezolvi problemele Excel folosind macrocomenzi. Abilitatea de a utiliza vba excel (vezi exemplele de programe de mai sus) poate fi necesară și pentru a funcționa în cel mai popular editor de text în acest moment, Word. În special, puteți crea butoane de meniu scriind, așa cum se arată chiar la începutul articolului, sau scriind cod, datorită căruia multe operațiuni asupra textului pot fi efectuate prin apăsarea tastelor de serviciu sau prin fila „Vizualizare” și pictograma „Macro-uri”.

Modelele de optimizare sunt folosite pentru a găsi răspunsuri la întrebări precum:

  • Cum să creați un program pentru angajații centrului de apel, astfel încât să satisfacă cererile lor de concediu, să echilibreze orele suplimentare și să elimine sarcina non-stop?
  • Ce oportunități de foraj petrolier ar trebui să utilizați pentru a vă maximiza veniturile, ținând în același timp toate riscurile sub control?
  • Când ar trebui plasate noi comenzi în China și cum ar trebui să fie livrate pentru a minimiza costurile și pentru a satisface cererea așteptată?

Descărcați nota în sau format, exemple în format

Scopul optimizării este întotdeauna „maximizarea” sau „minimizarea”. Cea mai comună și mai bine înțeleasă formă de optimizare matematică este programarea liniară, o dezvoltare secretă a inginerilor sovietici la sfârșitul anilor 1930, care a devenit populară în timpul celui de-al Doilea Război Mondial. Apropo, cuvântul „programare” din această expresie este o relicvă a terminologiei militare din acea vreme și nu are nimic de-a face cu programarea computerelor.

Să începem cu exemplul preferat al economiștilor - arme și unt. Anul este 1941, sunteți proprietarul unei ferme franceze de lactate. Ziua mulgi vacile si produci unt, noaptea asamblezi automate. Scopul dvs. este profitul maxim pentru a produce mașini cât mai mult timp posibil. De la intermediarul de la Rezistență primești 195 de unități monetare pentru fiecare aparat (pentru a nu deranja Excel cu franci inexistenți, să presupunem că aceștia sunt dolari). Pentru fiecare baril de petrol de pe piață ești plătit cu 150 USD.

Condiții și restricții. Costul unui baril de petrol este de 100 USD, iar o mașină este de 150 USD. Bugetul lunar de producție - 1800 USD. Vă depozitați produsele într-un subsol de 21 de metri cubi. Mașina ocupă ½ m 3, un baril de ulei de 1½ m 3. Câte automate și barili de petrol trebuie să vinzi într-o lună pentru a obține profitul maxim?

Un program liniar este definit ca un set de soluții necesare pentru optimizarea unui obiect în lumina unor condiții, în care atât obiectul, cât și condițiile sunt liniare. Puteți adăuga, scădea, înmulți prin constante, dar nu puteți utiliza funcții neliniare pentru a rezolva, cum ar fi înmulțirea variabilelor (nu puteți înmulți prin unt), pătrarea sau bucle logice, cum ar fi IF.

Să reprezentăm grafic intervalele de valori acceptabile. În primul rând, numărul de pistoale și butoaie de petrol trebuie să fie nenegativ. În al doilea rând, maximul pe care îl puteți produce este de 1800 USD/150 USD = 12 mașini sau 1800 USD/100 USD = 18 barili de petrol (Fig. 1). Denumirea generală a acestui triunghi este politop– o figură cu laturile plate (de exemplu, un diamant). În al treilea rând, subsolul poate găzdui nu mai mult de 21/(½) = 42 de mașini sau 21/(1½) = 14 barili de petrol (Fig. 2).

Pentru a găsi raportul ideal de mașini și butoaie, introducem conceptul în problemă linii de nivel de funcție. O astfel de linie în modelul de optimizare include valori care aduc același profit. Linia de nivel poate fi specificată prin ecuația:

(195 – 150) * N mașini + (150 – 100) * N barili de petrol = C,

unde C este o constantă.

De exemplu, cu C = 450, linia va trece prin coordonatele (0;10) și (9;0). Grafic, ideea de maximizare a profitului se realizează prin deplasarea liniei de nivel paralel cu ea însăși în direcția creșterii valorilor de-a lungul axelor X și Y (Fig. 3). Este curios că pentru un politop optimul se află întotdeauna la unul dintre vârfuri (sau nu există deloc o soluție unică). Algoritmul metodei simplex se bazează pe această proprietate. Rezolvarea problemei în Excel începe cu crearea unei zone de model (Fig. 4). Formula pentru funcția obiectiv din celula B1 =SUMPRODUCT(C4:D4;C10:D10).

Orez. 3. Linie de nivel și funcție pentru optimizarea profitului: a) o poziție inițială arbitrară; b) linie de nivel în poziție optimă

Sunteți gata să apăsați butonul. DATE –> Găsirea unei soluții. (Dacă nu vedeți acest buton, instalați programul de completare Find Solution; consultați Capitolul 1). În fereastra care se deschide Opțiuni de căutare a soluției setați opțiunile evidențiate și apăsați Gaseste o solutie.

Orez. 5. Fereastra Găsirea unei soluții

Excel va actualiza foaia și va adăuga rezultatele calculului la ea (Fig. 6).

Ce se întâmplă dacă adăugați neliniaritate? Să presupunem că intermediarul dvs. oferă 500 USD dacă numărul de mașini pe lună este mai mare de 5. Doar adăugați o funcție IF la celula de profit (B1). Acum funcția obiectiv arată astfel: =SUMPRODUCT(C4:D4,C10:D10)+IF(C4>5,500,0). Clic Găsirea unei soluții. Eșec, Excel raportează o eroare - condițiile de liniaritate nu sunt îndeplinite (Figura 7).

Puteți încerca algoritmul evolutiv, care funcționează cel mai bine cu modele neliniare și practic nu are restricții în alegerea funcțiilor. Lucrarea algoritmului evolutiv repetă în anumite moduri principiile muncii evoluției biologice:

  • generează un pool de soluții inițiale (ceva ca un pool genetic) de diferite grade de probabilitate;
  • fiecare decizie are un anumit nivel de aptitudine pentru supraviețuire;
  • soluțiile sunt propagate prin transfer încrucișat, adică componentele lor sunt selectate dintre două sau trei soluții existente și apoi combinate;
  • soluțiile existente se transformă în altele noi;
  • are loc o căutare locală, în timpul căreia se generează noi soluții în apropierea celei mai bune soluții în prezent din populație;
  • are loc selecția: soluțiile candidate nereușite alese aleatoriu sunt aruncate din fondul genetic.

Din păcate, există încă unele probleme cu algoritmul evolutiv:

  • Timpul de operare este semnificativ mai lung decât în ​​cazul metodei simplex
  • Nu există nicio garanție că va găsi soluția optimă. Tot ce poate face este să controleze cea mai bună soluție din populație până când timpul expiră, sau populația se schimbă suficient pentru a continua, sau opriți cu forță Căutarea unei soluții apăsând butonul ESC.
  • Căutarea evolutivă a unei soluții funcționează destul de lent. Și dacă gama de valori acceptabile este complexă, deseori înjură, negăsind nici măcar un loc de unde să plece.
  • Dacă doriți ca algoritmul evolutiv să funcționeze bine în Excel, va trebui să definiți limite dure pentru fiecare variabilă de decizie. Chiar dacă soluția dvs. este mai mult sau mai puțin nerestricționată, aveți totuși nevoie de restricții.

Ținând cont de ultimul punct, pentru a rezolva problema cu mașinile și untul trebuie să adăugați o constrângere ca ambele soluții să nu fie mai mari de 25 (Fig. 8). După setarea parametrilor de bază ai modelului, faceți clic pe butonul Opțiuni. După ce a lucrat aproximativ un minut, algoritmul evolutiv a produs soluția așteptată - 6 mașini și 9 barili de petrol. Deoarece este optim să faci doar trei utilaje fără bonus, iar bonusul se plătește atunci când sunt produse mai mult de 5 utilaje, este evident că alegerea optimă ar fi 6 utilaje.

Să luăm acum în considerare un exemplu mai complex. Lucrezi pentru o companie care produce suc de portocale amestecând sucuri naturale de diferite soiuri (Fig. 9). Pentru a vă asigura că sucul dumneavoastră îndeplinește cele mai sofisticate cerințe:

  • raportul Brix/aciditate ar trebui să rămână între 11,5–12,5;
  • nivelul de aciditate ar trebui să rămână între 0,75–1%;
  • nivelul de astringență ar trebui să fie de 4 sau mai mic;
  • culoarea ar trebui să fie între 4,5–5,5.

Șeful vă spune că se așteaptă ca cererea să fie de 600.000 de galoane de suc pe lună pentru ianuarie și februarie și de 700.000 de galoane pentru martie. Și totuși, există un acord cu statul Florida care oferă scutiri de taxe cu condiția ca compania să cumpere cel puțin 40% din suc în fiecare lună de la fermierii care cultivă soiul Valencia. Acordul trebuie respectat.

Orez. 9. Lista de caracteristici pentru producerea sucului de portocale proaspăt stors (pentru a mări imaginea, faceți clic dreapta pe ea și selectați Deschide imaginea într-o filă nouă)

Creați un model de optimizare (Fig. 10). Formulele pot fi studiate pe foaia corespunzătoare a fișierului Excel atașat. Clic Găsirea unei soluții, și introduceți parametrii (Fig. 11). Clic Gaseste o solutie.

Orez. 11. Fereastra umplută Găsirea unei soluții pentru sarcina de amestecare

Lansare Găsirea unei soluții, găsiți costul optim de achiziție - 1,23 milioane USD (Fig. 12). Vă rugăm să rețineți că comanda Florida Valencia se încadrează la capătul inferior al condiției. Evident, această ofertă nu este cea mai bună opțiune, dar trebuie să o accepți. Al doilea cel mai popular soi este Verna din Mexic, care este al naibii de ieftin, dar la fel de groaznic.

Prezinți rezultatele calculului șefului tău, dar acesta rămâne nemulțumit și spune că nu vrea să treacă peste bugetul de 1,17 milioane de dolari Te întorci la calculator și începi să înțelegi că costul a încetat să mai fie o funcție obiectivă. Acum aceasta este o condiție! Care este scopul? Puteți reduce costurile de achiziție doar prin relaxarea cerințelor de calitate. Decizi să le formulezi în termeni de reducere procentuală și să faci un nou model (Figura 13).

Vă rugăm să rețineți că celulele B26:29 și F26:F29 conțin acum mai degrabă formule decât constante. Noul tău obiectiv este de a minimiza degradarea procentuală în celulele G26:G29. Mai precis, ați dori să minimizați maximul valorilor din celulele G26:G29. Cu toate acestea, dacă puneți formula =MAX(G26:G29) în celula D2, modelul nu va funcționa. Permiteți-mi să vă reamintesc că funcția MAX nu este liniară. Un mic truc este disponibil aici - puteți adăuga o condiție suplimentară modelului: $G$26:$G$29<=$D$2 (рис. 14), а ячейку D2 оставить пустой. Т.е., ячейка D2 будет оптимизироваться не благодаря наличию в ней формулы, а последовательными циклами, запускаемыми этим дополнительным условием.

Clic Gaseste o solutie. Algoritmul simplex va încerca să împingă D2 mai aproape de 0 ca funcție obiectiv a modelului, în timp ce constrângerile de aromă și culoare vor încerca să-l mărească cât mai mult posibil pentru a obține un amestec funcțional. Unde se oprește valoarea lui D2? Cea mai mică valoare posibilă este procentul maxim de patru redus în intervalul G26:G29. Vedem (Fig. 15, celulele C26:E29) că reducerea costurilor cu 5% a necesitat depășirea limitelor de calitate în toți cei patru parametri.

I-ai prezentat datele șefului, care a văzut că reducerea costurilor cu 5% nu merită să reducă calitatea sucului, așa că a fost de acord cu prima ta variantă. Dar când ai adus-o la departamentul de aprovizionare, angajații au fost revoltați. Cum ar putea fi împărțite proviziile așa!? Furnizorii insistă să vă măriți loturile: nu mai mult de 4 furnizori pe lună! Și te așezi la noul model. Din păcate, nu puteți utiliza funcțiile IF sau COUNT deoarece doriți să rămâneți în modelul liniar. Prin urmare, trebuie să recurgeți din nou la trucuri (Fig. 16). Adăugați regiunea C33:E43 la model, pe care o definiți ca binar (valorile din acesta pot fi doar 0 sau 1) și o lăsați goală. Și, de asemenea, zona F33:H43, unde fiecare celulă este egală cu produsul valorii din zonele C33:E43 cu G5:G15. La parametri Găsirea unei soluții(Fig. 17) adăugați o altă condiție $C$15:$E$15<= $F$33:$H$43 и еще одну область переменных – $C$33:$E$43.

Cum va funcționa algoritmul de optimizare în acest caz? Când începe, toate valorile din zonele C5:E15, C33:E43 și F33:H43 sunt zero. Să presupunem că algoritmul încearcă să plaseze valoarea 240 în celula C7. Condiția C7 va funcționa<= F35, которое приведет к увеличению значения в F35, которое, в свою очередь, определяется формулой F35 = C35*$G7. Поскольку G7 – константа, а С35 – бинарная переменная, последней присваивается значение 1. Условие С7 <= F35 выполнено, т.к., 240 <= 1200. Таким образом вы моделируете неудобное условие «если… то»: «если заказ сделан, то бинарная переменная включается».

Clic Gaseste o solutie. Veți observa că problema durează mai mult pentru a se rezolva din cauza adunării variabilelor binare. Dacă dintr-un motiv oarecare Găsirea unei soluții prea mult timp în căutarea dvs., puteți apăsa oricând ESC și puteți vedea cea mai bună soluție găsită în acest moment.

Practic, ești deja un specialist destul de avansat în domeniul programării liniare. Dar, dacă ai un gust pentru asta și îți place să te ocupi de modele de complexitate crescândă, iată încă două exemple uimitoare.

Inginerii au raportat că au apărut noi „reductori de aciditate” în producție. Această tehnologie este capabilă să neutralizeze 20% din acidul din sucul care curge prin dispozitiv. Acest lucru nu numai că reduce procentul de acid, dar crește și indicele Brix/aciditate cu 25%. Dar „reductorul” necesită energie și consumabile care costă 20 de dolari la 1.000 de galoane de suc. Nu toate sucurile provenite de la furnizori trebuie supuse acestui proces, cu toate acestea, dacă o expediție dintr-o comandă este efectuată printr-un schimbător de ioni, întregul volum trebuie procesat. Construiți un model care implică un schimbător de ioni pentru a reduce costurile.

Problema cu noua regulă este că modalitatea naturală de modelare a acesteia este neliniară, ceea ce va duce la un algoritm de optimizare lent. Dar, ca și în exemplul anterior, puteți introduce o variabilă binară în zona C25:E35, care ar fi „activată” dacă este necesar să se reducă aciditatea lotului (Fig. 18). Deoarece nu puteți utiliza produsul „indicator de reducere a acidității (binar) * volum lot”, creați zona C37:E47, care va fi utilă pentru egalizarea volumelor care trebuie reduse în aciditate, fără a participa direct la formulele acestor volume în sine. . Deci, zonele C25:E35 și C37:E47 nu conțin formule. În zona G25:I35 se folosesc formulele =C25:E35*G5:G15 (aceasta este limitarea lotului prin volumul total disponibil de suc), iar în zona K25:M35 =E5:E15-GG5:15 *(1-E25:E35). Această condiție va funcționa numai dacă lotul este supus reducerii acidității.

De asemenea, în modelul „reductor de aciditate”, formulele din celulele C16:E16 au fost modificate (acum iau în considerare costul reducerii acidității folosind formula „indicator (binar) * volum lot * 20 USD) și în celulele C50:E51 (acum iau in calcul cresterea coeficientului Brix/aciditate cu 25% si reducerea aciditatii cu 20% pentru loturile procesate). În parametri Găsirea unei soluții au apărut noi variabile şi condiţii suplimentare (Fig. 19). Din păcate, apăsând butonul Gaseste o solutie, veți afla că suplimentul Găsirea unei soluții nu poate face față sarcinii (Fig. 20). Modelul a devenit prea complex.

Orez. 19. Opțiuni Găsirea unei soluțiiîn modelul cu „reductor de aciditate”

Orez. 20. Găsirea unei soluții nu face față sarcinii

Trebuie să descărcați și să instalați OpenSolver(cum se face asta, vezi capitolul 1). OpenSolver va „prelua” setările tocmai introduse în fereastră Găsirea unei soluții. Deci doar apăsați butonul Rezolvator. Soluția rezultată – 1.235.927 USD – este cu peste 100.000 USD mai bună decât minimul anterior – 1.338.913 USD.

Pana acum am presupus ca produsele furnizate aveau exact parametrii specificati. Este rezonabil să presupunem că acești parametri sunt supuși variațiilor, caracterizate prin abaterea standard (Fig. 21; vezi pentru mai multe detalii). Cea mai cunoscută și utilizată distribuție a unei variabile aleatoare este distribuția normală, altfel cunoscută sub numele de curba clopot. Să spunem, în cazul sucului din Egipt, raportul mediu Brix/aciditate ar fi 13, iar abaterea standard (numită și abatere standard) ar fi 0,9 (Figura 21). În acest exemplu, 13 este centrul distribuției de probabilitate, 68% dintre comenzi vor fi în ±0,9 din 13 și 95% vor fi în ±1,8 din 13.

Scopul dvs. este de a propune un plan de amestecare care costă mai puțin de 1,25 milioane USD care să răspundă cel mai bine așteptărilor de calitate, în lumina variabilității ofertei.

Folosim media și abaterea standard a caracteristicilor pentru a aplica simularea Monte Carlo (dacă ați auzit acest nume pentru prima dată, vă recomand). În această metodă, în loc să includă parametrii de distribuție (media și abaterea standard) direct în model, un număr mare de scenarii sunt create pe baza acelor parametri de distribuție.

Un scenariu este un răspuns posibil la întrebarea: „Dacă acestea sunt distribuții bazate pe statistici, cum ar arăta o anumită comandă?” Fiecare scenariu include patruzeci de parametri pentru zece soiuri de suc (Fig. 22). Pentru a obține un astfel de parametru, utilizați funcția NORM.REV (pentru mai multe informații despre funcție, consultați). De exemplu, în celula B33, raportul Brix/aciditate pentru Hamlin este dat de =NORM.REV(RAND();H5;N5). Introduceți formule similare în zona B33:СW76, generând 100 de scenarii. Găsirea unei soluții nu va putea lucra cu aceste formule, deoarece sunt neliniare, așa că copiați-le în clipboard și lipiți-le, ci ca valori.

Scopul este de a minimiza valoarea din celula D2. Adică, găsiți o soluție care să reducă cel puțin limitele de calitate pentru 100 de scenarii. Ca și în exemplele din fig. 13–15, celula D2 nu are o formulă. Optimizarea se realizează prin setarea parametrilor în fereastră Găsirea unei soluții. Tot ceea ce este necesar este să plasăm limite de calitate în toate scenariile, nu doar valorile de performanță așteptate. Deci, în raportul Brix/aciditate adăugați termenii B78:CW80 >= B26 și =< F26, затем проделываете то же самое с кислотностью, вяжущей составляющей вкуса и цветом (рис. 24). Нажмите Gaseste o solutie. Soluția va fi găsită destul de repede. Dacă ați generat singur valorile aleatoare în loc să le utilizați pe cele din fișierul de descărcare, soluția dvs. poate varia. Pentru suta de scenarii ale mele, cel mai bun lucru pe care l-am putut obține a fost o schimbare de 133% a calității.

Orez. 24. Configurare Găsirea unei soluții pentru un model cu caracteristici variabile

Dacă doriți să vă extindeți cunoștințele de programare liniară, vă recomand cartea de modelare a optimizarii AIMMS. Nu rata cele două capitole despre trucuri și sfaturi - sunt cu adevărat geniale.

Scrisă pe baza cărții lui John Forman. – M.: Editura Alpina, 2016. – P. 129–186. În ceea ce privește secretul dezvoltării și al Doilea Război Mondial, aceasta pare a fi părerea personală a autorului cărții. Vezi Wikipedia. – Notă Baguzina.

Excel 2000”.

De ce nu doar „Lumea Excel 2000”? Aparent, pentru că prefer să privesc tot ce se întâmplă în Excel din punct de vedere al obiectelor, să consider tot ce se întâmplă ca acțiuni asupra obiectelor. Și se acordă destul de multă atenție descrierii obiectelor în sine din această carte. În același timp, domeniul de aplicare include nu numai obiectele Excel în sine. Lumea obiectelor Excel este mai largă. Într-un fel sau altul, în discuție apar obiecte comune ale Office 2000 și obiecte ale altor aplicații; în carte, de exemplu, se acordă multă atenție conexiunii dintre Excel și Access. Pe lângă obiectele Excel, cartea discută în detaliu încă două grupuri de obiecte - ADO și OWC. Obiectele ADO care permit accesul la baze de date fac parte, fără îndoială, din lumea Excel, întrucât, cel mai adesea, Excel este aplicația în care sunt procesate datele stocate în diverse surse. Componentele OWC care au funcționalitate Excel sunt lor model de obiect- aceasta face parte și din lumea obiectelor Excel. Nu puteți face fără aceste obiecte dacă soluția dvs. este transferată pe intranet sau pe Internet și doriți să creați un site Web ale cărui pagini au funcționalitatea documentelor Excel.

Ce poate fi găsit în această carte și cui este destinată?

Această carte este destinată celor care creează soluții bazate pe Excel. Desigur, în primul rând vorbim despre cei care deja folosesc programare folosind VBA și VBScript atunci când vă creați propriile soluții. Dar cred că cei care lucrează în Excel de multă vreme, dar nu au folosit încă modalități programatice pentru a-și configura soluțiile, pot începe cu această carte, deși, vă avertizez, este necesară o pregătire de programare.

Primele două prelegeri sunt dedicate începuturilor programării în Excel. Ele sunt, sper, accesibile utilizatorilor experimentați și programatorilor începători. Cred că și cei care predau programare în orice mediu de programare le vor citi cu interes. Exprim și încerc să susțin aici ideea „sedițioasă” că Excel este un mediu excelent pentru formarea inițială de programare la școală și în universități. Sper că programatorii cu experiență vor găsi aici ceva util, mai ales în capitolul al doilea, adresat matematicienilor.

Capitolul 3 descrie modelul obiect Excel. Toți actorii principali ai acestui model sunt luați în considerare în detaliu - Aplicația, WorkBook, WorkSheet, Chart, Range și alte obiecte. Este clar că atunci când acoperiți acest subiect nu se poate face fără detalii tehnice, așa că citirea capitolului este destul de plictisitoare, dar ca material de referință, sper să vă fie de mare folos.

Bazele de date și alte surse de date sunt unul dintre subiectele principale ale acestei cărți. Capitolul 4, „Excel și baze de date”, începe acest subiect. Acest capitol oferă, de asemenea, o introducere în aplicația Access, folosind un exemplu pentru a arăta cum este construită o bază de date în Access și explorând conexiunile dintre Excel și Access.

Capitolele cinci și șase ale cărții sunt dedicate obiectelor ADO. Faptul că două capitole sunt dedicate acestor obiecte indică nivelul de detaliu în care este luat în considerare acest subiect. Obiectele ADO definesc interfața dintre o mare varietate de surse de date și aplicația client în care sunt procesate datele. O astfel de aplicație nu trebuie să fie neapărat Excel; domeniul de aplicare al obiectelor ADO este mult mai larg. Dar Excel este unul dintre cei mai potriviți candidați pentru rolul unei astfel de aplicații client. Citirea acestor capitole necesită o anumită pregătire și se adresează programatorilor mai avansați.

Al șaptelea capitol al cărții este dedicat dezvoltării documentelor interactive. Este într-un anumit sens central în natură. Acesta parcurge întregul proces de creare a unui document Excel interactiv. Acest document poate fi considerat un exemplu de soluție tipică creată în Excel, în care proiectul software joacă un rol decisiv. Soluția propusă folosește o bază de date Access și obiecte ADO pentru a comunica cu baza de date. O serie de alte aspecte care sunt importante în munca practică sunt, de asemenea, discutate aici, de la organizarea interfeței cu utilizatorul până la obținerea unei forme tipărite a documentului.

Capitolul 8 abordează problemele care apar atunci când se analizează activitățile de birou. Încearcă să combine o acoperire substanțială, cum ar fi o privire asupra modului de a face o analiză „What-If”, cu o privire la instrumentele Excel utilizate în acea analiză. Tabelele pivot și tabelele pivot sunt acoperite aici. diagrame, scripturi, metode de prognoză și multe altele.

Al nouălea capitol discută în detaliu crearea unui proiect numit „MasterF”. Din punct de vedere de fond, se are în vedere problema selecției optime a investițiilor. Soluția de proiectare folosește un instrument puternic încorporat Excel - soluția Solver, care vă permite să rezolvați probleme complexe de optimizare. Acest proiect demonstrează construirea unui add-in peste setul de instrumente Excel încorporat. Consider că poate avea nu numai valoare educațională, ci și practică pentru cei care rezolvă probleme similare.

Capitolul 10 prezintă noi obiecte care sunt strâns legate de Excel. Acest capitol acoperă Office Web Components - componente OWC. În opinia mea, aceste componente sunt cel mai bun produs creat de Microsoft în domeniul programării componentelor. Acestea oferă posibilitatea de a adăuga funcționalitate Excel la soluțiile dvs. fără a utiliza Excel în sine sau alte aplicații Office 2000. Scopul principal al acestor componente este de a oferi lucrări corporative cu documente pe intranet, ceea ce vă permite să creați pagini de site Web interactive care au funcționalitate Excel . Când luăm în considerare aceste componente, se acordă multă atenție muncii programatice cu aceste componente, capacitatea de a configura în mod programatic documente Web care utilizează aceste componente.

Capitolul 11 ​​este o introducere în web - programare. Arunc o privire detaliată asupra procesului de creare a unui document Web interactiv. Cuvântul cheie aici este „ interactivitate„, pentru că, în mare, toată această carte este despre cum să dai ceea ce dorești interactivitate documente create. Capitolul este complet independent, dar, de fapt, este o continuare firească a celor două subiecte discutate în capitolele 7 și 10, întrucât, pe de o parte, vorbim despre crearea unui document interactiv, pe de altă parte - un document Web, paginile dintre care pot avea funcționalitate Excel. Remarc că atunci când luăm în considerare problemele creării unei cozi interactive, aceasta este pentru școlari, dar nu numai pentru ei. Majoritatea jocurilor aparțin clasei de jocuri „de dezvoltare” care vizează dezvoltarea gândirii logice. Printre jocuri există variații ale jocurilor celebre - Lines, Tetris, Digger, jocuri puzzle, celebrul joc de cărți „Flip Fool” și alte jocuri.

Încheind prefața, aș dori să spun că cursul propus este strâns legat de cărțile din „Oficiul programare", publicat de editura "Russian Edition". Există referințe explicite și implicite în textul multor capitole:

  1. „VBA în Office 2000. Programare Office,
  2. „Instrumente de dezvoltare pentru programator VBA”. programare de birou,
  3. Obiecte World of Excel 2000. Instrumente de dezvoltare pentru programator VBA.

Este bine dacă cititorii sunt familiarizați cu aceste cărți sau au urmat cursuri în primele două cărți, dar aceasta nu este o cerință. Puteți finaliza acest curs pe cont propriu. Voi spune chiar că am încercat, dacă se poate, să fac fiecare capitol accesibil pentru citire independentă.

Solicitare către cititori. Deoarece cursul este construit pe baza unei cărți publicate anterior și nu a suferit practic nicio modificare, sunt posibile „legături suspendate” care au sens doar pentru carte. O parte din materiale este deja depășită. Încearcă să fii indulgent cu aceste defecte. Cred cu sinceritate că conținutul principal nu și-a pierdut valoarea și poate fi util tuturor celor care au legătură într-un fel sau altul cu programarea de birou.

Pentru a scrie un program de calculator trebuie să cunoașteți, în primul rând, un limbaj de programare. În al doilea rând, trebuie să aveți un program special instalat pe computer 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).

Orice limbaj de programare este potrivit, dar atunci când lucrezi în Excel și scrii programe pentru el, 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.