Visuelt grunnleggende språk for excel. Komme i gang med programmering i Excel

Hver bruker har kommet over det faktum at Excel noen ganger ikke har de riktige verktøyene for å møte deres behov. Med all overflod av Excel-funksjoner, noen ganger er det umulig å automatisere løsningen av noen oppgaver, fordi det ikke er noen grense for perfeksjon. Den ideelle løsningen er å la brukeren lage sine egne spesifikke verktøy. For dette ble det laget makroer.

Skrive makroer i Excel

Excel-makrokode er skrevet i Visual Basic for Application (VBA) og kjøres av applikasjonsverktøyet den er knyttet til. De fleste av disse verktøyene er ikke tilgjengelige på Excel-vindusnivå. Hvordan skrive en makro.

Nå vil vi demonstrere med et eksempelinformasjon om hvordan du skriver, redigerer og utfører makrokode.

Slik skriver du en makro:


Merk. Hvis fanen "UTVIKLER" er fraværende i hovedmenyen, må den aktiveres i innstillingene: "FIL" - "Alternativer" - "Tilpass båndet". I den høyre listen "Hovedfaner:" aktiverer du avmerkingsboksen "Utvikler" og klikker på OK-knappen.



Muligheter for makroer i Excel

Makroer lar deg automatisere prosessene med å jobbe med dokumenter og ikke bare ... De kan nesten samtidig utføre tusenvis av verktøy i én operasjon (selv med ett museklikk). Dermed utvides mulighetene for å jobbe med programmet.

Ved hjelp av makroer kan brukeren lage sitt eget verktøy selv, som han mangler i arsenalet til Excel-programmet. For eksempel når du automatisk skal velge annenhver linje med ett klikk. Eller du må lage et visst antall kopier av et spesifikt regneark samtidig. Listen over brukerbehov for å automatisere arbeidsprosesser er uendelig.

Hvis det ikke var mulig å lage makroer i alle programmer som er inkludert i MS Office-pakken. At mange operasjoner i prosessen med rutinearbeid, vil brukerne måtte utføre manuelt (velg gjennom én linje ved å klikke på annenhver overskrift med musen eller kopiere og lime inn ett ark om gangen). Manuelt arbeid resulterer i beste fall i en enorm mengde bortkastet tid, og i verste fall fører til feil eller til og med tap av verdifulle data.

Muligheten til å lage makroer og automatisere arbeidsflyter sparer arbeidet ditt fra bortkastet tid og feil. Deretter vil vi vurdere hvordan du lager en makro som nøyaktig og automatisk utfører rutinearbeid med ett klikk. Vi vil også vurdere på hvilke steder i Excel-arbeidsboken du kan lage og lagre makroer. Hvordan du lanserer og utfører dem, samt hvordan du optimaliserer dem så mye som mulig for dine behov.

Excel gir et stort og rikelig arsenal av verktøy for å lagre og behandle en enorm mengde informasjon med data. Selv om for det mest allsidige analytiske programmet Excel - datalagring i seg selv er mindre interessant enn evnen til å behandle, strukturere og analysere dem med presentasjon i rapporter. For disse formålene brukes et kraftig analytisk verktøy for databehandling som "pivottabeller". Men den kan også forbedres ytterligere ved hjelp av makroer. Og da kjenner mulighetene til pivottabeller ingen grenser.

Excel-regnearkfunksjonsreferanse er en referanse til Excel-regnearkfunksjoner i Windows Help .chm-format. Filen inneholder en fullstendig liste over Excel-arkfunksjoner på russisk og engelsk og er utstyrt med eksempler på bruk og anvendelse av funksjoner. Veiledningen kan være nødvendig for både nybegynnere og mer sofistikerte brukere.

Filformat:.chm

Excel-regnearkfunksjonsreferanse(532,2 KiB, 15 462 nedlastinger)

VBA-programmering i MSOffice er en veldig god nybegynneropplæring for å programmere i VBA. Boken er skrevet av en sertifisert Microsoft Office-lærer på et lettfattelig språk, utstyrt med kompetente kodelister. Opplæringen vil hjelpe deg å mestre programmering ikke bare i Microsoft Excel, men også i Microsoft Word og Microsoft Project.

Filformat:.pdf

VBA programmering i MSOffice(4,1 MiB, 26 659 nedlastinger)
Du har ikke tillatelse til å laste ned denne filen. Kanskje du ikke er registrert på siden. Registrer deg og prøv å laste ned på nytt.

Walkenbach J. Profesjonell programmering med VBA Excel 2003 er kanskje den mest populære læreboken for nybegynnere. Mange begynte med ham. Det er sant at i den trykte versjonen av denne læreboken brukes lister over koder, som ikke alltid trenger å bli tatt på tro - veldig ofte er det skrivefeil der, og i stedet for engelske tegn er det russere. Derfor vil jeg personlig anbefale å ikke kopiere kodene direkte fra boken, men å skrive dem om manuelt i VBA-editoren. På denne måten vil det bli husket bedre og spare deg selv fra å lete etter feil.

Filformat:.pdf

Office 2007. Opplæring - Hvis du bestemte deg for å bli kjent med grensesnittet og de grunnleggende funksjonene til Microsoft Office-applikasjoner, anbefaler jeg deg å lese denne boken. Den beskriver alt du trenger for å lykkes i applikasjoner som: Excel, Word, Outlook, Power Point, Access. Etter å ha lest vil du kunne lage vakre presentasjoner og informative grafer, læreren til å lage oppgaver i Outlook og databaser i Access.

Filformat:.pdf

