Visuellt grundspråk för excel. Komma igång med programmering i Excel

Varje användare har stött på det faktum att ibland i Excel finns det inga lämpliga verktyg som skulle möta behoven. Med allt överflöd av Excel-funktioner är det ibland omöjligt att automatisera lösningen av vissa uppgifter, eftersom det inte finns någon gräns för perfektion. Den idealiska lösningen är att låta användaren skapa sina egna specifika verktyg. Detta är vad makron skapades för.

Skriva makron i Excel

Excel-makrokod skrivs i Visual Basic for Application (VBA) och exekveras av applikationsverktyget som den är kopplad till. De flesta av dessa verktyg är inte tillgängliga på fönsternivå i Excel-programmet. Hur man skriver ett makro.

Låt oss nu visa med exempel information om hur man skriver, redigerar och exekverar makrokod.

Så här skriver du ett makro:


Notera. Om det inte finns någon "DEVELOPER"-flik i huvudmenyn, måste den aktiveras i inställningarna: "FILE" - "Options" - "Customize Ribbon". I den högra listan "Huvudflikar:" aktivera kryssrutan "Utvecklare" och klicka på OK-knappen.



Makrofunktioner i Excel

Makron låter dig automatisera processerna för att arbeta med dokument och inte bara ... De kan nästan samtidigt köra tusentals verktyg i en operation (även med ett musklick). Därmed utökas möjligheterna att arbeta med programmet.

Med hjälp av makron kan användaren skapa sitt eget verktyg, som han saknar i Excel-programmets arsenal. Till exempel när du automatiskt behöver välja varannan rad med ett klick. Eller så måste du samtidigt skapa ett visst antal kopior av ett visst kalkylblad på en gång. Listan över användarbehov för att automatisera arbetsprocesser är oändlig.

Om det inte vore möjligt att skapa makron i alla program som ingår i MS Office-paketet. Den uppsättningen operationer i processen med rutinarbete skulle användarna behöva utföra manuellt (välj en rad genom att klicka på varannan rubrik med musen eller kopiera klistra in ett ark i taget). Manuellt arbete leder i bästa fall till förlust av mycket tid, och i värsta fall leder till fel eller till och med förlust av värdefull data.

Möjligheten att skapa makron och automatisera arbetsflöden sparar ditt arbete från slöseri med tid och fel. Låt oss sedan titta på hur man skapar ett makro som exakt och automatiskt utför rutinarbete med ett klick. Vi kommer också att överväga var i en Excel-arbetsbok du kan skapa och lagra makron. Hur man lanserar och utför dem, samt hur man optimerar dem så mycket som möjligt för dina behov.

Excel tillhandahåller en stor och riklig arsenal av verktyg för att lagra och bearbeta stora mängder information med data. Även om för det mest mångsidiga analytiska programmet Excel är datalagring i sig mindre intressant än förmågan att bearbeta, strukturera och analysera dem med en presentation i rapporter. För dessa ändamål tjänar det starkaste analysverktyget för databearbetning som Pivot Tables. Men det kan förbättras ytterligare med hjälp av makron. Och då känner pivottabellernas möjligheter inga gränser.

Excel Sheet Function Reference är en Excel-arkfunktionsreferens i Windows Hjälp .chm-format. Filen innehåller en komplett lista över Excel-arkfunktioner på ryska och engelska och är försedd med exempel på användning och tillämpning av funktioner. Guiden kan vara användbar för både nybörjare och mer erfarna användare.

Filformat:.chm

Funktionsreferens för Excel-ark(532,2 KiB, 15 462 nedladdningar)

VBA-programmering i MSOffice är en mycket bra handledning för nybörjare att programmera i VBA. Boken är skriven av en certifierad Microsoft Office-lärare på ett lättförståeligt språk, försedd med kompetenta kodlistor. Handledningen hjälper dig att lära dig programmering inte bara i Microsoft Excel, utan också i Microsoft Word och Microsoft Project.

Filformat:.pdf

VBA-programmering i MS Office(4,1 MiB, 26 659 nedladdningar)
Du har inte behörighet att ladda ner den här filen. Du kanske inte är registrerad på sidan. Registrera dig och försök ladda ner igen.

Walkenbach J. Professionell programmering i VBA Excel 2003 - kanske den mest populära läroboken för nybörjare. Många började med honom. Det är sant att i den tryckta versionen av denna handledning används listor över koder, som inte alltid behöver tas för givna - väldigt ofta finns det stavfel och i stället för engelska tecken finns det ryska. Därför skulle jag personligen råda dig att inte kopiera koderna direkt från boken, utan att skriva om dem manuellt i VBA-editorn. Så det kommer att komma ihåg bättre och rädda dig själv från att söka efter misstag.

Filformat:.pdf

Office 2007. Handledning - Om du bestämmer dig för att titta närmare på gränssnittet och huvudfunktionerna i Microsoft Office-applikationer, så råder jag dig att läsa den här boken. Den beskriver allt som behövs för framgångsrikt arbete i sådana applikationer som: Excel, Word, Outlook, Power Point, Access. Efter att ha läst kommer du att kunna skapa vackra presentationer och informativ grafik, en lärare för att skapa uppgifter i Outlook och databaser i Access.

Filformat:.pdf

