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

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

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

НапримСр:

Option Base 0 'установка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с нуля

Option Base 1 'индСксы массивов Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 1

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 11. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Ρ€ΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массива. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° массива ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ поэлСмСнтно Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’Ρ€Π΅Ρ‚ΠΈΠΉ массив А организуСтся ΠΏΡƒΡ‚Π΅ΠΌ суммирования ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ² массивов Π’ ΠΈ Π‘ (рис. 24).

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ послС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Массив.

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

Private Sub CommandButton1_Click()

Dim B(1 To 2, 1 To 2) As Integer

Dim c(1 To 2, 1 To 2) As Integer

Dim A(1 To 2, 1 To 2) As Integer

B(1, 1) = 5

B(1, 2) = 4

B(2, 1) = 8

B(2, 2) = 10

c(1, 1) = 0

c(1, 2) = 1

c(2, 1) = 5

c(2, 2) = 10

For i = 1 To 2

For j = 1 To 2

A(i, j) = B(i, j) + c(i, j)

Next j

Next i

Label1.Caption = Β«a(1,1)=Β» & A(1, 1) & Β« a(1,2)=Β» & A(1, 2)& Β« a(2,1)=Β» & A(2, 1) & Β« a(2,2)=Β» & A(2, 2) Label2.Caption = Β«b(1,1)=Β» & B(1, 1) & Β« b(1,2)=Β» & B(1, 2) & Β« b(2,1)=Β» & B(2, 1) & Β« b(2,2)=Β» & B(2, 2)

Label3.Caption = Β«c(1,1)=Β» & c(1, 1) & Β« c(1,2)=Β» & c(1, 2) & Β« c(2,1)=Β» & c(2, 1) & Β« c(2,2)=Β» & c(2, 2)

End Sub

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


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΡƒΡŽ Π΄Π²Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массива: ΠΎΠ΄ΠΈΠ½ массив Π²Π²ΠΎΠ΄ΠΎΠΌ числовых элСмСнтов Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовыС поля Ρ„ΠΎΡ€ΠΌΡ‹, Π²Ρ‚ΠΎΡ€ΠΎΠΉ – Π²Π²ΠΎΠ΄ΠΎΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовыС поля Ρ„ΠΎΡ€ΠΌΡ‹ (рис. 25, 26). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всС элСмСнты ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° 10 ΠΈ выводятся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΆΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ строкового массива ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ°: Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ фамилия Иванов, Π³Π΄Π΅ Иванов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) бСрСтся ΠΈΠ· строкового массива, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовыС поля. Π”Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ послС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.


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


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


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

Private Sub CommandButton1_Click()

Dim B(1 To 2, 1 To 2) As String

Dim c(1 To 2, 1 To 2) As String

Dim A(1 To 2, 1 To 2) As String

Dim d(1 To 2, 1 To 2) As Integer

Dim k(1 To 2, 1 To 2) As Integer

B(1, 1) = TextBox5.Text

B(1, 2) = TextBox6.Text

B(2, 1) = TextBox7.Text

B(2, 2) = TextBox8.Text

d(1, 1) = Val(TextBox1.Text)

d(1, 2) = Val(TextBox2.Text)

d(2, 1) = Val(TextBox3.Text)

d(2, 2) = Val(TextBox4.Text)

For i = 1 To 2

For j = 1 To 2

k(i, j) = d(i, j) + 10

Next j

Next i

For i = 1 To 2

For j = 1 To 2

c(i, j) = «фамилия» + B(i, j)

Next j

Next i

For i = 1 To 2

For j = 1 To 2

A(i, j) = Β«Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΒ» + c(i, j)

Next j

Next i

Label3.Caption = Β«a(1,1)=Β» & A(1, 1) & Β« a(1,2)=Β» & A(1, 2) & Β« a(2,1)=Β» & A(2, 1) & Β« a(2,2)=Β» & A(2, 2)

Label6.Caption = Β«k(1,1)=Β» & k(1, 1) & Β« k(1,2)=Β» & k(1, 2) & Β« k(2,1)=Β» & k(2, 1) & Β« k(2,2)=Β» & k(2, 2)

End Sub

3.2. Π Π°Π±ΠΎΡ‚Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏ, опрСдСляСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