Russian Help for Visual Basic for Application (VBA) – Dette er den offisielle hjelpen for Visual Basic for Application (VBA), som var inkludert i Microsoft Office 97-pakken. Da var hjelpen fortsatt russifisert. Det er ingen hemmelighet at nå i alle versjoner av kontoret er VBA-hjelp kun tilgjengelig på engelsk, uavhengig av lokalisering. Og i borgerlig kan ikke alle lese (selv utholdelig, som praksis viser).
Jeg vil advare deg med en gang - fordi hjelpen er ment for en ganske gammel versjon, ikke alle metoder og egenskaper er beskrevet i den. Men de fleste av dem er fortsatt beskrevet, og jeg håper denne hjelpen vil hjelpe deg i den innledende studien av VBA.

Filformat:.hjelpefil

RUS_VBA.zip(1,1 MiB, 9 164 nedlastinger)
Du har ikke tillatelse til å laste ned denne filen. Kanskje du ikke er registrert på siden. Registrer deg og prøv å laste ned på nytt.

Shell_RegExp-objekter og så videre - en hel samling eksempler på arbeid med slike objekter som: Shell, RegExp, FileSystemObject, WshShell, Dictionary, WshNetwork, WScript, WScript-konstanter og -funksjoner. Alle eksempler er strukturert etter seksjon og laget som en referanse for egenskapene og metodene til hvert av objektene. Det er veldig praktisk hvis du ikke bruker disse gjenstandene veldig ofte i arbeidet ditt og har glemt noe.

I tillegg til tips om hvordan du kan lære å skrive VBA-makroer for Excel, skal jeg fortelle deg min historie – hvordan jeg lærte å programmere i VBA.

Det hele begynte i forrige århundre, i 1993 år da jeg gikk på skolen. I informatikktimene, i klassen vår, var det monsterdatamaskiner kalt "Corvette", og vi skrev enkle programmer i BASIC på dem. Disse datamaskinene skilte seg ganske merkbart fra de "normale" (IBM-kompatible) - de hadde en monokrom skjerm, det var absolutt ingen harddisk og diskettstasjoner, og det eneste som startet på den (automatisk, etter oppstart) var Grunnleggende språktolk.

Faktisk viste interessen min for programmering seg tidligere - i en alder av 9, da jeg så i "Modelist-Constructor"-magasinet for 1988 (som jeg leste jevnlig, fra perm til perm) noen maskinkoder for "Specialist"-datamaskinen. .. Da var jeg veldig interessert i muligheten til å kjøre noen bokstaver og tall inn i datamaskinen for å få den til å gjøre det jeg vil. Akk, den økonomiske situasjonen til foreldrene mine på den tiden lot mye å være ønsket, og det kunne ikke være snakk om å kjøpe noen form for datamaskin. Så jeg moret meg med å kopiere disse kodene fra et magasin til en notatbok, i håp om at jeg en dag vil ha en datamaskin og jeg vil kunne kontrollere den :)

Siden på den tiden en hjemmedatamaskin var en luksus (bare noen få hadde Spectrum hjemme, og noen var heldige som fikk en dyr IBM PC 286), mestret jeg Basic utelukkende på skolen, noen ganger dvelende etter skolen. Skoleplanen ga bare 2 års studier i faget "Informatikk" (10. og 11. klasse), men siden barndommen var jeg interessert i all slags elektronikk, så jeg begynte å gå på klasser fra klasse 8, og leste der den eneste bok-instruksjon på "Corvette" (denne boken, som min vei til programmering begynte med, hun er også i PDF), og prøver å komponere enkle programmer. Snart begynte læreren å la meg gå til hoveddatamaskinen (bare på den var muligheten til å lagre programmer på en 5,25 "diskett" - og det var mye arbeid for dette) - og programmene mine ble mye mer kompliserte. En gang Jeg klarte til og med å implementere spillet "Poker" med et grafisk grensesnitt (det viste seg omtrent 2000 linjer med kode) - dette til tross for at Basic-tolken bare tillot symboler og grafiske primitiver å vises på skjermen.
Som et resultat, ved slutten av skolen ( 1996 år) Jeg var flink til å bruke loops, og hadde litt erfaring med algoritmer.

Når det gjelder algoritmer, gjør dette begrepet meg fortsatt allergisk. Under studiene på skolen, på forelesninger om informatikk (jeg studerte ganske bra, og vi, vinnerne av alle slags olympiader, ble sendt til tilleggsutdanning i høyere matematikk og informatikk på en deltidsskole ved USU), vi ble tvunget til å skrive algoritmer i en slags pseudokode (blandinger av russisk med Turbo Pascal). Siden jeg var merkbart bak mine jevnaldrende i programmering (de studerte på IBM-kompatible datamaskiner, hvor denne samme Pascal var og mye mer, og jeg, bortsett fra BASIC, ikke visste og ikke så noe), var det veldig vanskelig å mestre syntaksen til det algoritmiske språket. I tillegg forsto jeg ikke (og nå forstår jeg ikke) hvorfor det er nødvendig å bruke en time på å kompilere en algoritme for det enkleste programmet, hvis du bare kan åpne editoren og skrive noen linjer med kode (for meg, som normalt kan engelsk, var syntaksen til BASIC-språket mye klarere enn denne kryptiske algoritmiske pseudokoden). Det er ikke snakk om blokkdiagram i det hele tatt - ettersom jeg husker instituttet, hvor vi ble tvunget til å tegne blokkdiagrammer (på flere A4-ark) for de enkleste programmene på 10 linjer, slutter jeg å forstå hvordan ønsket om å lære programmering aldri kan gå tapt etter alt dette ... ...