Rysk hjälp för Visual Basic for Application(VBA) - Detta är den officiella hjälpen för Visual Basic for Application(VBA), som ingick i paketet Microsoft Office 97. Då var hjälpen fortfarande russifierad. Det är ingen hemlighet att nu i alla versioner av kontoret är VBA-hjälp endast tillgänglig på engelska, oavsett lokalisering. Och alla kan inte läsa borgerligt (även acceptabelt, som praktiken visar).
Jag vill genast varna dig – för. hjälpen är avsedd för en ganska gammal version, inte alla metoder och egenskaper beskrivs i den. Men de flesta av dem beskrivs fortfarande och jag hoppas att denna referens kommer att hjälpa dig i den inledande studien av VBA.

Filformat:.hjälpfil

ENG_VBA.zip(1,1 MiB, 9 164 nedladdningar)
Du har inte behörighet att ladda ner den här filen. Du kanske inte är registrerad på sidan. Registrera dig och försök ladda ner igen.

Objekt Shell_RegExp och så vidare - en samling exempel på att arbeta med sådana objekt som: Shell, RegExp, FileSystemObject, WshShell, Dictionary, WshNetwork, WScript, WScript-konstanter och funktioner. Alla exempel är strukturerade i sektioner och är gjorda som referens för egenskaperna och metoderna för vart och ett av objekten. Det är väldigt bekvämt om du inte använder dessa föremål särskilt ofta i ditt arbete och något glöms bort.

Förutom tips om hur man lär sig att skriva VBA-makron för Excel, kommer jag att berätta min historia – hur jag lärde mig att programmera i VBA.

Allt började under förra seklet 1993 år när jag gick i skolan. På datavetenskapslektionerna, i vår klass, fanns det monsterdatorer som hette Corvette, och vi skrev enkla program på dem i BASIC. Dessa datorer skilde sig från de "normala" (IBM-kompatibla) ganska märkbart - de hade en monokrom skärm, det fanns ingen hårddisk eller diskettenheter alls, och det enda som startade på den (automatiskt, efter laddning) var Grundläggande språktolk.

Egentligen visade jag intresse för programmering tidigare - vid 9 års ålder, när jag i tidningen "Modeler-constructor" för 1988 (som jag läste regelbundet, från pärm till pärm) såg några maskinkoder för datorn "Specialist" . Jag var då väldigt intresserad av möjligheten att köra in några bokstäver och siffror i datorn för att få den att göra som jag vill. Tyvärr, den ekonomiska situationen för mina föräldrar vid den tiden lämnade mycket att önska, och köpet av något sken av en dator var uteslutet. Så jag hade roligt när jag kopierade dessa koder från en journal till en anteckningsbok, i hopp om att jag en dag ska ha en dator och att jag ska kunna styra den :)