VBA позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ свои собствСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏ Π½ΡƒΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ нСсколько связанных ΠΏΠΎ смыслу элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ эти элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структурного Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° рис. 27. Π’ΠΈΠΏ Book состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов: Title (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ String, Content – динамичСский массив строкового Ρ‚ΠΈΠΏΠ°, содСрТащий Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π² ΠΊΠ½ΠΈΠ³ΠΈ, Author (Π°Π²Ρ‚ΠΎΡ€ ΠΊΠ½ΠΈΠ³ΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ‚ΠΎΠΆΠ΅ являСтся структурным Ρ‚ΠΈΠΏΠΎΠΌ, состоящим ΠΈΠ· Π΄Π²ΡƒΡ… простых элСмСнтов – Name (имя) ΠΈ Birthday (дСнь роТдСния).

Рис. 27. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структурного Ρ‚ΠΈΠΏΠ°, опрСдСляСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ


Для объявлСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ΡƒΡ€Π΅:

Π’ΡƒΡ€Π΅ <имяВипа>

…<имяЭлСмСнта1> [([<Ρ€Π°Π·ΠΌΠ΅Ρ€1>])] As <Ρ‚ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ…1>

…<имяЭлСмСнта2> [([<Ρ€Π°Π·ΠΌΠ΅Ρ€2>])] As <Ρ‚ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ…2>

End Π’ΡƒΡ€Π΅

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ простыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ массивы встроСнных Ρ‚ΠΈΠΏΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ массивы Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ². Π’ΠΈΠΏΡ‹ Book ΠΈ Person (см. рис. 27) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Type Person

Name As String

Birthday As Date

End Type

Type Book

author As Person

Title As String

Content () as String

End Type

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… структурного Ρ‚ΠΈΠΏΠ° выполняСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Dim MyBook As Book, Editor As Person

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту структурного Ρ‚ΠΈΠΏΠ° выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

MyBook.Title = Β«Π£Ρ‡Π΅Π±Π½ΠΈΠΊΒ»

ReDim MyBook.Content (0 to 10)

MyBook.Content(0) = Β«ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°Β»

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ структурного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… являСтся пСрСчисляСмый Ρ‚ΠΈΠΏ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ пСрСчисляСмого Ρ‚ΠΈΠΏΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ всС Π΅Π³ΠΎ значСния. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ пСрСчисляСмый Ρ‚ΠΈΠΏ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Enum:

Enum <имяВипа> <имяЗначСния1> [=<ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°>] <имяЗначСния2>

[=<ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°>]

End Enum

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС значСния Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, начиная с 0, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ константноС Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ пСрСчисляСмого Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… являСтся встроСнный логичСский Ρ‚ΠΈΠΏ Boolean.

Enum Boolean False

True End Enum

Над ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мноТСство ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… дСйствий, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… опСрациями. Π―Π·Ρ‹ΠΊ VBA ΠΈΠΌΠ΅Π΅Ρ‚ большоС количСство встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ называСтся автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² эквивалСнтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² процСссС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ выполняСтся, Ссли ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ (Π΄Π°Π½Π½Ρ‹Π΅, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. ΠŸΡ€ΠΈ этом Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ приводится ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². НапримСр, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²Π° числа – Ρ†Π΅Π»ΠΎΠ΅ (Integer) ΠΈ вСщСствСнноС (Double). Π’ процСссС этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†Π΅Π»ΠΎΠ΅ число приводится ΠΊ вСщСствСнному (Double), ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ Double. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (Double Π² Integer) ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. На рис. 28 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° схСма, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ, значСния ΠΊΠ°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ приводятся Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.


Рис. 28. Π‘Ρ…Π΅ΠΌΠ° прСобразования Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ


VBA ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для явного прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² опСрациях. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 11.


Π’Π°Π±Π»ΠΈΡ†Π° 11

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования Ρ‚ΠΈΠΏΠΎΠ²ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строками

Для Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° String сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° опСрация – конкатСнация (объСдинСниС). НапримСр, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Ρ… строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Β«ΠŸΠ΅Ρ‚Ρ€Β» & " " & Β«Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡Β» Π±ΡƒΠ΄Π΅Ρ‚ строка Β«ΠŸΠ΅Ρ‚Ρ€ Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡Β». Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ использованиС Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: «дСсяти» + «тысячник». Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими выраТСниями состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ значСния любого Ρ‚ΠΈΠΏΠ° (ΠΎΠ½ΠΈ просто Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² строковыС), Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ – ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ String.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками сущСствуСт большоС количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Ρ‚Π°Π±Π». 12).


Π’Π°Π±Π»ΠΈΡ†Π° 12

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

Для сравнСния строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ сравнСнии символов ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΡ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹.

Для сравнСния строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Like, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ совпадСниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал» Like Β«Π’Ρ…ΠΎΠ΄*Β» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сравниваСмая строка начинаСтся со слова Β«Π’Ρ…ΠΎΠ΄Β». Π‘ΠΈΠΌΠ²ΠΎΠ» Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° (*) Π² строкС замСняСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число символов. Π”Ρ€ΡƒΠ³ΠΈΠ΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Like Π² сравниваСмой строкС:

β€’ ? β€“ любой символ (ΠΎΠ΄ΠΈΠ½);

β€’ #– ΠΎΠ΄Π½Π° Ρ†ΠΈΡ„Ρ€Π° (0–9);

β€’ [<список>] – символ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· символов списка;

β€’ [!<список>] – символ, Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ Π½ΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· символов списка.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивом строк.

Split (<строка> [,<Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ>]) – ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² массив подстрок. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² качСствС раздСлитСля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π». Π”Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для разбиСния прСдлоТСния Π½Π° слова. Однако ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

НапримСр, Split(3, Β«Π­Ρ‚o тСстовоС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β») Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Β«Π­Ρ‚ΠΎΒ», «тСстовоС», Β«ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β».

Join (<массивБтрок> [,<Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ>]) – ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ массив строк Π² ΠΎΠ΄Π½Ρƒ строку с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ.

Filter(<массивБтрок>,<ΡΡ‚Ρ€ΠΎΠΊΠ°ΠŸΠΎΠΈΡΠΊ>[,<Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅>] [,<сравнСниС>]) – просматриваСт массив строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡ‰Π΅Ρ‚ Π² Π½Π΅ΠΌ всС подстроки, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строкой.

Π­Ρ‚Π° функция ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

<ΡΡ‚Ρ€ΠΎΠΊΠ°ΠŸΠΎΠΈΡΠΊ> β€“ искомая строка;

<Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅> β€“ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (булСвскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ строки Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΡΠΊΠΎΠΌΡƒΡŽ подстроку ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ строки массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ содСрТат искомой строки Π² качСствС подстроки;