Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡ„ΠΈΡΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор Π˜Ρ€ΠΈΠ½Π° Π€Ρ€ΠΈΠ·Π΅Π½

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° всСгда измСняСт порядок выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ vba. ΠŸΡ€ΠΈ этом vba Π½Π΅ провСряСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… условий, Π° просто ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ мСста.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ GoTo ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

GoTo ΠΌΠ΅Ρ‚ΠΊΠ°

ΠœΠ΅Ρ‚ΠΊΠ° – любоС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ GoTo. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° GoTo VBA Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² строкС, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ if … then, выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: Ссли ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π° присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС нуля, Ρ‚ΠΎ находится сумма чисСл Π° ΠΈ b, Ссли мСньшС нуля, Ρ‚ΠΎ находится ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π² стандартноС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ msgbox.

ВСхнология выполнСния

1. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2) Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠ°ΠΏΠΊΡƒ Modules ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: Insert + Module (рис. 6).

2. Π’ появившСмся ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ запуститС Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

Dim a, b, c As Integer

Sub poradok()

a = -5

b = 25

If a > 0 Then

c = a + b

MsgBox (c)

End If

If a < 0 Then

с = a * b

MsgBox (с)

End If

End Sub

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π° присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС нуля, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ ниТняя инструкция If (рис. 9).



Рис. 9. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈ Π° < 0


3. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, помСняв Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π° Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅:

Dim a, b, c As Integer

Sub poradok()

a = 5

b = 25

If a > 0 Then

c = a + b

MsgBox (c)

End If

If a < 0 Then

c = a * b

MsgBox (c)

End If

End Sub

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π”Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ инструкции If Then Else (рис. 10).



Рис. 10. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈ Π° > 0

Dim a, b, c As Integer

Sub poradok()

a = 5

b = 25

If a > 0 Then

c = a + b

MsgBox (c)

Else

c = a * b

MsgBox (c)

End If

End Sub

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ дСйствий: Ρ†ΠΈΠΊΠ»Ρ‹

ΠŸΡ€ΠΎΡ†Π΅ΡΡ выполнСния всСх ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² структуру Ρ†ΠΈΠΊΠ»Π°, ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· называСтся ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ (iteration) Ρ†ΠΈΠΊΠ»Π°. НСкоторыС структуры Ρ†ΠΈΠΊΠ»Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ всСгда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π°, всСгда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ с фиксированным числом ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ (fixed iteration). Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ структур Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π· Π² зависимости ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° условий. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ количСство Ρ€Π°Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ этих Π³ΠΈΠ±ΠΊΠΈΡ… структур Ρ†ΠΈΠΊΠ»Π° являСтся Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ (indefinite loops).

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° основных способа создания Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. МоТно ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ VBA Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ условиС (Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π°) ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ†ΠΈΠΊΠ»Π°. Если условиС для повторСния Ρ†ΠΈΠΊΠ»Π° Π½Π΅ Ρ€Π°Π²Π½ΠΎ True, VBA пропускаСт всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Ρ†ΠΈΠΊΠ»Π΅. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ VBA Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ условиС Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚Π° Ρ†ΠΈΠΊΠ»Π° послС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π΅.

Π‘Π°ΠΌΠΎΠΉ простой структурой Ρ†ΠΈΠΊΠ»Π° являСтся фиксированный Ρ†ΠΈΠΊΠ». VBA прСдоставляСт Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ структуры фиксированного Ρ†ΠΈΠΊΠ»Π°: For… Next ΠΈ For Each … Next. ОбС структуры фиксированного Ρ†ΠΈΠΊΠ»Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ For, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ всСгда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ для (for) Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ количСства Ρ€Π°Π·.


ИспользованиС Ρ†ΠΈΠΊΠ»Π° For… Next

Π¦ΠΈΠΊΠ» For…Next ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ дСйствиС ΠΈΠ»ΠΈ ряд дСйствий Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·, извСстноС Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° выполнСния Ρ†ΠΈΠΊΠ»Π°.

Π¦ΠΈΠΊΠ» For…Next ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

For Π° = Start To End [Step StepSize]

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Next [Π°],

Π³Π΄Π΅ Π° – любая числСнная пСрСмСнная VBA, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ пСрСмСнная Ρ‚ΠΈΠΏΠ° Integer ΠΈΠ»ΠΈ Long;

Start – любоС числСнноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, опрСдСляСт Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°;

End – это Ρ‚Π°ΠΊΠΆΠ΅ числСнноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, опрСдСляСт ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°.