Eftersom en hemdator på den tiden var en lyx (bara ett fåtal hade Spectrums hemma, och någon hade turen att få en dyr IBM PC 286), behärskade jag Basic uteslutande i skolan, ibland dröjde jag kvar efter skolan. Skolans läroplan förutsåg bara två års studier av ämnet "Datavetenskap" (årskurs 10 och 11), men sedan barnsben har jag varit intresserad av all slags elektronik, så jag började gå i klasser från årskurs 8 och läste den enda instruktionen bok om Corvette där (här är den här boken, som min väg till programmering började med, den finns också i PDF), och försöker komponera enkla program. Snart började läraren släppa in mig framför huvuddatorn (endast den hade möjlighet att spara program på en 5,25" diskett - och även då var jag tvungen att arbeta hårt för detta) - och mina program blev mycket mer komplicerade. En gång lyckades jag till och med implementera pokerspelet med ett grafiskt gränssnitt (det visade sig ungefär 2000 rader kod) - detta trots att Basic-tolken endast tillät tecken och grafiska primitiver att visas på skärmen.
Som ett resultat av skolans slut ( 1996 år) Jag använde skickligt cykler och hade viss erfarenhet av att kompilera algoritmer.

När det gäller algoritmer gör denna term mig fortfarande allergisk. När jag gick i skolan, på föreläsningar om datavetenskap (jag studerade ganska bra, och vi, vinnarna av alla typer av olympiader, skickades för ytterligare utbildning i högre matematik och datavetenskap till en deltidsskola vid Ural State University ), var vi tvungna att skriva algoritmer i någon form av pseudokod (blandningar av ryska med Turbo Pascal). Eftersom jag låg märkbart efter mina kamrater i programmering (de studerade på IBM-kompatibla datorer, där det fanns just denna Pascal och mycket mer, och jag, förutom BASIC, inte visste och såg ingenting), var det väldigt svårt att behärska syntaxen för det algoritmiska språket. Dessutom förstod jag inte (och förstår fortfarande inte) varför jag behöver lägga en timme på att skriva en algoritm för ett enkelt program, om du bara kan öppna en editor och skriva några rader kod (för mig, som kan engelska väl, syntaxen för BASIC-språket var mycket tydligare än denna kryptiska algoritmiska pseudokod). Det är inget snack om flödesscheman alls - som jag minns institutet, där vi tvingades rita flödesscheman (på flera ark i A4-format) för de enklaste programmen på 10 rader, förstår jag inte längre hur lusten att lära sig programmering inte kan försvinna efter allt detta...

Efter att ha lämnat skolan, på institutet, studerade jag Turbo Pascal lite, där min programmeringsutbildning slutade i ett decennium (det fanns ingen dator hemma och på jobbet), och jag glömde nästan allt som jag studerade i datavetenskap.
Dock i 2004 år, på mitt arbete, beslutade myndigheterna äntligen att ersätta skrivmaskinen (som jag redan mycket skickligt slog nycklarna på) med en enkel dator (det var en Pentium-1 med 64 megabyte RAM och Windows 98). Med tanke på att jag såg Windows för första gången var jag tvungen att lära mig att arbeta på en dator från grunden.

Jag bemästrade datorn snabbt, eftersom. redan den andra dagen kraschade Windows efter ett misslyckat försök att överklocka processorn, och jag var tvungen att omedelbart bemästra ominstallationen av operativsystemet och programmen. Personen som hjälpte mig att installera operativsystemet och grundläggande program den första dagen av min bekantskap med datorn kunde inte hjälpa mig konstant. Han lämnade åt mig Windows- och Office-distributioner, ett par diskar i olika verktyg, varefter han förklarade för mig hur man kör in och formaterar text i Word, hur man öppnar och sparar filer via programmenyn, och gick därifrån och önskade mig lycka till . Jag hade inget annat val än att bemästra systemet "slumpmässigt".

Vilken lycka (efter skrivmaskinen) var möjligheten att spara och redigera utskrivna dokument ... och jag skämdes inte alls över att Word tog cirka 20-30 sekunder att starta (och CorelDRAW laddades i ett par minuter). Datorn blev min huvudsakliga hobby - på ett par månader behärskade jag huvudprogrammen, ett halvår senare petade jag runt i registret med power and main, återställde det trasiga Windows (den som kommer ihåg Win98 kommer att förstå mig), längs vägen behärskade datorarkitekturen (jag var ständigt tvungen att peta in minnesmoduler, ansluta ytterligare hårddiskar, etc.)

Mitt jobb var att förbereda olika dokument (handlingar, order, etc.), och jag började fundera på hur jag skulle förenkla det (jag gillar inte att göra samma sak varje dag). Nästan omedelbart uppmärksammade jag "Visual Basic Editor"-objektet i Microsoft Word-menyn och fick se vilken sorts best det var. Jag petade runt, tittade på den inbyggda hjälpen, men förstod lite. Denna Basic var inte alls som den jag studerade i skolan. Jag kom på att du kan rita formulär med knappar och textfält, men jag förstod fortfarande inte hur jag skulle få det att fungera. Det fanns ingen internetåtkomst, så jag kunde inte titta på användningsexempel.

Så jag skulle ha övergett den här verksamheten, men så, en vacker dag, började Word-filer att öppnas långsamt, och något slags fel började dyka upp när de öppnades. Jag började förstå - och upptäckte att felet uppstår när man kör ett makro på 20 rader, som mystiskt hamnade i alla mina dokument. När jag tittade på koden insåg jag att framför mig fanns inget annat än ett makrovirus som infekterade alla Word-filer som öppnades och utan framgång försökte skicka data över nätverket. (Det här var förresten första och sista gången jag såg ett makrovirus - sedan dess har tusentals Excel- och Word-filer passerat mig, och jag har aldrig sett makrovirus i dem). Detta intresserade mig - om ett makro kan samla in data från en dator, kopiera sig själv till andra filer och till och med skicka något till en annan IP-adress, så kan du med hjälp av makron göra nästan vad som helst!

Och jag började bemästra makron - jag läste den inbyggda VBA-hjälpen, provade kodexempel från denna hjälp, skrev enkla loopar (som jag kom ihåg från skolan), ritade enkla former, etc. Med makt och huvud använde jag inspelningen av makron i Word, för att optimera den resulterande koden. (Jag arbetade inte med Excel då - jag förstod inte riktigt vad det kunde vara användbart för). Detta gav liten fördel - men det var intressant för mig, eftersom. Jag har hållit på med programmering sedan gymnasiet. Så småningom började mitt arbete att förenklas, även om det tog mer tid att automatisera än det skulle ta att manuellt utföra alla åtgärder.

En dag, in 2006 år behövde jag verkligen VBA-programmeringskunskaper. För arbetet var det nödvändigt att skapa (rita i CorelDRAW) en hel del av samma typ av evakueringsplaner (dessa är ritningar av rum med pilar och specifika ikoner). Det var möjligt att rita dem manuellt, men för att resultatet skulle överensstämma med GOST var det nödvändigt att observera olika proportioner och avstånd mellan elementen. Att flytta runt ikonerna på arket, justera avståndet från linjerna och närliggande ikoner "med ögat", blev snabbt trött. Och jag var också tvungen att anpassa allt, rita snabbt och vackert koppla ihop de prickade linjerna, prepress varje gång, och så vidare. etc. Som ett resultat, efter att ha spenderat 2 eller 3 månader på att automatisera denna process, har jag uppnått en minskning av tiden för att göra en ritning med flera gånger. Dessutom var det trevligt att titta på kollegornas ansikten när mirakel hände framför deras ögon - linjerna ritades och flyttades på skärmen av sig själva, pilarna justerade och böjde, allt flimrade, och på en minut drog jag mig redan ut en diskett från datorn, redo att skickas till tryckeriet (med två exemplar av filen redo för utskrift)

Det var sommar ute 2008 årets. Jag hade inget att göra, och jag bestämde mig för att hjälpa människor som söker råd på forumen med att lösa problem i Excel. Jag blev snabbt involverad i det - det var trevligt att höra tack från människor för vilka min "magiska knapp" sparade många timmar av samma typ av arbete. Dessutom krävde hjälpen väldigt lite ansträngning – ibland räckte det med att skriva 2-3 rader kod. Sedan började jag förstå att jag fortfarande kan väldigt, väldigt dåligt i VBA och Excel – och började lära mig, förstå de lösningar som erbjuds av mer erfarna kollegor.

Det tog 2 eller 3 år, under vilka jag hjälpte alla på forumen, att börja känna självförtroende i Excel. Först skrev jag väldigt enkla makron, sedan mer komplexa. Ett år senare började de kontakta mig med beställningar - då var jag redo att jobba för en slant (eftersom målet inte var att tjäna pengar, utan att hjälpa människor). Den första mer eller mindre allvarliga beställningen, som jag tog betalt för, var ett program för anställda i urvalskommittén - jag var tvungen att implementera en databas i Excel. Under 3 veckors plåga och förändringar (en student beställde programmet, som själv inte visste exakt vad hon behövde), skrevs programmet - och jag tjänade cirka 3 500 rubel på det. Sedan dess har jag inte arbetat med elever - det finns inte tillräckligt med pengar, det finns inga referensvillkor, många förfrågningar om ändring (eftersom läraren inte gillade något), och i allmänhet är det obehagligt att inse att programmet kommer bara att lanseras en gång, och då kommer ingen att använda det.

I 2009 år gjorde jag en hemsida. Det var en sträcka att kalla det en sajt – den bestod av en sida (så här såg den ut på den tiden). Som du förstår kunde det inte vara någon nytta av en sådan sida - de som besökte sidan visste redan vad jag gjorde. Men jag ville ha mer – att sajten skulle gynna både mig och dess besökare. Därför var jag brådskande tvungen att studera platsbyggande, och tack vare hjälp av en vän, några månader senare skaffade sajten en motor i form av CMS Drupal (jag skulle själv inte kunna bemästra detta). Jag hade inte kommit på vad jag skulle publicera på sajten än, så jag började använda den som en anteckningsbok - publicerade användbara universella makron och funktioner där så att jag inte behövde leta efter dem i olika filer varje gång, komma ihåg när och till vem jag gjorde detta.

På mindre än sex månader började webbplatsens trafik växa. Det visade sig att de makron jag la upp var intressanta för många och det gav mig ett incitament att vidareutveckla resursen – jag började lägga upp färdiga lösningar i form av Excel-filer och tillägg, ägna mer uppmärksamhet åt webbplatsens funktionalitet och struktur. Samtidigt började antalet beställningar växa - webbplatsbesökare såg att möjligheterna med makron var oändliga och vände sig till mig med en begäran om att automatisera sitt arbete. Men hur som helst, det var för få beställningar för att seriöst överväga programmering som en inkomstkälla - det kom 2-3 små beställningar per månad. Även om de beställde ett relativt komplext program väckte det ingen glädje - av oerfarenhet kom jag genast överens om beloppet och gick sedan, av min själs vänlighet, med på olika förbättringar som inte fanns i det ursprungliga uppdraget för program. Som ett resultat av detta arbetade jag i veckor på ett program och tjänade väldigt lite - eftersom det ursprungligen var tänkt att det var väldigt lite att göra.

Men den här tiden (nästan ett år) var inte bortkastad - jag tjänade inga pengar, men jag fick ovärderlig erfarenhet av att utveckla användargränssnitt (jag var tvungen att rita indataformulär med hundratals fält), lösa icke-standardiserade uppgifter för Excel (webbplats bearbeta, arbeta med filer, bilder etc.), samtidigt lära sig att förstå kunder och deras uppgifter från ett halvt ord (äh, du borde ha sett hur vissa människor formulerar uppgifter för komplexa program i en mening med 10 ord . ..). Jag har ännu inte blivit telepat, men jag började gissa vad kunden verkligen vill ha, och erbjöd människor precis vad de behöver (de flesta vet inte vad de vill ha när de ber om hjälp). Och allt skulle vara bra, om inte bristen på beställningar (vid den tiden blev det irriterande att hjälpa människor på forumet - varje dag samma frågor, ingen vill använda sökningen, och till och med freeloader-studenter övervinner).

Och jag började fundera på hur jag skulle öka antalet beställningar - jag ville att min hobby äntligen skulle börja ge konkreta inkomster. Återigen var jag tvungen att gå till webbplatsbyggandet - för att behärska grunderna i SEO, design och webbplatsbyggande i allmänhet. Och en dag insåg jag vad som fortfarande saknades på sajten - en stor knapp för att lägga en beställning. Utan att tänka två gånger lades den här knappen (som du nu kan se i det övre vänstra hörnet av sidan) till på alla sidor på sidan inom 5 minuter. Resultatet lät inte vänta på sig – inom en månad fick jag fler beställningar än under hela föregående år.

Har kommit 2012 år. Antalet beställningar växte till en sådan volym att det var omöjligt för mig att bemästra dem ensam. Jag började överföra en del av beställningarna till mina kollegor (särskilt stora och komplexa beställningar), eftersom jag fortfarande inte kan tjäna alla pengar, och jag vill inte sitta vid monitorn i flera dagar. Längs vägen, på mitt huvudjobb (från 8:00 till 17:00 arbetade jag som ingenjör på en lokal internetleverantör), ökade arbetsbelastningen märkbart, och jag slutade skriva makron under arbetstid. Som ett resultat fanns det ingen tid kvar för utvecklingen av sajten - på kvällarna lyckades jag bara få ihop en del av beställningarna, och olästa brev började samlas på posten.

Det var dags att förändra något i mitt liv – att göra ett val mellan arbete och programmering. Och så, i mitten av juli 2012, gjorde jag det här valet - på mitt huvudsakliga jobb skrev jag ett avskedsbrev och bestämde mig för att ägna mig åt programmering (utveckling av makron för Excel). Sedan dess har jag mer än tillräckligt med fritid, så jag planerar att utöka sidan igen och arbeta mer aktivt med beställningar (för att undvika situationer där kunder måste vänta flera veckor på sina makron).
Vad som kommer av allt detta - jag vet inte än, det får tiden utvisa. Jag tror att efterfrågan på makron för Excel kommer att fortsätta i minst 2-3 år till, så jag blir inte utan bröd och smör.

Även i planerna för den närmaste framtiden är utveckling och publicering av shareware-tillägg för Excel (de första pennförsöken på detta område gav goda resultat).
Och så planerar jag att börja utveckla databaser (med webbgränssnitt), och gradvis gå över till att arbeta med webbtjänster.

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

Och nu på gården 2016 år. Till min glädje har Microsoft inte slutat stödja VBA i Excel än, så jag fortsätter att arbeta inom detta område. Dessa 4 år har förändrat mitt liv mycket - inkomsterna har ökat flera gånger, jag började resa mycket, det fanns mindre tid för arbete. Antalet beställningar på makron ökade hela tiden, så jag började samarbeta med flera programmerare, som jag skickade beställningar till när jag inte kunde hantera det själv på grund av tidsbrist. Några av mina kollegor (som jag gav order om arbete) försvann med tiden, medan andra tvärtom samarbetade mer och mer aktivt med mig - och nu har jag ett team som löser eventuella problem (en kollega tar enkla makron och gör dem snabbt, den andra gör komplexa makron med hjälp av icke-standardiserade lösningar, den tredje handlar om "leriga" bulkorder, där du måste diskutera uppgiften i ett par veckor och sedan göra den i ytterligare en månad, den fjärde specialiserar sig på formler, den femte ställer in parsers, etc. - var och en har sitt eget verksamhetsområde).

Att hitta ett bra team var inte en lätt uppgift - även om jag inte letade efter någon själv (hälften av dem vände sig till mig för arbete själva, jag skrev resten själv, eftersom jag kände alla på Excel-forumen som bra specialister), jag orkade inte jobba med alla på länge. Vissa dök sällan upp på nätverket och svarade inte tillräckligt snabbt på beställningar, andra uppfattade arbetet mer som en hobby (om det plötsligt inte fanns någon lust att arbeta, kunde en sådan person försvinna i en vecka, eller till och med en månad, utan att varna mig eller kunden). En ram lyckades till och med lura mig på pengar (tog flera beställningar och försvann utan att betala mig min provision). Men allt detta är i det förflutna - nu med mig är det bara beprövade killar (som jag har arbetat med i flera år), som tar beställningar av vilken komplexitet som helst och alltid tar arbetet till slutet.

Eftersom jag lyckades bli av med "omsättningen" (ett stort antal små beställningar, även om de ger en bra inkomst, men tar upp 100% av tiden), började jag ägna mer uppmärksamhet åt utvecklingen och främjandet av universell tillägg -ins för Excel. Nu har jag 9 sådana tillägg i min arsenal, men bara 5 säljs framgångsrikt: FillDocuments (mitt allra första arbete, tills nyligen, var bland de ledande när det gäller inkomster och är i stabil efterfrågan, eftersom allt som kan vara användbart för användare att fylla i dokument har redan implementerats där), PastePictures (till försäljning sedan 2012, men började bli populärt relativt nyligen), Unification (för tre år sedan var det det mest komplexa av mina program), Lookup (det enklaste av mina tillägg, som i huvudsak är en ersättning för VLOOKUP-formeln - men väldigt populär bland användare) och Parser (en universell parser för att samla in data från webbplatser och filer, den mest sofistikerade av mina program hittills - 17 600 rader kod). När det gäller parsern, 2013 verkade det för mig absolut orealistiskt att göra något sånt här (och jag vägrade kunder, och pratade om omöjligheten att göra en universell lösning för sajter som Unification, ett prisbearbetningsprogram), men sedan antalet beställningar på webbplatsparsers började öka , och jag bestämde mig för att prova, vilket jag aldrig ångrade - intäkterna från lösningar baserade på detta tillägg överträffade alla mina förväntningar.

Men inte alla program var framgångsrika. Jag vägrade i allmänhet att sälja ett program (YandexMarket) - webbplatsen ändrades för ofta, programmet krävde förbättringar, algoritmen för att hitta nödvändiga data var inte uppenbar, sedan dök en captcha upp - och jag bestämde mig för att det inte var värt att slösa tid på ytterligare utveckla programmet, återbetala pengarna till flera köpare. Andra program, som BarcodeScanner, Labels, SearchText, även om de har betalat tillbaka tiden som lagts ner på utveckling, och fortsätter att generera intäkter, kan de inte jämföras med de fem bästa programmen.

Med utvecklingen av de universella tilläggen som beskrivs ovan bildades programmets så kallade "motor" - en uppsättning makron och gränssnittselement som gör att du snabbt kan göra en färdig att sälja lösning från vilken idé som helst. Först behövdes motorn för att stödja uppdateringar (så att användaren kunde kontrollera och installera en uppdatering med ett klick), senare fick den skyddsfunktionalitet (hackers började uppmärksamma mina lösningar, eftersom efterfrågan på dem växte varje år, och jag var tvungen att uppfinna olika system för skydd mot illegal användning, trots att det inbyggda kodskyddet i Excel inte är bra, eftersom det tas bort på ett par sekunder). Längs vägen var jag tvungen att göra funktionaliteten att aktivera och uppdatera program på sidan av sajten - jag började förstå PHP och MySQL lite, göra skript som interagerar med programmotorn.

Under de senaste åren har det mesta av min tid ägnats åt att tillhandahålla teknisk support (det finns fler och fler mjukvaruköpare varje år), och på att utveckla parser-tillägget, som den mest populära och lovande av mina lösningar (jag lägga till ny funktionalitet, publicera exempel på skräddarsydda parsers). Min programmeringsnivå, tack vare parsern och den nya programmotorn, har vuxit avsevärt - även om min kod var av ganska hög kvalitet och fungerade utan misslyckanden för 5 år sedan, tar jag nu ett mer ansvarsfullt förhållningssätt till koddesign, inför behovet för många års support för mina tillägg med många tusen rader kod. Nu, tillsammans med introduktionen av en ny (flerspråkig) motor i alla tillägg, omstrukturerar (uppdaterar) jag koden, vilket gör den enklare, tydligare och mer universell. Förresten, om flerspråkighet - jag bestämde mig för att sälja mina tillägg utanför CIS, och gjorde till och med en separat webbplats (för att bara lägga upp universella tillägg där, med ett gränssnitt och beskrivning på olika språk), men hittills har jag jag är för lat för att göra detta. Kanske en dag kommer händer att nå detta (och för närvarande finns det tillräckligt många köpare från CIS)

Planerna för framtiden (från och med september 2016) är att utveckla riktningen för att analysera webbplatser i Excel, och slutligen göra videoinstruktioner för mina program (jag är inte för lat för att lägga till ny funktionalitet i programmet under ett par veckor i en rad, medan användarna och de inte kan hantera den befintliga, på grund av avsaknaden av en fullständig referens. Tja, jag gillar inte att spela in videor))
Nåväl, det är dags att gå in på den internationella marknaden, eftersom alla mina program har blivit flerspråkiga (även om översättningen bara är på engelska för närvarande, och då bara delvis)

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