Etter at jeg ble uteksaminert fra videregående, ved instituttet, studerte jeg en liten Turbo Pascal, hvor treningen min i programmering stoppet i et tiår (det var ingen datamaskin hjemme og på jobben), og jeg glemte nesten alt jeg lærte innen informatikk leksjoner.
Imidlertid, i 2004 år, på jobben min, bestemte sjefene til slutt å erstatte skrivemaskinen (som jeg veldig dyktig banket nøklene på) med en enkel datamaskin (det var en Pentium-1 med 64 megabyte RAM og Windows 98). Med tanke på at jeg så Windows da for første gang, måtte jeg lære meg å jobbe på en datamaskin fra bunnen av.

Jeg mestret datamaskinen raskt, tk. Den andre dagen krasjet Windows etter et mislykket forsøk på å overklokke prosessoren, og jeg måtte raskt lære å installere operativsystemet og programmene på nytt. Personen som hjalp meg med å installere operativsystemet og grunnleggende programmer den første dagen jeg ble kjent med datamaskinen, hadde ikke mulighet til å hjelpe meg konstant. Han etterlot meg distribusjonene av Windows og Office, et par disker i forskjellige verktøy, hvoretter han forklarte meg hvordan jeg skulle skrive inn og formatere tekst i Word, hvordan jeg åpner og lagrer filer gjennom programmenyen, og gikk og ønsket meg flaks. Jeg hadde ikke noe annet valg enn å mestre systemet "ved å skrive".

For en glede (etter skrivemaskinen) var muligheten til å lagre og redigere trykte dokumenter ... og jeg var slett ikke flau over at det tok omtrent 20-30 sekunder å starte Word (mens CorelDRAW tok et par minutter å laste). Datamaskinen ble min hovedhobby - i løpet av et par måneder mestret jeg de grunnleggende programmene, etter seks måneder var jeg opptatt med å rote rundt i registeret, gjenopprette den tapte Windows (den som husker Win98 vil forstå meg), underveis mestret jeg arkitekturen på datamaskinen (jeg måtte hele tiden stikke minnemoduler, koble til flere harddisker osv.)

Jobben min var å utarbeide ulike dokumenter (handlinger, ordre osv.), og jeg begynte å tenke på hvordan jeg skulle forenkle det (jeg liker ikke å gjøre det samme hver dag). Nesten umiddelbart trakk jeg oppmerksomheten til elementet "Visual Basic Editor" i Microsoft Word-menyen, og klatret for å se hva slags beist det var. Jeg snublet, så på den innebygde hjelpen, men jeg skjønte ikke så mye. Denne Basic var ikke i det hele tatt som den jeg studerte på skolen. Jeg fant ut at du kan tegne skjemaer med knapper og tekstfelt, men jeg skjønte fortsatt ikke hvordan jeg skulle få dette til å fungere. Det var ingen Internett-tilgang, så jeg kunne ikke se eksempler på bruk.

Så jeg ville ha forlatt denne virksomheten, men så, en vakker dag, begynte Word-filer å åpne seg sakte, og når de ble åpnet, begynte en slags feil å dukke opp. Jeg begynte å forstå - og fant ut at det oppstår en feil ved utføring av en makro på 20 linjer, som på mystisk vis havnet i alle dokumentene mine. Når jeg så på koden, innså jeg at det jeg så på ikke var noe mer enn et makrovirus som infiserer alle åpnede Word-filer og uten hell prøver å sende noen data over nettverket. (Dette var forresten første og siste gang jeg så et makrovirus - siden den gang har tusenvis av Excel- og Word-filer gått gjennom meg, og jeg har aldri sett et makrovirus i dem). Dette interesserte meg - hvis en makro kan samle inn data fra en datamaskin, kopiere seg selv til andre filer, og til og med sende noe til en annen IP-adresse, betyr det at du kan gjøre nesten hva som helst ved hjelp av makroer!

Og jeg begynte å mestre makroer - jeg leste den innebygde VBA-hjelpen, prøvde kodeeksemplene fra denne hjelpen, skrev enkle løkker (som jeg husket fra skolen), tegnet enkle skjemaer, etc. Jeg gjorde hver bruk av makroopptaket i Word, og optimaliserte den resulterende koden. (Jeg jobbet ikke med Excel da - jeg forsto ikke godt hva det kunne være nyttig for). Det nyttet lite – men jeg var interessert, pga Jeg har vært glad i programmering siden skolen. Etter hvert begynte arbeidet mitt å forenkles, selv om det tok mer tid å automatisere enn det ville ta å utføre alle handlingene manuelt.

En dag, i 2006 år, jeg trengte virkelig VBA-programmeringsferdigheter. På jobben var det nødvendig å lage (tegne i CorelDRAW) mange av samme type evakueringsplaner (dette er slike tegninger av lokaler med piler og spesifikke ikoner). Det var mulig å tegne dem for hånd, men for at resultatet skulle være i samsvar med GOST, var det nødvendig å observere forskjellige proporsjoner og avstander mellom elementene. Å flytte ikoner over arket, justere "etter øye" avstanden fra linjene og naboikonene, ble raskt lei. Og fortsatt var det nødvendig å justere alt, raskt tegne og vakkert koble de stiplede linjene, utføre prepress hver gang, etc. og så videre ... Som et resultat, etter å ha brukt 2 eller 3 måneder på å automatisere denne prosessen, har jeg oppnådd en reduksjon i tiden for å lage en tegning flere ganger. I tillegg var det hyggelig å se på ansiktene til kolleger når mirakler skjedde foran øynene deres - linjene ble tegnet og flyttet på selve skjermen, pilene ble justert og bøyd, alt blinket, og i løpet av et minutt dro jeg allerede ut en diskett fra datamaskinen, klar til å sendes til trykkeriet (med to kopier av filen klar for utskrift)

