Dim Statement

λ³€μˆ˜λ‚˜ 배열을 μ„ μ–Έν•©λ‹ˆλ‹€.

λ³€μˆ˜κ°€ μ‰Όν‘œλ‘œ κ΅¬λΆ„λœ 경우(예: DIM sPar1, sPar2, sPar3 AS STRING) Variant λ³€μˆ˜λ§Œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. 각 λ³€μˆ˜μ— λŒ€ν•΄ λ³„λ„μ˜ 지정 쀄을 μ‚¬μš©ν•©λ‹ˆλ‹€.

Dim sPar1 As String

Dim sPar2 As String

Dim sPar3 As String

Dim은 μ„œλΈŒλ£¨ν‹΄ λ‚΄μ—μ„œ 둜컬 λ³€μˆ˜λ₯Ό μ„ μ–Έν•©λ‹ˆλ‹€. μ „μ—­ λ³€μˆ˜λŠ” PUBLIC λ˜λŠ” PRIVATE 문을 μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•©λ‹ˆλ‹€.

ꡬ문:

[ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

맀개 λ³€μˆ˜:

VarName: μž„μ˜μ˜ λ³€μˆ˜ λ˜λŠ” λ°°μ—΄ μ΄λ¦„μž…λ‹ˆλ‹€.

Start, End: μš”μ†Œ 수(NumberElements=(end-start)+1)와 색인 λ²”μœ„λ₯Ό μ§€μ •ν•˜λŠ” 숫자 κ°’ λ˜λŠ” μƒμˆ˜μž…λ‹ˆλ‹€.

ReDim이 ν”„λ‘œμ‹œμ € μˆ˜μ€€μ—μ„œ 적용될 경우 Start 및 EndλŠ” 숫자 식이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

VarType: λ³€μˆ˜μ˜ 데이터 ν˜•μ‹μ„ μ„ μ–Έν•˜λŠ” ν‚€μ›Œλ“œμž…λ‹ˆλ‹€.

Keyword: λ³€μˆ˜ μœ ν˜•

Bool: Boolean λ³€μˆ˜(True, False)

Currency: Currency λ³€μˆ˜(μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ 4개인 톡화)

Date: Date λ³€μˆ˜

Double: Double-precision 뢀동 μ†Œμˆ˜μ  λ³€μˆ˜(1,79769313486232Β xΒ 10E308 - 4,94065645841247 x 10E-324)

Integer: Integer λ³€μˆ˜(-32768 - 32767)

Long: Long integer λ³€μˆ˜(-2.147.483.648 - 2.147.483.647)

Object: Object λ³€μˆ˜(μ°Έκ³ : 이 λ³€μˆ˜λŠ” 이후에 Set을 ν†΅ν•΄μ„œλ§Œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.)

Single: Single-precision 뢀동 μ†Œμˆ˜μ  λ³€μˆ˜(3,402823 x 10E38 - 1,401298 x 10E-45)

String: μ΅œλŒ€ 64,000개의 ASCII 문자둜 κ΅¬μ„±λ˜λŠ” String λ³€μˆ˜

[Variant]: Variant λ³€μˆ˜ μœ ν˜•(λͺ¨λ“  μœ ν˜•μ„ ν¬ν•¨ν•˜λ©° μ •μ˜λ³„λ‘œ 지정됨). ν‚€μ›Œλ“œκ°€ μ§€μ •λ˜μ§€ μ•ŠμœΌλ©΄ DefBoolμ—μ„œ DefVarκΉŒμ§€μ˜ 문이 μ‚¬μš©λ˜μ§€ μ•Šμ€ 경우 λ³€μˆ˜λŠ” μžλ™μœΌλ‘œ Variant μœ ν˜•μœΌλ‘œ μ§€μ •λ©λ‹ˆλ‹€.

LibreOffice Basicμ—μ„œλŠ” λ³€μˆ˜λ₯Ό λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 배열을 μ‚¬μš©ν•  수 있으렀면 λ¨Όμ € 배열을 μ„ μ–Έν•΄μ•Ό ν•©λ‹ˆλ‹€. λ³€μˆ˜λŠ” Dim 문을 μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•  수 있으며, μ΄λ•Œ μ—¬λŸ¬ 선언을 κ΅¬λΆ„ν•˜λ €λ©΄ μ‰Όν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. λ³€μˆ˜ μœ ν˜•μ„ μ„ μ–Έν•˜λ €λ©΄ 이름 뒀에 μœ ν˜• μ„ μ–Έ 문자λ₯Ό μž…λ ₯ν•˜κ±°λ‚˜ ν•΄λ‹Ή ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

LibreOffice Basic은 μ§€μ •ν•œ λ³€μˆ˜ μœ ν˜•μ— μ˜ν•΄ μ§€μ •λ˜λŠ” 일차원 λ˜λŠ” 닀차원 배열을 μ§€μ›ν•©λ‹ˆλ‹€. νŽΈμ§‘ν•  λͺ©λ‘μ΄λ‚˜ ν…Œμ΄λΈ”μ΄ ν”„λ‘œκ·Έλž¨μ— ν¬ν•¨λœ κ²½μš°μ— 배열이 μ ν•©ν•©λ‹ˆλ‹€. λ°°μ—΄μ˜ μž₯점은 숫자 식 λ˜λŠ” λ³€μˆ˜λ‘œ 곡식화할 수 μžˆλŠ” 색인에 따라 κ°œλ³„ μš”μ†Œλ₯Ό 지정할 수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

배열은 Dim 문을 μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•©λ‹ˆλ‹€. 색인 λ²”μœ„λ₯Ό μ§€μ •ν•˜λŠ” λ°©λ²•μ—λŠ” λ‹€μŒ 두 가지가 μžˆμŠ΅λ‹ˆλ‹€.

DIM text(20) as String REM 21 elements numbered from 0 to 20

DIM text(5 to 25) as String REM 21 elements numbered from 5 to 25

DIM text(-15 to 5) as String REM 21 elements (including 0)

REM numbered from -15 to 5

2차원 데이터 ν•„λ“œ

DIM text(20,2) as String REM 63 elements; form 0 to 20 level 1, from 0 to 20 level 2 and from 0 to 20 level 3.

ReDim 문이 μ„œλΈŒλ£¨ν‹΄μ˜ 차원 수λ₯Ό μ§€μ •ν•˜κ±°λ‚˜ 배열을 ν¬ν•¨ν•˜λŠ” ν•¨μˆ˜λ₯Ό 지정할 경우 λ°°μ—΄ μœ ν˜•μ„ 동적인 κ²ƒμœΌλ‘œ μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€. 일반적으둜 λ°°μ—΄ 차원은 ν•œ 번만 지정할 수 있으며 μˆ˜μ •ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ„œλΈŒλ£¨ν‹΄ λ‚΄μ—μ„œ ReDim을 μ‚¬μš©ν•˜μ—¬ 배열을 μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€. 차원을 지정할 λ•ŒλŠ” 숫자 μ‹λ§Œ μ‚¬μš©ν•  수 μžˆλŠ”λ°, 이것은 ν•„λ“œκ°€ ν•„μš” μ΄μƒμœΌλ‘œ μ»€μ§€λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.

예:

Sub ExampleDim1

Dim sVar As String

Dim iVar As Integer

    sVar = "Star Office"

End Sub

 

Sub ExampleDim2

2차원 데이터 ν•„λ“œ

Dim stext(20,2) As String

Const sDim as String = " Dimension:"

For i = 0 To 20

    For ii = 0 To 2

        stext(i,ii) = str(i) & sDim & str(ii)

    Next ii

Next i

For i = 0 To 20

    For ii = 0 To 2

        MsgBox stext(i,ii)

    Next ii

Next i

End Sub