Instruktion

Starta Microsoft Office Excel. Om det behövs, skapa ett nytt dokument. För att göra detta, tryck på Ctrl + N eller expandera menyn "Arkiv" och välj "Ny ...". Klicka sedan på länken "Tom bok" i panelen "Skapa bok".

Öppna Visual Basic Editor-fönstret. För att göra detta, tryck på Alt+F11 eller välj Visual Basic Editor från Makro-delen av Verktyg-menyn. Där kommer du att se en projektruta som visar objektträdet för den givna Excel-arbetsboken, såväl som formulären, modulerna och klassmodulerna den innehåller.

Skapa formulär om det behövs. Från huvudmenyn, klicka på Infoga och sedan UserForm. Ett nytt element läggs till i formulärsektionen i projektpanelen. När formuläret skapats öppnas det automatiskt. Använd musen för att dra kontroller från verktygslådan till formulärfönstret. Ändra deras storlek och position. Efter att ha valt med musen, ändra deras egenskaper i egenskapspanelen. Spara formulär genom att trycka på Ctrl+S.

Skapa så många moduler eller klassmoduler som du behöver. För att göra detta, välj modul- eller klassmodulobjekten i avsnittet Infoga på huvudmenyn. Öppna kodredigeringsfönstret för de nödvändiga modulerna eller formulären genom att dubbelklicka på motsvarande element i projektfönstret.