Det var sommer ute 2008 årets. Jeg hadde ingenting å gjøre, og jeg bestemte meg for å hjelpe med å løse problemer i Excel til folk som søker råd på forumene. Jeg kom raskt inn i det - det var hyggelig å høre takk fra folk som min "magiske knapp" sparte mange timer med samme type arbeid. I tillegg krevde hjelpen svært liten innsats – noen ganger var det nok å skrive 2-3 linjer med kode. Så begynte jeg å innse at jeg fortsatt kunne veldig, veldig dårlig i VBA og Excel, og begynte å studere og forstå løsningene som tilbys av mer erfarne kolleger.

Det tok 2 eller 3 år, hvor jeg hjalp alle på forumene, før jeg begynte å føle meg trygg på Excel. Først skrev jeg veldig enkle makroer, så mer komplekse. Et år senere begynte de å henvende seg til meg med bestillinger - da var jeg klar til å jobbe for en krone (fordi målet ikke var å tjene penger, men å hjelpe folk). Den første mer eller mindre seriøse ordren, som jeg tok et gebyr for, var et program for opptaksoffiserer - jeg måtte implementere en database i Excel. For 3 uker med pine og endringer (en student bestilte programmet, som selv ikke visste nøyaktig hva hun trengte) ble programmet skrevet - og jeg tjente rundt 3500 rubler på det. Siden den gang jobber jeg ikke med elever - det er ikke nok penger, ingen oppdragsbetingelser, mange forespørsler om omarbeid (fordi læreren ikke likte noe), og generelt sett er det ubehagelig å innse at programmet blir lansert bare 1 gang, og da vil ingen bruke den.

V 2009 år laget jeg et nettsted. Det kunne bare kalles et nettsted på et strekk - det bestod av én side (slik så det ut på den tiden). Som du forstår, kunne det ikke være noen fordel med en slik side - de som besøkte siden visste allerede hva jeg gjorde. Og jeg ville ha mer – for at siden skulle være nyttig, både for meg og de besøkende. Derfor måtte jeg raskt studere byggeplass - og takket være hjelp fra en venn fikk siden noen måneder senere motoren i form av CMS Drupal (selv ville jeg ikke ha mestret det). Jeg hadde ennå ikke funnet ut hva jeg skulle publisere på nettstedet, så jeg begynte å bruke det som en notatbok - for å publisere nyttige universelle makroer og funksjoner der slik at jeg ikke trengte å søke etter dem i forskjellige filer hver gang, huske når og til hvem jeg gjorde dette.

Mindre enn seks måneder senere begynte nettstedtrafikken å vokse. Det viste seg at makroene jeg la ut var interessante for mange, og dette ga meg et insentiv til å videreutvikle ressursen – jeg begynte å laste opp ferdige løsninger i form av Excel-filer og tillegg, ta mer hensyn til funksjonaliteten og strukturen til nettstedet. Samtidig begynte antallet bestillinger å vokse - besøkende på nettstedet så at mulighetene for makroer var uendelige, og de henvendte seg til meg med en forespørsel om å automatisere arbeidet deres. Men allikevel var det for få bestillinger til å seriøst vurdere programmering som inntektskilde - det kom 2-3 små bestillinger i måneden. Selv om de bestilte et relativt komplekst program, ga det ikke glede - jeg, av uerfarenhet, forhandlet umiddelbart om beløpet, og deretter, av min sjels vennlighet, gikk med på forskjellige modifikasjoner som var fraværende i den opprinnelige oppgaven for program. Som et resultat jobbet jeg i flere uker på ett program, og jeg tjente veldig lite - siden det i utgangspunktet ble antatt at veldig lite må gjøres.

Men denne tiden (nesten et år) var ikke bortkastet - jeg tjente ikke penger, men jeg fikk uvurderlig erfaring med å utvikle brukergrensesnitt (jeg måtte tegne inputskjemaer med hundrevis av felt), løse ikke-standard Excel-oppgaver (behandle nettsteder, jobbe med filer, bilder osv.), samtidig lære å forstå kundene og deres oppgaver fra et halvt ord (eh, du burde ha sett hvordan noen formulerer oppgaver for komplekse programmer i en setning på 10 ord .. .). Jeg hadde ikke blitt en telepatisk person ennå, men jeg begynte å gjette hva kunden virkelig ønsket og tilbød folk akkurat det de trengte (de fleste av dem vet ikke hva de vil ha når de ber om hjelp). Og alt ville være bra, hvis ikke mangelen på bestillinger (på den tiden begynte det å hjelpe folk på forumet å kjede seg - hver dag de samme spørsmålene, ingen vil bruke søket, og til og med freeloader-studenter blir overveldet).

Og jeg begynte å tenke på hvordan jeg kunne øke antall bestillinger - jeg ville at hobbyen min endelig skulle begynne å gi konkrete inntekter. Igjen måtte jeg treffe nettstedsbyggingen - for å mestre det grunnleggende innen SEO, design og nettstedsbygging generelt. Og en dag skjønte jeg hva som fortsatt manglet på siden - en stor knapp for å legge inn en bestilling. Uten å tenke to ganger ble denne knappen (som du nå kan se i øvre venstre hjørne av siden) i løpet av 5 minutter lagt til alle sidene på nettstedet. Resultatet lot ikke vente på seg – i løpet av en måned fikk jeg flere bestillinger enn hele året før.

