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

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

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

3-ΠΉ шаг. ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Visual Basic, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π»ΠΈΠ±ΠΎ Π² ΠΎΠΊΠ½Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π»ΠΈΠ±ΠΎ Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ стало Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ.

2. ΠŸΡ€ΠΎΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ: мСню + debug + compile project.

3. Π—апуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (F5).

ПослС нСбольшой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠΊΠ½ΠΎ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ появится Π½Π° Ρ„ΠΎΠ½Π΅ вашСго VBA-прилоТСния (Π° Π½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Visual Basic). Если всС Π² порядкС, Π½Π° Ρ„ΠΎΠ½Π΅ прилоТСния (Word ΠΈΠ»ΠΈ Excel) появится созданная Ρ„ΠΎΡ€ΠΌΠ° Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии (рис. 14).


Рис. 14. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 4 Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии


β€’ Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ!

Если ΠΏΡ€ΠΈ запускС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ сообщСния Π²ΠΈΠ΄Π° (рис. 15 ΠΈΠ»ΠΈ рис. 16) ΠΎ слишком большой Π·Π°Ρ‰ΠΈΡ‚Π΅ прилоТСния ΠΎΡ‚ макросов, Ρ‚. Π΅. Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ·Π²Π½Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

1) Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA;


Рис. 15. ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ 1-Π³ΠΎ Π²ΠΈΠ΄Π°


Рис. 16. ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ 2-Π³ΠΎ Π²ΠΈΠ΄Π° ΠΎ высокой Π·Π°Ρ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ


2) Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Excel ΠΈΠ»ΠΈ Word (Ρ‚Π°ΠΌ, Π³Π΄Π΅ происходит Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: БСрвис + ΠœΠ°ΠΊΡ€ΠΎΡ + Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ;

4) ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΈΠ·ΠΊΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ создаваСмая Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ нСсСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы вашСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (рис. 17);

5) Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Word ΠΈΠ»ΠΈ Excel) ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ вновь.

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ case, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π² зависимости ΠΎΡ‚ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вычислСния с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ b ΠΈ c. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π° Π½Π΅ совпадаСт с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ выдаСтся сообщСниС Β«Π’Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β».

ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вводятся Π² тСкстовыС поля Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β» происходят Π²Ρ‹Π±ΠΎΡ€ дСйствия ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ значСния Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹.


Рис. 17. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½ΠΈΠ·ΠΊΠΎΠΉ бСзопасности


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

1. ΠΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Word, сохранитС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Case.

2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA ΠΈ создайтС Ρ„ΠΎΡ€ΠΌΡƒ (рис. 18).

3. ΠŸΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β».

Dim a, b, c, d As Integer

Private Sub CommandButton1_Click()

a = Val(TextBox1.Text)

b = Val(TextBox2.Text)

c = Val(TextBox3.Text)

Select Case a

Case 5

d = b + c

Label4.Caption = Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: d=Β» & d

Case 0

d = – b – c

Label4.Caption = Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: d=Β» & d

Case 10

d = b * c

Label4.Caption = Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: d=Β» & d

Case Else

Label4.Caption = Β«Π’Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β»

End Select

End Sub

Рис. 18. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 5 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ конструктора


Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ пСрСвСсти всС тСкстовыС значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вводятся Π² тСкстовыС поля, Π² числовыС. Для этого ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅: a = Val(TextBox1.Text) ΠΈ Ρ‚. Π΄. ПослС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с числовыми значСниями.

Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (числовоС ΠΈΠ»ΠΈ строковоС), Ρ‚ΠΎ строку Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ всСго Π±Π»ΠΎΠΊΠ° Case. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сначала выводятся числовыС значСния (d), Π° Π·Π°Ρ‚Π΅ΠΌ строковоС (Β«Π’Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β»). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Case.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° рис. 19.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 6. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Ρ„ΠΎΡ€ΠΌΡƒ), выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Ρ‚Ρ€Π΅Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² тСкстовыС поля ΠΎΠ½Π° считываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ сравниваСт с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выдаСтся Π² ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ (рис. 20).


Рис. 19. НСкоторыС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 5


Рис. 20. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 6 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ конструктора ΠΈ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии


Листинг ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 6

Private Sub CommandButton1_Click()

Dim a, b, c As Integer

a = Val(TextBox1.Text)

b = Val(TextBox2.Text)

c = Val(TextBox3.Text)

If a > b And a > c Then

Label1.Caption = Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π° > b ΠΈ a >cΒ»

Else