Lägg till klassdeklarationer till klassmoduler. Definiera dem med nyckelordet Class:
Klass CSampleClass
slutklass

Lägg till metoder till klassdefinitioner och stubbfunktioner och procedurer till moduler. Funktioner deklareras med hjälp av nyckelordet Function, följt av ett namn och en uppsättning parametrar, separerade med kommatecken, omgivna inom parentes. Till exempel:
Funktion SampleFunction(a, b, c)
slutfunktion
Procedurer deklareras på liknande sätt (endast med hjälp av underordnat nyckelord):
Delprovprocedur(a,b)
slut sub

Deklarera klassmedlemmar, såväl som globala och lokala (i funktioner och metoder) variabler. För att göra detta, använd Dim...As-satsen (variabelns typ anges efter nyckelordet As). Till exempel kan en oWB-variabeldeklaration som innehåller en referens till ett bokobjekt se ut så här:
Dim oWB Som Excel.Workbook
Genom att ange dimensionen inom parentes kan du deklarera en matris:
Dim aWBooks(10) Som Excel.Workbook

Implementera programmets algoritm genom att göra ändringar i koden för funktioner, procedurer, klassmetoder. Använd Visual Basic-kontrollstrukturer för att kontrollera flödet av exekvering. Arbeta med dina egna datastrukturer, genererade formulärobjekt och inbyggda Excel-objekt.