Har kommet 2012 år. Antall bestillinger vokste til et slikt volum at jeg alene ikke kunne håndtere dem. Jeg begynte å overføre noen av bestillingene til kollegene mine (spesielt store og komplekse bestillinger), fordi jeg fortsatt ikke kan tjene alle pengene, og jeg vil egentlig ikke sitte ved skjermen i flere dager. Underveis, i hovedjobben min (fra 8.00 til 17.00 jobbet jeg som ingeniør hos en lokal internettleverandør), økte arbeidsmengden merkbart, og jeg sluttet å ha tid til å skrive makroer i arbeidstiden. Som et resultat var det ikke tid igjen til utviklingen av nettstedet - om kveldene hadde jeg bare tid til å rake noen av bestillingene, og uleste brev begynte å samle seg i posten.

Det var på tide å endre noe i livet mitt – å ta et valg mellom jobb og programmering. Og så, i midten av juli 2012, tok jeg dette valget - i hovedjobben min skrev jeg et oppsigelsesbrev, og bestemte meg for å vie meg til programmering (utvikle makroer for Excel). Siden den gang har jeg mer enn nok ledig tid, så jeg planlegger å begynne å utvide siden igjen og jobbe mer aktivt med bestillinger (for å utelukke situasjoner når kunder har ventet på makroene sine i flere uker).
Hva som kommer av alt dette - jeg vet ikke ennå, tiden vil vise. Jeg tror at etterspørselen etter makroer for Excel vil vedvare i minst 2-3 år til, så jeg vil ikke stå uten brød og smør.

Også i planene for nær fremtid er utvikling og publisering av shareware-tillegg for Excel (de første forsøkene på å skrive på dette feltet ga gode resultater).
Og så planlegger jeg å begynne å utvikle databaser (med webgrensesnitt), og gradvis gå over til å jobbe med webtjenester.

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

Og nå på gården allerede 2016 år. Til min glede har Microsoft ennå ikke droppet støtte for VBA i Excel, derfor fortsetter jeg å jobbe med dette området. Disse 4 årene har forandret livet mitt mye - inntekten min har økt flere ganger, jeg begynte å reise mye, og jeg hadde mindre tid til jobb. Antall bestillinger for makroer økte stadig, så jeg begynte å samarbeide med flere programmerere som jeg overførte bestillinger til da jeg ikke klarte meg selv på grunn av tidsmangel. Noen av kollegene mine (som jeg ga ordre om arbeid) forsvant over tid, mens andre tvert imot samarbeidet mer og mer aktivt med meg - og nå har jeg et team som løser eventuelle problemer (en kollega tar enkle makroer og lager dem raskt, en annen lager komplekse makroer ved å bruke ikke-standardløsninger, den tredje omhandler "møkkete" store bestillinger, der du må diskutere oppgaven i et par uker, og deretter gjøre den i en måned til, den fjerde spesialiserer seg på formler, den femte setter opp parsere osv. hver har sitt eget aktivitetsfelt).

Å finne et godt team var ikke en lett oppgave - selv om jeg selv ikke lette etter noen mye (halvparten av dem henvendte seg til meg for jobb, resten skrev jeg selv, fordi jeg kjente Excel fra alle på forumene som gode spesialister), ikke alle var i stand til å jobbe med dem i lang tid. Noen dukket sjelden opp på nettverket, og svarte ikke raskt nok på bestillinger, andre oppfattet arbeid mer som en hobby (hvis det plutselig ikke var noe ønske om å jobbe, kunne en slik person forsvinne i en uke, eller til og med en måned, uten varsel heller meg eller kunden). Ett skudd klarte til og med å kaste meg penger (tok flere bestillinger og forsvant uten å betale meg provisjon). Men alt dette er i fortiden - nå med meg er bare velprøvde gutter (som jeg har jobbet med i flere år), som tar bestillinger av enhver kompleksitet, og alltid bringer arbeidet til slutten.

Siden jeg klarte å bli kvitt "omsetningen" (et stort antall små bestillinger, selv om de gir gode inntekter, men tar opp 100% av tiden), begynte jeg å være mer oppmerksom på utvikling og promotering av universelle tilleggs- ins for Excel. Nå har jeg 9 slike tillegg i arsenalet mitt, men bare 5 er solgt med suksess: FillDocuments (mitt aller første arbeid, inntil nylig, var blant de ledende når det gjelder inntekt, og er i stabil etterspørsel, siden alt som kan være nyttig for brukere å fylle ut dokumenter er allerede implementert der) , PastePictures (solgt siden 2012, men begynte å få popularitet relativt nylig), Unification (for 3 år siden var det det mest komplekse av programmene mine), Lookup (den enkleste av mine tillegg -ons, som egentlig er en erstatning for VLOOKUP-formelen, men veldig populær blant brukere) og Parser (en universell parser for å samle inn data fra nettsteder og filer, den mest sofistikerte av programmene mine til dags dato - 17 600 linjer med kode). Angående parseren, tilbake i 2013 virket det for meg som en absolutt urealistisk idé å gjøre noe sånt (og jeg nektet kunder, da jeg snakket om umuligheten av å lage en universell løsning for nettsteder som Unification - prisbehandlingsprogrammer), men da var antallet bestillinger for sideparsere begynte å øke , og jeg bestemte meg for å prøve, noe jeg aldri angret på - inntektene fra løsninger basert på dette tillegget overgikk alle mine forventninger.

Men ikke alle programmene var vellykkede. Jeg nektet å selge ett program (YandexMarket) i det hele tatt - nettstedet endret seg for ofte, programmet krevde forbedringer, algoritmen for å finne de nødvendige dataene var ikke åpenbar, så dukket det opp en captcha, - og jeg bestemte meg for at det ikke var verdt å kaste bort tid på videreutvikling av programmet, tilbakeføring av pengene til flere kjøpere. Andre programmer, som BarcodeScanner, Labels, SearchText, kan ikke sammenlignes med de fem beste programmene, selv om de betalte ned tiden brukt på utvikling, og fortsetter å generere inntekter.

