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


Çàäàíèå òèïà íåîáÿçàòåëüíîãî àðãóìåíòà

Äëÿ òîãî, ÷òîáû ïðàâèëüíî èñïîëüçîâàòü ôóíêöèè è îáíàðóæèâàòü îïåðàòîðû, êîòîðûå ïåðåäàþò ôóíêöèè íåâåðíûå çíà÷åíèÿ îáúÿâëÿåòñÿ òèï íåîáÿçàòåëüíîãî àðãóìåíòà (èíà÷å îíè èìåþò òèï Variant). Òèï íåîáÿçàòåëüíîãî àðãóìåíòà îáúÿâëÿåòñÿ òåì æå ñïîñîáîì, ÷òî è òèï îáÿçàòåëüíîãî àðãóìåíòà - ïðè ïîìîùè êëþ÷åâîãî ñëîâà As:


Function NameFunct(tStr As String, Optional neobArgument As Integer) As String


Çíà÷åíèÿ ïî óìîë÷àíèþ äëÿ íåîáÿçàòåëüíûõ àðãóìåíòîâ

Ìîæíî óêàçûâàòü VBA ïðèñâàèâàòü íåîáÿçàòåëüíîìó àðãóìåíòó çíà÷åíèå ïî óìîë÷àíèþ. VBA èñïîëüçóåò çíà÷åíèå ïî óìîë÷àíèþ êàæäûé ðàç, êîãäà ôóíêöèÿ âûçûâàåòñÿ áåç ýòîãî âêëþ÷åííîãî íåîáÿçàòåëüíîãî àðãóìåíòà.

Çíà÷åíèå ïî óìîë÷àíèþ ïðèñâàèâàåòñÿ íåîáÿçàòåëüíîìó àðãóìåíòó ñ ïîìîùüþ çíàêà ðàâåíñòâà è ïðåäîñòàâëåíèÿ çíà÷åíèÿ òàê æå, êàê ïðè îáúÿâëåíèè èìåíîâàííîé êîíñòàíòû:


Function GetBookName(Optional lDflt As String = "Book1") As String


Ïåðåäà÷à àðãóìåíòîâ

Ñóùåñòâóþò äâà ñïîñîáà äëÿ ïåðåäà÷è èíôîðìàöèè â ôóíêöèþ-ïðîöåäóðó: ïî ññûëêå (ïî óìîë÷àíèþ) è ïî çíà÷åíèþ.

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

Ýòî îçíà÷àåò, ÷òî åñëè ôóíêöèÿ èçìåíÿåò çíà÷åíèå â ëþáîì èç àðãóìåíòîâ, òî èñõîäíûå äàííûå òàêæå èçìåíÿþòñÿ.

Ïðè ïåðåäà÷å àðãóìåíòà ïî çíà÷åíèþ VBA äåëàåò êîïèþ èñõîäíûõ äàííûõ è ïåðåäàåò ýòó êîïèþ ôóíêöèè. Åñëè ôóíêöèÿ èçìåíÿåò çíà÷åíèå â àðãóìåíòå, ïåðåäàâàåìîì ïî çíà÷åíèþ, èçìåíÿåòñÿ òîëüêî êîïèÿ äàííûõ, à èñõîäíûå äàííûå íå èçìåíÿþòñÿ.



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

 ëèñòèíãå, ïðåäñòàâëåííîì âûøå, ïîêàçàíî, ÷òî äî ïðèìåíåíèÿ ôóíêöèè Argument ñòðîêîâàÿ ïåðåìåííàÿ s1 ñîäåðæàëà òåêñòîâóþ ñòðîêó â íèæíåì ðåãèñòðå, à ïîñëå ïðèìåíåíèÿ ôóíêöèè îíà óæå ñîäåðæèò ñòðîêó â âåðõíåì ðåãèñòðå.

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

×òîáû ÿâíî óêàçàòü, ïåðåäàåò VBA àðãóìåíò ïî çíà÷åíèþ èëè ïî ññûëêå, íàäî èñïîëüçîâàòü êëþ÷åâûå ñëîâà ByVal, ByRef ïåðåä àðãóìåíòîì, äëÿ êîòîðîãî íåîáõîäèìî çàäàòü ìåòîä ïåðåäà÷è.



Ñëåäóåò îáúÿâëÿòü àðãóìåíò ñ êëþ÷åâûì ñëîâîì ByVal äëÿ ïåðåäà÷è åãî ïî çíà÷åíèþ, åñëè èìåþòñÿ ñîìíåíèÿ, ñëåäóåò ëè ïåðåäàâàòü ýòîò êîíêðåòíûé àðãóìåíò ïî ññûëêå èëè ïî çíà÷åíèþ.




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



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