Källor:

  • hur man skapar ett dokument i excel

Visual Basic är en mjukvaruutvecklingsmiljö utvecklad av Microsoft som inkluderar ett programmeringsspråk. Det ärvde stilen och delvis syntaxen från sin föregångare, BASIC-språket. Visual Basic-utvecklingsmiljön innehåller verktyg för att arbeta med design av användargränssnitt.

Du kommer behöva

  • - en dator;
  • - Installerad Visual Studio;
  • - programmeringskunskaper.

Instruktion

Kör Visual Studio-programmet, skapa projekt för att skapa ett Visual Basic-program. För att göra detta, välj menyn "Arkiv" och i den kommandot "Skapa projekt". I dialogrutan väljer du alternativet "Windows-program" och klickar på knappen "OK". Ett formulär öppnas i gränssnittet. Standard projekt kommer att heta WindowsApplication1. Ett Visual Basic-projekt är en plats där delar av ett program lagras och organiseras. Formen som öppnas när den skapas projekt a, representerar fönstret som kommer att visas när programmet startar. Följaktligen, om det finns flera fönster i programmet, då in projekt Den kan innehålla flera former.

Lägg till kontroller i formuläret från verktygslådan. Den ligger på vänster sida av fönstret, innehåller flera flikar, inklusive "Alla formulär", "Komponenter", "Data". Varje flik har en specifik uppsättning operationer som representerar kontroller eller komponenter som kan läggas till i programmet när det skapas. projekt och i Visual Studio.