Med utviklingen av de ovenfor beskrevne universelle tilleggene ble den såkalte "motoren" til programmet dannet - et sett med makroer og grensesnittelementer som lar deg raskt lage en salgsklar løsning fra enhver idé. Til å begynne med var motoren nødvendig for å støtte oppdateringer (slik at brukeren kunne sjekke og installere oppdateringen med ett klikk), senere fikk den beskyttelsesfunksjonalitet (hackere begynte å ta hensyn til løsningene mine, siden etterspørselen etter dem vokste hvert år, og jeg måtte finne opp forskjellige ordninger for beskyttelse mot ulovlig bruk, til tross for at den innebygde kodebeskyttelsen i Excel er ubrukelig, fordi den kan fjernes på et par sekunder). Underveis måtte jeg gjøre funksjonaliteten med å aktivere og oppdatere programmer på sidesiden, - jeg begynte å forstå litt om PHP og MySQL, lage skript som samhandler med programmotoren.

De siste par årene har mesteparten av tiden min gått til å gi teknisk støtte (det er flere og flere kjøpere av programmer hvert år), og på utviklingen av parser-tillegget som det mest populære og lovende av mine løsninger ( Jeg legger til ny funksjonalitet, publiserer eksempler på tilpassede parsere). Programmeringsnivået mitt, takket være parseren og den nye programmotoren, har vokst merkbart - selv om koden min for 5 år siden var ganske høy kvalitet og fungerte uten feil, men nå tar jeg en mer ansvarlig tilnærming til utformingen av koden, møtte behovet for mange års støtte for mine tilleggsprogrammer med mange tusen linjer med kode. Nå, underveis med introduksjonen av en ny (flerspråklig) motor i alle tillegg, refaktoriserer (oppdaterer) jeg koden, noe som gjør den enklere, mer forståelig og universell. Forresten, om flerspråklighet - jeg bestemte meg for å selge tilleggene mine utenfor CIS, og laget til og med et eget nettsted (for å bare sette universelle tillegg der, med et grensesnitt og beskrivelse på forskjellige språk), men så langt har jeg jeg er for lat til å gjøre dette. Kanskje en dag vil de nå dette punktet (foreløpig er det nok kjøpere fra CIS)

Planene mine for fremtiden (fra og med september 2016) er å utvikle retningen for å analysere nettsteder i Excel, og til slutt lage videoinstruksjoner for programmene mine (jeg er ikke for lat til å legge til ny funksjonalitet i programmet i et par uker på rad, mens brukere og de ikke kan finne ut av det, på grunn av mangel på fullverdig hjelp. Vel, jeg liker ikke å spille inn videoer))
Vel, det er på tide å gå inn på det internasjonale markedet, siden alle programmene mine har blitt flerspråklige (selv om oversettelsen så langt bare er på engelsk, og da bare delvis)

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

Bruksanvisning

Start Microsoft Office Excel. Opprett et nytt dokument om nødvendig. For å gjøre dette, trykk Ctrl + N eller utvide "Fil"-menyen og velg "Ny ...". Klikk deretter på "Blank Book"-koblingen i "Book Creation"-panelet.

Åpne et Visual Basic Editor-vindu. For å gjøre dette, trykk Alt + F11 eller velg Visual Basic Editor fra Makro-delen av Verktøy-menyen. Der vil du se et prosjektpanel som viser et tre med objekter for denne Excel-arbeidsboken, samt skjemaene, modulene og klassemodulene den inneholder.

Lag former om nødvendig. I hovedmenyen klikker du på Sett inn og deretter Brukerskjema. Et nytt element legges til i Skjemadelen i prosjektpanelet. Når skjemaet er opprettet, åpnes det automatisk. Bruk musen til å dra kontroller fra verktøykassen til skjemavinduet. Endre størrelse og plassering. Etter å ha valgt med musen, endre egenskapene deres i Egenskaper-panelet. Lagre former ved å trykke Ctrl + S.

Lag så mange moduler eller klassemoduler som nødvendig. For å gjøre dette, velg modul- eller klassemodulelementene i Insert-delen av hovedmenyen. Åpne koderedigeringsvinduene for de nødvendige modulene eller skjemaene ved å dobbeltklikke på de tilsvarende elementene i prosjektvinduet.

Legg til klasseerklæringer i klassemoduler. Definer dem ved å bruke nøkkelordet Class:
Klasse CSampleClass
Slutt klasse

Legg til metoder til klassedefinisjoner, og funksjons- og prosedyrestubber til moduler. Funksjoner deklareres ved hjelp av funksjonsnøkkelordet, etterfulgt av et navn og et sett med parametere, atskilt med kommaer, omsluttet av parentes. For eksempel:
Funksjon SampleFunction (a, b, c)
Avslutt funksjon
Tilsvarende (bare ved å bruke Sub-nøkkelordet) erklæres prosedyrer:
Undereksempelprosedyre (a, b)
End Sub

Deklarer klassemedlemmer, samt globale og lokale (i funksjoner og metoder) variabler. For å gjøre dette, bruk Dim ... As-leddet (variabeltypen er angitt etter As nøkkelordet). For eksempel kan deklarasjonen av en variabel oWB som lagrer en referanse til et bokobjekt se slik ut:
Dim oWB Som Excel.Workbook
Ved å spesifisere dimensjonen i parentes, kan du deklarere en matrise:
Dim aWBooks (10) Som Excel.Workbook

