ReDim Statement

ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ массив.

Бинтаксис

[ReDim]Dim Имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ [(Начало To ΠšΠΎΠ½Π΅Ρ†)] [As Π’ΠΈΠΏ_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ][, Имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ2 [(Начало To ΠšΠΎΠ½Π΅Ρ†)] [As Π’ΠΈΠΏ_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ][,...]]

ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Preserve ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ измСнСнию содСрТимого массива, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

Имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π›ΡŽΠ±ΠΎΠ΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ массива.

Начало, ΠšΠΎΠ½Π΅Ρ†. ЧисловыС значСния ΠΈΠ»ΠΈ константы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ число элСмСнтов (Число_элСмСнтов=(ΠšΠΎΠ½Π΅Ρ†-Начало)+1) ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ индСксов.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Начало ΠΈ ΠšΠΎΠ½Π΅Ρ† ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ числовыми выраТСниями, Ссли инструкция ReDim примСняСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π’ΠΈΠΏ_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово. Π’ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Bool . ЛогичСская пСрСмСнная (True, False)

Date. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π°Ρ‚Ρ‹

Double. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ точности (1.79769313486232x10E308 - 4.94065645841247x10E-324)

Integer. ЦСлая пСрСмСнная (-32768 - 32767)

Long. ЦСлая пСрСмСнная Ρ‚ΠΈΠΏΠ° Long (-2Β 147Β 483Β 648 -2Β 147Β 483Β 647)

Object ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° Object (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Set!)

[Single]. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (3.402823x10E38 - 1.401298x10E-45). Если ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, пСрСмСнная опрСдСляСтся ΠΊΠ°ΠΊ Single, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ какая-Π»ΠΈΠ±ΠΎ ΠΈΠ· инструкций ΠΎΡ‚ DefBool Π΄ΠΎ DefVar..

String. Бтроковая пСрСмСнная, содСрТащая Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 64Β 000 символов ASCII.

Variant . ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° Variant (ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС Ρ‚ΠΈΠΏΡ‹ ΠΈ задаётся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ).

Π’ LibreOffice Basic Π½Π΅ трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΎ явным. Однако ΠΏΠ΅Ρ€Π΅Π΄ использованиСм массива Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ. Для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструкциСй Dim, раздСляя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… запятыми. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ символ описания Ρ‚ΠΈΠΏΠ° послС ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.

Π’ LibreOffice Basic ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎ- ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, опрСдСляСмыС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит списки ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ массивов Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Π² соотвСтствии с индСксами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сформулированы ΠΊΠ°ΠΊ числовыС выраТСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Для задания Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° индСксов для массивов, описанных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции Dim, сущСствуСт Π΄Π²Π° способа:

DIM text(20) As String REM 21 элСмСнт, ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 20

DIM text(5 to 25) As String REM 21 элСмСнт, ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ 5 Π΄ΠΎ 25

DIM text$(-15 to 5) As String REM 21 элСмСнт (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ 0),

rem ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ -15 Π΄ΠΎ 5

Поля ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ динамичСскими, Ссли ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ инструкциСй ReDim Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈΠ»ΠΈ функциях. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π±Π΅Π· возмоТности Π΅Π³ΠΎ измСнСния. Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции ReDim с использованиСм числовых Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Sub ExampleRedim

Dim iVar() As Integer, iCount As Integer

ReDim iVar(5) As Integer

For iCount = 1 To 5

    iVar(iCount) = iCount

Next iCount

ReDim iVar(10) As Integer

For iCount = 1 To 10

    iVar(iCount) = iCount

Next iCount

End Sub