Најбољи ВБА водич (за почетнике) који ће вам икада требати

ВБА програмска(VBA programming) платформа која се користи у скоро свим Мицрософт Оффице(Microsoft Office) производима је једна од најмоћнијих алатки које свако може да користи да побољша употребу тих производа.

Овај ВБА(VBA) водич за почетнике ће вам показати како да додате мени за програмере у вашу (Developer)Оффице(Office) апликацију, како да уђете у прозор ВБА(VBA) едитора и како функционишу основне ВБА(VBA) изјаве и петље да бисте могли да почнете да користите ВБА(VBA) у програму Екцел(Excel) , Ворд(Word) , Поверпоинт(Powerpoint) , Оутлоок(Outlook) и ОнеНоте(OneNote) .

Овај ВБА(VBA) водич користи најновију верзију Мицрософт Оффице(Microsoft Office) производа. Ако имате старију верзију, можда ћете видети неке мале разлике у односу на снимке екрана.

Како омогућити и користити ВБА уређивач(How To Enable & Use The VBA Editor)

У било ком од Оффице(Office) производа који се користе у овом водичу, можда ћете приметити да немате референтни мени за програмере . (Developer)Мени за програмере је доступан само у програму Екцел(Excel) , Ворд(Word) , Оутлоок(Outlook) и Поверпоинт(Powerpoint) . ОнеНоте(OneNote) не нуди алатку за уређивање ВБА(VBA) кода из апликације, али и даље можете референцирати ОнеНоте АПИ(OneNote API) за интеракцију са ОнеНотеом(OneNote) из других Оффице(Office) програма. 

Научићете како то да урадите у нашем предстојећем напредном ВБА(Advanced VBA) водичу.

  • Да бисте омогућили мени за програмере(Developer) у било ком канцеларијском производу, изаберите мени Датотека(File) и изаберите Опције(Options) из левог навигационог менија. 
  • Видећете искачући мени са опцијама . (Options)Изаберите Прилагоди траку(Customize Ribbon) из левог навигационог менија.

Лева листа укључује све доступне меније и команде менија доступне у тој Оффице(Office) апликацији. Листа са десне стране су они који су тренутно доступни или активирани.

  • Требало би да видите Програмер(Developer) на листи са десне стране, али неће бити активиран. Само(Just) означите поље за потврду да бисте активирали мени за програмере .(Developer)

  • Ако не видите Програмер(Developer) доступан на десној страни, промените леву Изаберите команде(Choose commands) из падајућег менија у Све команде(All Commands) . Пронађите Програмер(Developer) са листе и изаберите Add>> у центру да додате тај мени на траку(Ribbon) .
  • Изаберите ОК(OK) када завршите.
  • Када је мени за програмере(Developer) активан, можете се вратити у главни прозор апликације и изабрати Програмер(Developer) у горњем менију. 
  • Затим изаберите Прикажи код(View Code) из групе Контроле(Controls) на траци да бисте отворили прозор ВБА(VBA) уређивача.

  • Ово ће отворити прозор ВБА(VBA) едитора у који можете да унесете код који ћете научити у наредних неколико одељака.

  • Покушајте да додате мени за програмере(Developer) у неколико Оффице(Office) апликација које користите сваки дан. Када вам буде удобно да отворите прозор ВБА(VBA) уређивача, наставите на следећи одељак овог водича.

Општи савети за ВБА програмирање за почетнике(General VBA Programming Tips for Beginners)

Приметићете када се ВБА(VBA) едитор отвори, опције навигације на левом панелу изгледају другачије од једне Оффице(Office) апликације до друге.

То је зато што доступни објекти у које можете поставити ВБА(VBA) код зависе од тога који објекти постоје у апликацији. На пример, у Екцел(Excel) -у можете додати ВБА(VBA) код у радну свеску или објекте листа. У Ворд(Word) - у можете додати ВБА(VBA) код у документе. У Поверпоинту(Powerpoint) , само за модуле.

Дакле, немојте да вас изненаде различити менији. Структура и синтакса ВБА(VBA) кода је иста у свим апликацијама. Једина разлика су објекти на које можете референцирати и радње које можете предузети на тим објектима преко ВБА(VBA) кода.

Пре него што заронимо у различите објекте и радње које можете да предузмете преко ВБА(VBA) кода, хајде да прво погледамо најчешћу ВБА(VBA) структуру и синтаксу коју можете да користите када пишете ВБА(VBA) код.

Где ставити ВБА код(Where To Put VBA Code)

Када сте у ВБА(VBA) уређивачу, потребно је да користите два падајуће оквира на врху прозора за уређивање да бисте изабрали на који објекат желите да приложите код и када желите да се код покрене.

На пример, у програму Екцел(Excel) , ако изаберете Радни лист(Worksheet) и Активирај(Activate) , код ће се покренути сваки пут када се радни лист отвори. 

Остале радње радног листа које можете да користите да покренете свој ВБА(VBA) код укључују када се радни лист промени, када је затворен (деактивиран), када се прорачун радног листа покрене и још много тога.