Välj verktygslådan, klicka på fliken Alla formulär, dra en panelkontroll till det övre vänstra hörnet av ditt formulär. På samma sätt, flytta till projekt Visual Basic-programmet "Text Area" element. För att ändra dess position, dra helt enkelt den med vänster musknapp till önskad plats i formuläret.

Lägg på samma sätt till knappar till höger om textblocket. Välj sedan det objekt som matchar typen projekt men till exempel "Webbläsare" och placera den under panelen. Varje tillagd kontroll innehåller speciell kod som bestämmer dess utseende, såväl som de uppgifter som utförs av detta element. Du kan skapa din egen kod, till exempel för en knapp för att ändra dess utseende, lägga till en specifik uppgift att utföra, men detta är en mödosam process. Mycket lättare att åstadkomma detta med redigering projekt och i Visual Basic.

Anpassa sedan programmets utseende, lägg till koden som definierar deras beteende. Lägg till anpassade kontroller efter behov. Gör sedan en provkörning och testa ditt program, om nödvändigt, återgå till konstruktören projekt och Visual Basic och åtgärda bristerna.

Relaterade videoklipp

Huvudsyftet med Microsoft Office-applikationen är att arbeta med data i kalkylblad. Som regel är detta numeriska data, men ibland innehåller celler textkonstanter. Dessutom används texten även vid utformning av tabeller, så behovet av att organisera överföring enligt ord inträffar då och då när du arbetar och i kalkylarksredigeraren.

Instruktion

Starta Excel, ladda det önskade dokumentet i det och gå till de celler som du behöver ställa in alternativet för textlindning till ord.

Att skriva koden för dina procedurer och redigera makron görs i Visual Basic-redigeraren, som är tillgänglig från fliken "Utvecklare". Den här fliken är dold som standard. För att visa den, gör följande:

För Excel 2007. Gå till Excel-alternativen med hjälp av Office-knappen, och i "Allmänna alternativ för att arbeta med Excel" markera rutan "Visa fliken Utvecklare på menyfliksområdet."

För Excel 2010 och 2013. I Excel-alternativen måste du välja alternativet "Anpassa menyfliksområdet" och i kategorin Huvudflikar, markera rutan för fliken "Utvecklare".

Introduktion till Visual Basic Editor i Excel

För att komma till kodredigeraren, klicka på utvecklarfliken i "Kod"-området på knappen "Visual Basic".

Därefter visas ett nytt VBA-redigeringsfönster på skärmen. Betrakta nedan några av dess element som du kan behöva i början.

#2 på bilden. Knappar för att starta, stoppa och avbryta kodexekveringen. Under uppstart börjar koden för proceduren som markören är placerad på att utföras. Dessa knappar dupliceras av fliken "Kör" i redaktörens huvudmeny.

#3 på bilden. VBA-projekthanteringsfönstret för öppna arbetsböcker (Project Explorer) och knappen som visar detta fönster.

#4 på bilden. En knapp som visar egenskapsfönstret för de objekt som valts i fönster nr 3 och anpassade formulärelement (att arbeta med objekt, deras egenskaper och metoder kommer att diskuteras i en separat artikel i denna kategori).

#5 på bilden. Knapp för att anropa objektbläddraren. Den beskriver alla objekt som är tillgängliga för arbete, deras egenskaper och metoder.

Knapparna #3, #4 och #5 är också tillgängliga på "Visa"-fliken i redaktörens huvudmeny. På samma plats kan du ringa andra fönster som är användbara för arbete, som inte kommer att diskuteras i detta material.

Att skriva en enkel procedur i Visual Basic för applikation

