HTML, Excel, Word, SEOÎñíîâû VBA ⇒ Îïåðàòîðû âåòâëåíèÿ VBA: ïðîñòîé âûáîð

Îñíîâû VBA

Ñàìîó÷èòåëü vba: Òåîðèÿ
..Ïåðâûé ìàêðîñ â Word
..Ýòàïû çàïèñè ìàêðîñà
..Çàïèñü ìàêðîñà â Word
..Çàïèñü ìàêðîñà â Excel
..Êîä ìàêðîñà
..Âûïîëíåíèå ìàêðîñà
..Òèïû äàííûõ VBA
..Ïåðåìåííûå VBA
..Êîíñòàíòû VBA
..Ñîâìåñòèìîñòü òèïîâ äàííûõ
..Àðèôìåòè÷åñêèå îïåðàòîðû
..Ëîãè÷åñêèå îïåðàòîðû
..Ñòðîêîâûå îïåðàòîðû
..Ôóíêöèè VBA ÷.1
..Ôóíêöèè VBA ÷.2
..Ïðèìåðû èñïîëüçîâàíèÿ ôóíêöèé
..Ôóíêöèè host-ïðèëîæåíèé
..Ôóíêöèè-ïðîöåäóðû
..Ïîëüçîâàòåëüñêèå ôóíêöèè â Excel
..Îïåðàòîðû âåòâëåíèÿ: ïðîñòîé âûáîð
..Îïåðàòîðû âåòâëåíèÿ: ñëîæíûé âûáîð
..Èñïîëüçîâàíèå MsgBox
..Ïðåðûâàíèå ïðîöåäóð è ôóíêöèé
..Íåîáÿçàòåëüíûå àðãóìåíòû ôóíêöèé
..Öèêëû VBA ÷.1
..Öèêëû ÷.2
..Öèêëû ÷.3
..Ìàññèâû VBA ÷.1
..Ìàññèâû ÷.2
..Ìàññèâû ÷.3
..Óïðàâëåíèå ôàéëàìè ñ ïîìîùüþ VBA
Ñàìîó÷èòåëü vba: Ïðàêòèêà
Èãðà: Öåïíàÿ ðåàêöèÿ
Ïðèëîæåíèÿ
..Ñóììàòîð
..Íàêëåéêè
..Âîñüìåðêà
..Ìåíåäæåð ïî÷òû
Íàäñòðîéêè
..DEF
..SortSheets
..HideSheet

Ðåéòèíã vps ñåðâåðîâ ßïîíèè çäåñü

Îïåðàòîðû âåòâëåíèÿ VBA: ïðîñòîé âûáîð

Äî ñèõ ïîð ðàññìàòðèâàëèñü ïðîöåäóðû è ôóíêöèè, êîòîðûå VBA âûïîëíÿåò â ëèíåéíîì ïîðÿäêå - VBA íà÷èíàåò âûïîëíåíèå êîäà ñ ïåðâîãî îïåðàòîðà ïîñëå ñòðîêè îáúÿâëåíèÿ ïðîöåäóðû (ôóíêöèè) è ïðîäîëæàåò âûïîëíÿòü êàæäûé îïåðàòîð ïîñòðî÷íî äî òåõ ïîð, ïîêà íå áóäåò äîñòèãíóò îïåðàòîð End Sub (End Function). Òàêîé ëèíåéíûé àëãîðèòì ìîæíî ïðåäñòàâèòü íèæåñëåäóþùåé áëîê-ñõåìîé:



Îäíàêî äîâîëüíî ÷àñòî âñòðå÷àþòñÿ ñèòóàöèè, êîãäà íåîáõîäèìî, ÷òîáû ïðîöåäóðû èëè ôóíêöèè âûïîëíÿëè ðàçëè÷íûå äåéñòâèÿ ïðè ðàçíûõ óñëîâèÿõ. Òàêóþ ñèòóàöèþ èëëþñòðèðóþò ñëåäóþùèå áëîê-ñõåìû:


 

Îïåðàòîðû, âûïîëíÿþùèå ðîëü âåòâëåíèÿ ïðîãðàììû íà îñíîâàíèè êàêîãî-ëèáî óñëîâèÿ, íàçûâàþòñÿ îïåðàòîðàìè óñëîâíîãî ïåðåõîäà.

Ïðîñòåéøèìè îïåðàòîðàìè óñëîâíîãî ïåðåõîäà ÿâëÿþòñÿ îïåðàòîðû If..Then; If..Then..Else. Ïåðâûé îïåðàòîð ïîçâîëÿåò âûáèðàòü åäèíñòâåííóþ âåòâü ïðîöåäóðû (ëåâàÿ áëîê-ñõåìà), òîãäà êàê âòîðîé äàåò âîçìîæíîñòü âûáèðàòü èç äâóõ àëüòåðíàòèâíûõ âåòâåé êîäà ïðîöåäóðû (ïðàâàÿ áëîê-ñõåìà) íà îñíîâå îöåíêè òîãî, ÿâëÿåòñÿ ëè óñëîâèå ðàâíûì True èëè False.


Ñèíòàêñèñ If..Then


Âàðèàíò 1:
If Condition Then Statements

Âàðèàíò 2:
If Condition Then
   Statements