Када додате ВБА(VBA) код у уређивач, увек ставите свој ВБА(VBA) код на објекат и користите исправну радњу коју желите да користите за покретање тог кода.

ВБА ИФ изјаве(VBA IF Statements)

Наредба ИФ функционише у ВБА(VBA) као што функционише у било ком другом програмском језику.

Први део ИФ изјаве разматра да ли је услов или скуп услова тачан. Овим условима може да се придружи АНД(AND) или ОР оператор да их повеже заједно.

Један пример би био да се провери да ли је оцена у табели изнад или испод „пролазне“ оцене и да се додели статус пролазног или неуспешног у другој ћелији.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Ако не желите да цео израз буде у једном реду, можете га поделити на више редова додавањем симбола „_“ на крају редова.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Коришћење ове технике често може учинити код много лакшим за читање и отклањање грешака.

ВБА за следеће петље(VBA For Next Loops)

ИФ изјаве су одличне за појединачна поређења, као што је горњи пример гледања у једну ћелију. Али шта ако желите да прођете кроз читав низ ћелија и урадите исту ИФ наредбу за сваку?

У овом случају ће вам требати петља  ФОР .(FOR)

Да бисте то урадили, требало би да користите дужину опсега и да прођете кроз ту дужину према броју редова који садрже податке.

Да бисте то урадили, морате да дефинишете опсег и променљиве ћелије и да их прођете кроз петљу. Такође ћете морати да дефинишете бројач да бисте могли да избаците резултате у одговарајући ред. Дакле, ваш ВБА(VBA) код би прво имао ову линију.

Дим рнг Ас Ранге, целл Ас Ранге (Dim rng As Range, cell As Range)
Дим ровЦоунтер као цео број(Dim rowCounter as Integer)

Дефинишите величину опсега на следећи начин. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Коначно, можете креирати своју ФОР(FOR) петљу да бисте прешли кроз сваку ћелију у том опсегу и извршили поређење.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Када се ова ВБА скрипта(VBA script) покрене, видећете резултате у стварној табели.

ВБА вхиле петље(VBA While Loops)

Док петља(Loop) такође пролази кроз низ наредби, баш као петља ФОР(FOR) , али услов за наставак петље је услов који остаје тачан.

На пример, можете написати исту ФОР(FOR) петљу изнад, као ВХИЛЕ(WHILE) петљу, једноставним коришћењем променљиве ровЦоунтер на следећи начин.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Напомена: ограничење завршетка rng.Count + 2 је потребно јер бројач редова почиње од 2 и треба да се заврши у реду 7 где се подаци завршавају. Међутим, број опсега (Б2:Б7) је само 6, а вхиле петља ће се завршити само када бројач буде ВЕЋИ(GREATER) од бројача – тако да последња вредност бројача реда мора бити 8 (или рнг.Цоунт + 2).

Такође можете да подесите вхиле петљу на следећи начин:

While rowCounter <= rng.Count + 1

Можете само повећати број опсега (6) за 1, јер када променљива ровЦоунтер достигне крај података (ред 7), петља може да се заврши.

ВБА До Вхиле и До Унтил петље(VBA Do While and Do Until Loops)

До Вхиле и До Унтил петље су скоро идентичне вхиле петљама, али раде мало другачије.

  • Док петља(While Loop) проверава да ли је услов тачан на почетку петље.
  • До -Вхиле петља(Do-While Loop) проверава да ли је услов тачан након извршења наредби у петљи.
  • Петља До-Унтил(Do-Until Loop) проверава да ли је услов и даље нетачан након извршења петље.

У овом случају бисте преписали горњу петљу Вхиле на следећи начин, као петљу До-Вхиле.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

У овом случају логика се не мења много, али ако желите да се уверите да се логичко поређење одвија након што се сви искази покрећу (допуштајући им да се сви покрећу без обзира на све барем једном), онда До-Вхиле или петља До-Унтил је права опција.

ВБА Изаберите Изјаве случаја(VBA Select Case Statements)

Последњи тип логичког исказа који ћете морати да разумете да бисте започели структурирање свог ВБА(VBA) кода су наредбе Селецт Цасе(Select Case) .

С обзиром на горњи пример, рецимо да желите да имате метод оцењивања који није само неуспешан пролаз. Уместо тога, желите да доделите оцену од А до Ф.

То можете учинити помоћу следеће изјаве Селецт Цасе :(Select Case)

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

Добијена табела након покретања ове ВБА(VBA) скрипте изгледа као она испод.

Сада знате све што треба да знате да бисте почели да користите ВБА(VBA) у својим Мицрософт Оффице(Microsoft Office) апликацијама.



About the author

Ја сам рачунарски техничар са преко 10 година искуства и искуства у раду са Андроид уређајима. Такође радим у канцеларији последњих пет година, где сам научио да користим Оффице 365 и МацОС. У слободно време уживам да проводим време на отвореном пуштајући музику или гледајући филмове.



Related posts