Koden för valfri procedur (subrutin) finns i modulen, så du måste lägga till den för att börja programmera. Välj "Modul" på fliken "Infoga" i huvudmenyn i VBA-redigeraren. I redaktörens huvudområde (på bilden har en grå bakgrund) bör ett nytt kodfönster visas - Boknamn - modulnamn (kod), och i projekthanteringsfönstret (nr 3) kommer den nyskapade modulen att läggas till till trädet för det valda projektet.

Lägg till följande kod till modulen:

Sub MyProcedure() MsgBox "Hej användare!" slut sub

Denna procedur visar en dialogruta med meddelandet "Hej användare!". Testa det genom att klicka på Rub Sub-knappen (#2 i bilden) eller genom att kalla det som ett vanligt makro.

Låt oss nu ta en närmare titt på ovanstående kod.

Varje förfarande börjar med en deklarationsrad som består av uttalandet Sub(förkortning av underprogram) följt av namnet på underprogrammet. Namnet följs av en lista med argument inom parentes.

Namnet har vissa begränsningar: det måste börja med en bokstav och får inte innehålla mellanslag eller de flesta specialtecken.

I det här exemplet används inga argument, så tomma parenteser anges.

Nästa rad visar dialogen med funktionen MsgBox. Meddelandet som skickas till det måste innehålla text, så det är omgivet av dubbla citattecken.

Den sista raden innehåller operatorn slutet följt av nyckelord Sub och tillkännager slutförandet av förfarandet.

Lär dig använda objektbläddraren

Funktion som nämns ovan MsgBox, men dess möjligheter har inte undersökts fullt ut. Det här är ett bra tillfälle att lära sig hur man använder objektbläddraren (#5 i VBA-redigeringsfönstret).

Klicka på knappen i verktygsfältet eller tryck på F2 för att visa objektbläddraren:

Listrutan nr 1 innehåller en lista över alla anslutna bibliotek. Använd den bara om du vet exakt vilket bibliotek klassen, funktionen etc. tillhör. (du kan ansluta eller koppla bort något av de tillgängliga biblioteken genom att välja alternativet "Referenser" på fliken "Verktyg" i huvudmenyn i VBA-redigeraren).

Obs! Bibliotek tillhandahåller standard- och ytterligare funktioner för att arbeta med Excel-objekt (celler, ark, böcker, etc.), filsystem, bilder, databaser och annat.

Fält nr 2 är utformat för att söka efter egenskaper, metoder, klasser av anslutna bibliotek.

Sökresultaten visas i fält #3 och är en tabell med tre kolumner: bibliotek, klass och klassmedlem.

Fält #4 innehåller en lista över alla klasser valda i fält #1 i biblioteken.

Område #5 innehåller en lista över alla medlemmar i klassen som valts i fält #4.

Fält #6 innehåller kort information om det valda sökresultatet, klassen eller klassmedlemmen.

Obs: bibliotek, klasser, funktioner och procedurer (metoder), egenskaper, etc. i objektbläddraren har olika symboler representerade av en uppsättning ikoner. Kort information (fält nr 6) anger alltid vilken typ av element som väljs. Var uppmärksam på detta för att bättre kunna navigera i arbetet med objekt i framtiden.

Obs: Konceptet med ett objekt är inte relaterat till ämnet i denna artikel och kommer att diskuteras i följande material.

Låt oss nu hitta MsgBox-funktionen med hjälp av Object Browser. I sökfältet (nr 2), skriv in dess namn och klicka på knappen med bilden av kikare. I sökresultatrutan markerar du raden med MsgBox i kolumnen Medlem. Kort information dök upp i fält nr 6, som berättar att den valda medlemmen är en funktion, har en lista med argument, returnerar ett resultat av typen VbMsgBoxResult, tillhör klassen Interaction i VBA-biblioteket.

Klicka på frågetecknet för mer information. Beroende på versionen av Excel kommer du att omdirigeras till en hjälpfil eller dokumentationssida från Microsoft.

Utforska möjligheterna med MsgBox-funktionen själv.

Länk till VBA Procedur

När du kommer djupare in i VBA-språket kommer din kod att bli mer komplex och ha mer flexibel logik. Du kommer ofta att behöva hantera det faktum att vissa delar av programmet kommer att duplicera koden helt eller delvis. Dessa situationer bör undvikas eftersom de gör procedurerna svårare att förstå och svårare att felsöka.

För en bättre förståelse, låt oss titta på ett exempel (exemplet använder pseudokod):

Start_Procedure Valfri kod Första raden av dubblettkod Vilken kod Sista raden i dubblettkoden Vilken kod Första raden i dubblettkoden Vilken kod Sista raden i dubblettkoden Vilken kod som helst End_Procedure

Ta ut dubbletter av kodavsnitt i separata procedurer och ange länkar till dem från huvudproceduren:

Start_of_Main_Procedure Valfri kod Referens till Procedure_of_duplicated_code Vilken kod som helst Referens till Procedure_of_duplicated_code Vilken kod End_of_Main_Procedure Start_of_Procedure_of_duplicated_code Valfri kod End_of_Procedure_of_duplicated_code

Ring Makro1 "Nästa rad är identisk med föregående Makro1

Om materialet på webbplatsen hjälpte dig, vänligen stödja projektet så att vi kan utveckla det ytterligare.

Du har inte tillräckligt med rättigheter att kommentera.