Implementer algoritmen til programmet ved å gjøre endringer i koden for funksjoner, prosedyrer, klassemetoder. Bruk Visual Basic-kontrollstrukturer for å kontrollere flyten av utførelse. Arbeid med dine egne datastrukturer, innebygde skjemaobjekter og innebygde Excel-objekter.

Kilder:

  • hvordan lage et dokument i excel

Visual Basic er et miljø for programvareutvikling, som er utviklet av Microsoft og inkluderer et programmeringsspråk. Det arvet stilen og delvis syntaksen til forgjengeren, BASIC-språket. Visual Basic-utviklingsmiljøet inkluderer verktøy for å jobbe med brukergrensesnittdesign.

Du vil trenge

  • - en datamaskin;
  • - installert Visual Studio-program;
  • - programmeringsferdigheter.

Bruksanvisning

Start Visual Studio-programmet, lag prosjekt for å fullføre opprettelsen av Visual Basic-programmet. For å gjøre dette, velg "Fil" -menyen, og i den "Ny prosjekt". I dialogboksen velger du alternativet "Windows Application" og klikker på "OK". Et skjema åpnes i grensesnittet. Misligholde prosjekt vil få navnet WindowsApplication1. Et Visual Basic-prosjekt er hvor delene av programmet lagres og organiseres. Formen som åpner seg ved skapelse prosjekt a, er vinduet som vises når programmet starter. Følgelig, hvis det er flere vinduer i programmet, så inn prosjekt Den kan inneholde flere former.

Legg til kontroller fra verktøykassen i skjemaet. Den ligger i venstre del av vinduet, inneholder flere faner, inkludert "Alle skjemaer", "Komponenter", "Data". Hver fane har et spesifikt sett med operasjoner som representerer kontroller eller komponenter som kan legges til applikasjonen ved opprettelse. prosjekt og i Visual Studio.

Velg verktøykassen, klikk på fanen "Alle skjemaer", dra "Panel"-kontrollen til øvre venstre hjørne av skjemaet. Flytt på samme måte til prosjekt av Visual Basic-programmet et "Tekstområde"-element. For å endre posisjonen, dra den med venstre museknapp til ønsket plassering på skjemaet.

Legg til knapper til høyre for tekstblokken på samme måte. Deretter velger du elementet som tilsvarer variasjonen prosjekt men for eksempel "Nettleser" og plasser den under panelet. Hver kontroll du legger til inneholder spesialkode som bestemmer utseendet, samt oppgavene som kontrollen utfører. Du kan skrive din egen kode, for eksempel for en knapp for å endre utseendet, legge til en spesifikk oppgave, men dette er en møysommelig prosess. Det er mye lettere å få til dette med redigering prosjekt og i Visual Basic.

Tilpass deretter utseendet til programmet, legg til koden som definerer oppførselen deres. Legg til egendefinerte kontroller etter behov. Utfør deretter en prøvekjøring og test programmet, om nødvendig, gå tilbake til konstruktøren prosjekt og Visual Basic og fikse feilene.

Relaterte videoer

Hovedformålet med en Microsoft Office-applikasjon er å jobbe med data i regneark. Vanligvis er dette numeriske data, men noen ganger inneholder celler også tekstkonstanter. I tillegg er teksten også brukt i utformingen av tabeller, så behovet for å organisere overføringen etter ord oppstår fra tid til annen når du arbeider og i et regnearkredigeringsprogram.

Bruksanvisning

Start Excel, legg inn ønsket dokument i det og gå til de cellene du må angi alternativet for å bryte tekst med ord.

Å skrive koden til prosedyrene dine og redigere makroer gjøres i Visual Basic-redigeringsprogrammet, som er tilgjengelig fra "Utvikler"-fanen. Denne fanen er skjult som standard. For å vise den må du gjøre følgende:

For Excel 2007... Gå til Excel-alternativer ved å bruke Office-knappen, og i "Grunnleggende alternativer for å jobbe med Excel" merk av i boksen "Vis utviklerfanen på båndet".

For Excel 2010 og 2013... I Excel-alternativene må du velge "Tilpass båndet"-elementet og i hovedfanekategorien sette et hakemerke for "Utvikler"-fanen.

Vi introduserer Visual Basic Editor i Excel

For å komme inn i koderedigeringsprogrammet, klikk på utviklerfanen i kodeområdet på Visual Basic-knappen.

Etter det vil et nytt VBA-redigeringsvindu vises på skjermen. Vurder nedenfor noen av elementene som du kanskje trenger helt i begynnelsen.

#2 på bildet... Knapper for å starte, stoppe og avbryte kjøring av kode. Under oppstart begynner koden for prosedyren som markøren er plassert på å kjøre. Disse knappene dupliseres av "Kjør"-fanen i hovedredigeringsmenyen.

#3 på bildet... Vinduet for åpne arbeidsbøker VBA prosjektstyring (Project Explorer) og knappen som viser dette vinduet.

#4 på bildet... En knapp som viser egenskapsvinduet for objektene valgt i vindu #3 og tilpassede skjemaelementer (arbeid med objekter, deres egenskaper og metoder vil bli diskutert i en egen artikkel i denne kategorien).

#5 på bildet... Objektleser-knapp. Den beskriver alle objekter som er tilgjengelige for arbeid, deres egenskaper og metoder.

Knapper #3, #4 og #5 er også tilgjengelige på "Vis"-fanen i redaktørens hovedmeny. Der kan du også ringe andre nyttige vinduer som ikke vil bli diskutert i dette materialet.

Skrive en enkel prosedyre i Visual Basic for Application