По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ VBA ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π° Π½Π° 1 ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π΅ (считаСт количСство Ρ†ΠΈΠΊΠ»ΠΎΠ²). МоТно Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (StepSize), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Step. ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Step Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½, нСсколько ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° VBA. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° For; VBA выполняСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Next сообщаСт VBA ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ достигнут ΠΊΠΎΠ½Π΅Ρ† Ρ†ΠΈΠΊΠ»Π°; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСмСнная Π° послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова next Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°, которая Π±Ρ‹Π»Π° Π·Π°Π΄Π°Π½Π° послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова For Π² Π½Π°Ρ‡Π°Π»Π΅ структуры Ρ†ΠΈΠΊΠ»Π°.

Π’ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π° послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова next для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (особСнно ΠΏΡ€ΠΈ использовании Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² for next) ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости выполнСния ΠΊΠΎΠ΄Π° (ΠΈΠ½Π°Ρ‡Π΅ vba придСтся ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, какая пСрСмСнная являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ, для Π΅Π΅ измСнСния послС достиТСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова next).


Π¦ΠΈΠΊΠ» For Each … Next

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» For, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ имССтся Π² VBA, β€“ это Ρ†ΠΈΠΊΠ» For Each … Next. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ†ΠΈΠΊΠ»Π° For…Next, Ρ†ΠΈΠΊΠ» For Each … Next Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ счСтчик Ρ†ΠΈΠΊΠ»Π°. Π¦ΠΈΠΊΠ»Ρ‹ For Each … Next Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько имССтся элСмСнтов Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ коллСкция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ массив. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ†ΠΈΠΊΠ» For Each … Next выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² Π³Ρ€ΡƒΠΏΠΏΠ΅.

Π¦ΠΈΠΊΠ» For Each … Next ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

For each Π° in Π³Ρ€ΡƒΠΏΠΏΠ°

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Next [Π°],

Π³Π΄Π΅ Π° – это пСрСмСнная, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ всСм элСмСнтам Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅;

Π³Ρ€ΡƒΠΏΠΏΠ° – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ массив. Если Π³Ρ€ΡƒΠΏΠΏΠ° – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° variant, object ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ range, worksheet, document, paragraph ΠΈ Ρ‚. Π΄.

Если Π³Ρ€ΡƒΠΏΠΏΠ° – это массив, Ρ‚ΠΎ Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° variant;

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ – ΠΎΠ΄ΠΈΠ½, нСсколько ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° VBA, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°.


ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π° использованиС Ρ†ΠΈΠΊΠ»ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² части II.

Π“Π»Π°Π²Π° 2

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ UserForm

2.1. Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° UserForm

Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° UserForm

Рассматривая Π² ΠΏ. 1.2 ΠΈ 1.3 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ VBA, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ СдинствСнного Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π΅ всСгда Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ потрСбностям ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Одним ΠΈΠ· достоинств языка программирования VBA являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ относится ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языкам. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² Π΄Π°Π½Π½ΡƒΡŽ срСду программирования ΡƒΠΆΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ возмоТности создания Ρ„ΠΎΡ€ΠΌ ΠΈ Π΅Π³ΠΎ элСмСнтов простым использованиСм Π±Π΅Π· составлСния Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²ΠΎ всСх прилоТСниях Office ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° Π² VBA Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ UserForms). ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ UserForm присущи ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ свойства, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ события, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ наслСдуСт ΠΎΡ‚ класса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² UserForms. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° (Ρ„ΠΎΡ€ΠΌΡ‹) ΠΈ элСмСнты управлСния ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ основу соврСмСнного Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса. ВсС элСмСнты управлСния ΠΈ тСхнология Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ Π² основном стандартизованы ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСд. Π­Ρ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MSForms.

Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ ΠΏΡ€ΠΈ создании Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса.

β€’ ВсС Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ UserForms со стандартными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ свойствами. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса UserForm – Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.

β€’ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° элСмСнтов управлСния Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ msforms имССтся класс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ элСмСнта управлСния (Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°). НапримСр, Π΅ΡΡ‚ΡŒ классы SpinButton ΠΈ TextBox.

β€’ Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π’Π½Π°Ρ‡Π°Π»Π΅ создаСтся само ΠΎΠΊΠ½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΎ наполняСтся элСмСнтами управлСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ элСмСнтов. Π­Ρ‚ΠΎΡ‚ этап называСтся этапом проСктирования, ΠΈ Π΅Π³ΠΎ слСдуСт ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ этапа выполнСния, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствуСт с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² частности Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ ΠΈΡ… элСмСнты управлСния. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ создаСтся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ помСщаСтся Π² Π½Π΅Π³ΠΎ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ элСмСнт управлСния, Π² этот ΠΆΠ΅ самый ΠΌΠΎΠΌΠ΅Π½Ρ‚ автоматичСски Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ появляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, вызывая Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ измСняя Π΅Π³ΠΎ свойства.