Label1.Caption = Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π° Π½Π΅ всСгда большС b ΠΈ с» End If End Sub

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 7. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ€ΠΌΡƒ, выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² тСкстовоС ΠΏΠΎΠ»Π΅ ΠΎΠ½Π° считываСт Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°, послС Ρ‡Π΅Π³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ†ΠΈΠΊΠ» for с шагом, Ρ€Π°Π²Π½Ρ‹ΠΌ 5, Π³Π΄Π΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b становится Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π° плюс шаг измСнСния. Π˜Ρ‚ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с суммируСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выдаСтся Π² ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ (рис. 21).


Рис. 21. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 7 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ конструктора ΠΈ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии


Листинг ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 7

Dim a As Variant

Dim b As Integer

Dim c As Integer

Private Sub CommandButton1_Click()

a = Val(TextBox1.Text)

For i = 1 To 12 Step 5

b = a + i

c = a + b

Next i

Label1.Caption = a & "+" & b & "=" & c

End Sub

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 8. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» for each присваиваСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b, объявлСнной Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива, Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. ПослС этого происходят вычислСния, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

β€’ Π² ΠΌΠ΅Ρ‚ΠΊΡƒ label2 выдаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ увСличСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива;

β€’ Π² ΠΌΠ΅Ρ‚ΠΊΡƒ label3 выдаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ увСличСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ суммы Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта массива;

β€’ Π² ΠΌΠ΅Ρ‚ΠΊΡƒ label4 выдаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ увСличСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ суммы Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ элСмСнта массива;

β€’ Π² ΠΌΠ΅Ρ‚ΠΊΡƒ label6 выдаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ увСличСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ суммы Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послСднСго элСмСнта массива.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выдаСтся для наглядности Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ (рис. 22).


Рис. 22. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 8 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ конструктора ΠΈ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии


Листинг ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 8

Dim b As Variant

Private Sub CommandButton1_Click()

Dim d(1 To 4) As Variant

d(1) = 15

d(2) = 0

d(3) = -10

d(4) = 25

For Each b In d

b = d(1) + b

Label2.Caption = Β«d(1)=Β» & d(1) & Β« b=Β» & b

b = d(2) + b

Label3.Caption = Β« d(2)=Β» & d(2) & Β« b=Β» & b

b = d(3) + b

Label4.Caption = Β« d(3)=Β» & d(3) & Β« b=Β» & b

b = d(4) + b

Label6.Caption = Β« d(4)=Β» & d(4) & Β« b=Β» & b

Next b

End Sub

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

Π—Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 9. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅, считанныС ΠΈΠ· тСкстовых ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, послС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сообщСниС:

«Здравствуй, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ имя, студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½ΠΎΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ!Β»,

Π³Π΄Π΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ имя – Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ тСкстового поля;

Π½ΠΎΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ – Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ тСкстового поля;

Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ – Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ тСкстового поля.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 10. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅, считанныС ΠΈΠ· тСкстовых ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: Ссли Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ тСкст ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ², Ρ‚ΠΎ выдаСтся сообщСниС Β«Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1 совпало с Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ2Β», Ссли Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ тСкст Π½Π΅ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ², Ρ‚ΠΎ выдаСтся сообщСниС Β«Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1 Π½Π΅ совпало с Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ2Β», Π³Π΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1 ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2 – Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ слова.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Like (рис. 23).


Рис. 23. Π€ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 10 Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅

Π“Π»Π°Π²Π° 3

ΠœΠ°ΡΡΠΈΠ²Ρ‹, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

3.1. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ массивов

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

Массив (array) – это коллСкция ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ имя ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Массив являСтся ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом хранСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… связанных элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…. ВсС элСмСнты Π΄Π°Π½Π½Ρ‹Ρ…, сохраняСмых Π² массивС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ.

НаимСнСС слоТный массив – это просто список элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…; Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° массив называСтся простым, ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ, массивом. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ массив ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ присваиваСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€ (мСсто Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ), Π½ΠΎ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (имярСк).

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ: Π΅Π³ΠΎ имя, количСство элСмСнтов (Ρ€Π°Π·ΠΌΠ΅Ρ€ массива), Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² массивС.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Dim:

Dim ИмяМассива (Ρ€Π°Π·ΠΌΠ΅Ρ€) As Π’ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ…

Если вмСсто слова Dim Π½Π°Π±Ρ€Π°Ρ‚ΡŒ слово Public, Π±ΡƒΠ΄Π΅Ρ‚ создан массив, ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ станСт вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.