Koden til enhver prosedyre (subrutine) er plassert i modulen, så du må legge den til for å starte programmeringen. Velg "Modul"-elementet på "Sett inn"-fanen i hovedmenyen for VBA-redigering. Et nytt kodevindu skal vises i hovedredigeringsområdet (bildet har en grå bakgrunn) - Boknavn - modulnavn (Kode), og i prosjektstyringsvinduet (nr. 3) vil en nyopprettet modul bli lagt til treet i valgt prosjekt.

Legg til følgende kode i modulen:

Sub MyProcedure () MsgBox "Hei bruker!" End Sub

Denne prosedyren viser en dialogboks med meldingen "Hei bruker!" Test den ved å trykke på Rub Sub-knappen (# 2 på bildet) eller ved å kalle den som en vanlig makro.

La oss nå se nærmere på den gitte koden.

Enhver prosedyre begynner med en erklæringslinje som består av operatøren Under(forkortelse for Subprogram) etterfulgt av navnet på subrutinen. Navnet er etterfulgt av en liste med argumenter, omsluttet i parentes.

Det er noen begrensninger for navnet: det må begynne med en bokstav og må ikke inneholde mellomrom og de fleste spesialtegn.

Dette eksemplet bruker ikke argumenter, så tomme parenteser er spesifisert.

Den neste linjen viser dialogen på skjermen ved hjelp av funksjonen MsgBox... Meldingen som sendes til den må inneholde tekst, så den er omgitt av doble anførselstegn.

Den siste linjen inneholder operatøren Slutt etterfulgt av et nøkkelord Under og rapporterer at prosedyren er fullført.

Lære å bruke objektleseren

Funksjonen ble nevnt ovenfor MsgBox, men dets muligheter er ikke fullt ut vurdert. Dette er et godt tidspunkt å lære hvordan du bruker objektleseren (# 5 i VBA-redigeringsvinduet).

Trykk på knappen på panelet eller trykk på F2-tasten for å vise objektleseren:

Nedtrekksliste nr. 1 inneholder en liste over alle tilkoblede biblioteker. Bruk den bare hvis du vet nøyaktig hvilket bibliotek klassen, funksjonen osv. tilhører. (du kan koble til eller fra hvilket som helst av de tilgjengelige bibliotekene ved å velge "Referanser"-elementet på "Verktøy"-fanen i hovedmenyen til VBA-editoren).

Merk: Biblioteker gir standard og avanserte funksjoner for arbeid med Excel-objekter (celler, ark, arbeidsbøker, etc.), filsystem, bilder, databaser og andre.

Felt №2 er beregnet på å søke etter egenskaper, metoder, klasser av tilkoblede biblioteker.

Søkeresultatene vises i felt #3 og er en tabell med tre kolonner: bibliotek, klasse og klassemedlem.

Felt #4 inneholder en liste over alle klasser valgt i felt #1 i bibliotekene.

Område # 5 inneholder en liste over alle medlemmer av klassen valgt i felt # 4.

Felt #6 inneholder en hurtigreferanse til det uthevede søkeresultatet, klassen eller klassemedlemmet.

Merk: biblioteker, klasser, funksjoner og prosedyrer (metoder), egenskaper, etc. i objektleseren har forskjellige betydninger, representert av et sett med ikoner. Kort informasjon (felt nr. 6) indikerer alltid hvilken type element som er uthevet. Vær oppmerksom på dette for å kunne navigere bedre i arbeid med objekter i fremtiden.

Merk: Konseptet med et objekt er ikke relevant for emnet for denne artikkelen og vil bli diskutert i følgende materialer.

La oss nå finne MsgBox-funksjonen ved å bruke objektleseren. I søkefeltet (nr. 2), skriv inn navnet og klikk på knappen med bildet av kikkerten. I søkeresultatboksen velger du raden med verdien MsgBox i "Medlem"-kolonnen. Kort informasjon dukket opp i felt 6, og informerte oss om at det valgte medlemmet er en funksjon, har en liste med argumenter, returnerer et resultat av typen VbMsgBoxResult, tilhører Interaction-klassen til VBA-biblioteket.

For full hjelp, klikk på spørsmålstegn-knappen. Avhengig av versjonen av Excel, vil du bli omdirigert til en hjelpefil eller et nettsted med dokumentasjon fra Microsoft.

Utforsk mulighetene til MsgBox-funksjonen selv.

VBA prosedyrereferanse

Når du fordyper deg i VBA-språket, vil koden din bli mer kompleks og ha mer fleksibel logikk. Du vil ofte måtte innse at enkelte deler av programmet vil duplisere koden helt eller delvis. Disse situasjonene bør unngås da de gjør prosedyrene vanskelige å forstå og vanskelige å feilsøke.

For en bedre forståelse, vurder et eksempel (eksemplet bruker pseudokode):

Beginning_Procedures Enhver kode Første linje med duplikatkode Enhver kode Siste linje med duplikatkode Enhver kode Første linje med duplikatkode Enhver kode Siste linje med duplikatkode Enhver kode End_Procedure

Flytt dupliserte kodeseksjoner til separate prosedyrer og koble til dem fra hovedprosedyren:

Main_Procedure_Start Enhver kode Duplicate_code_procedure reference Enhver kode Duplicate_code_procedure reference Enhver kode End_Main_Procedure Duplicate_code_Procedure_begin Enhver kode Duplicate_code_Procedure_End

Ring Makro1 "Neste linje er identisk med den forrige. Makro1

Hvis materialene på siden hjalp deg, vennligst støtte prosjektet slik at vi kan utvikle det videre.

Du har ikke nok rettigheter til å kommentere.