End If


Condition - ëîãè÷åñêîå âûðàæåíèå;

Statements - îäèí, íåñêîëüêî èëè íè îäíîãî îïåðàòîðà VBA.


Ïåðâûé âàðèàíò òðåáóåò íàïèñàíèÿ îïåðàòîðà â îäíó ñòðîêó, ïðè ýòîì â ñåêöèè Statements ìîæíî óêàçûâàòü íåñêîëüêî îïåðàòîðîâ, ðàçäåëÿÿ èõ äâîåòî÷èåì.

Âòîðîé âàðèàíò ïîçâîëÿåò óêàçûâàòü íåñêîëüêî îïåðàòîðîâ â ðàçíûõ ñòðîêàõ.

Ëîãèêà ðàáîòû ñëåäóþùàÿ: VBA ñíà÷àëà îöåíèâàåò ëîãè÷åñêîå âûðàæåíèå, ïðåäñòàâëåííîå â ñåêöèè Condition; åñëè ýòî ëîãè÷åñêîå âûðàæåíèå ðàâíî True òî âûïîëíÿåòñÿ îïåðàòîð (îïåðàòîðû) ñåêöèè Statements; çàòåì VBA ïðîäîëæàåò âûïîëíåíèå êîäà ñëåäóþùåãî çà ñòðîêîé If..Then (Âàðèàíò 1) èëè çà êëþ÷åâûìè ñëîâàìè End If (Âàðèàíò 2). Åñëè æå ëîãè÷åñêîå âûðàæåíèå ðàâíî False, òî îïåðàòîðû ñåêöèè Statements ïðîïóñêàþòñÿ è âûïîëíÿåòñÿ êîä, ñëåäóþùèé çà ýòîé ñåêöèåé.


Íèæå ïðèâåäåí ëèñòèíã ýëåìåíòàðíîãî èñïîëüçîâàíèÿ ïåðâîãî âàðèàíòà íàïèñàíèÿ If..Then:




À òåïåðü - âòîðîé âàðèàíò:



Îáðàòèòå âíèìàíèå, ÷òî îïåðàòîðû ñåêöèè Statements íàïèñàíû ñ èñïîëüçîâàíèåì îòñòóïà (èñïîëüçóåòñÿ òàáóëÿöèÿ). Ýòî âàæíûé ìîìåíò. Ñëåäóåò ñðàçó ïðèó÷àòü ñåáÿ ê ïîäîáíîìó îôîðìëåíèþ ïðîãðàììíîãî êîäà - ýòî ïîâûøàåò åãî óäîáî÷èòàåìîñòü è çíà÷èòåëüíî îáëåã÷àåò ïîèñê îøèáîê.


Ñèíòàêñèñ If..Then..Else


Âàðèàíò 1:
If Condition Then Statements Else ElseStatements

Âàðèàíò 2:
If Condition Then
   Statements
Else
   ElseStatements
End If


Condition - ëîãè÷åñêîå âûðàæåíèå;

Statements, ElseStatements - îäèí, íåñêîëüêî èëè íè îäíîãî îïåðàòîðà VBA.


Ïî àíàëîãèè ñ If..Then - ïåðâûé âàðèàíò òðåáóåò íàïèñàíèÿ îïåðàòîðà â îäíó ñòðîêó, ïðè ýòîì â ñåêöèÿõ Statements è ElseStatements ìîæíî óêàçûâàòü íåñêîëüêî îïåðàòîðîâ, ðàçäåëÿÿ èõ äâîåòî÷èåì.

Âòîðîé âàðèàíò ïîçâîëÿåò óêàçûâàòü íåñêîëüêî îïåðàòîðîâ â ðàçíûõ ñòðîêàõ.

Ëîãèêà ðàáîòû ñëåäóþùàÿ: VBA ñíà÷àëà îöåíèâàåò ëîãè÷åñêîå âûðàæåíèå, ïðåäñòàâëåííîå â ñåêöèè Condition; åñëè ýòî ëîãè÷åñêîå âûðàæåíèå ðàâíî True òî âûïîëíÿåòñÿ îïåðàòîð (îïåðàòîðû) ñåêöèè Statements; çàòåì VBA ïðîäîëæàåò âûïîëíåíèå êîäà ñëåäóþùåãî çà ñòðîêîé If..Then (Âàðèàíò 1) èëè çà êëþ÷åâûìè ñëîâàìè End If (Âàðèàíò 2). Åñëè æå ëîãè÷åñêîå âûðàæåíèå ðàâíî False, òî âûïîëíÿþòñÿ îïåðàòîðû ñåêöèè ElseStatements.

Ñëåäóåò ñêàçàòü, ÷òî áëîê îïåðàòîðîâ If..Then..Else (Âàðèàíò 2) ëåã÷å ÷èòàòü è ïîíèìàòü. Ïîýòîìó, ñîâåòóþ èñïîëüçîâàòü èìåííî ýòîò âàðèàíò, äàæå åñëè â ñåêöèÿõ Statements è ElseStatements áóäåò íàõîäèòüñÿ ïî îäíîìó îïåðàòîðó.






 íà÷àëî ñòðàíèöû



 íà÷àëî ñòðàíèöû