λ³€μˆ˜ μ‚¬μš©

λ‹€μŒμ€ LibreOffice Basic의 λ³€μˆ˜ μ‚¬μš©μ— λŒ€ν•œ 기본적인 사항을 μ„€λͺ…ν•œ κ²ƒμž…λ‹ˆλ‹€.

λ³€μˆ˜μ˜ λͺ…λͺ… κ·œμΉ™

λ³€μˆ˜ 이름은 μ΅œλŒ€ 255자둜 ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€. λ³€μˆ˜ μ΄λ¦„μ˜ 첫 번째 λ¬ΈμžλŠ” λ°˜λ“œμ‹œ A-Z λ˜λŠ” a-z μ‚¬μ΄μ˜ λ¬Έμžμ—¬μ•Ό ν•©λ‹ˆλ‹€. λ³€μˆ˜ 이름에 μˆ«μžλŠ” μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, λ¬Έμž₯ λΆ€ν˜Έλ‚˜ 특수 λ¬ΈμžλŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 단, 밑쀄("_")은 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. LibreOffice Basicμ—μ„œ λ³€μˆ˜ ν™•μΈμžλŠ” λŒ€/μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ³€μˆ˜ 이름에 곡백을 μ‚¬μš©ν•  κ²½μš°μ—λŠ” ν•΄λ‹Ή λ³€μˆ˜λ₯Ό κ°κ΄„ν˜Έλ‘œ λ¬Άμ–΄μ•Ό ν•©λ‹ˆλ‹€.

λ³€μˆ˜ μ‹λ³„μž 예:

MyNumber=5

μœ νš¨ν•¨

MyNumber5=15

μœ νš¨ν•¨

MyNumber_5=20

μœ νš¨ν•¨

My Number=20

μœ νš¨ν•˜μ§€ μ•ŠμŒ, 곡백이 ν¬ν•¨λœ λ³€μˆ˜λŠ” κ΄„ν˜Έλ‘œ λ¬Άμ–΄μ•Ό ν•©λ‹ˆλ‹€.

[My Number]=12

μœ νš¨ν•¨

DΓ©jΓ Vu=25

μœ νš¨ν•˜μ§€ μ•ŠμŒ, 특수 λ¬ΈμžλŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

5MyNumber=12

μœ νš¨ν•˜μ§€ μ•ŠμŒ, λ³€μˆ˜λŠ” 숫자둜 μ‹œμž‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

Number,Mine=12

μœ νš¨ν•˜μ§€ μ•ŠμŒ, λ¬Έμž₯ λΆ€ν˜ΈλŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.


λ³€μˆ˜ μ„ μ–Έ

LibreOffice Basicμ—μ„œλŠ” λ³€μˆ˜λ₯Ό λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ³€μˆ˜ 선언은 Dim 문을 μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‰Όν‘œλ‘œ 이름을 κ΅¬λΆ„ν•˜λ©΄ 두 개 μ΄μƒμ˜ λ³€μˆ˜λ₯Ό λ™μ‹œμ— μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ³€μˆ˜ μœ ν˜•μ„ μ§€μ •ν•˜λ €λ©΄ 이름 λ’€μ—μ„œ μœ ν˜• μ„ μ–Έ 기호λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ ν•΄λ‹Ή ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

λ³€μˆ˜ μ„ μ–Έμ˜ 예:

Dim a$

λ³€μˆ˜ "a"λ₯Ό String으둜 μ„ μ–Έν•©λ‹ˆλ‹€.

Dim a As String

λ³€μˆ˜ "a"λ₯Ό String으둜 μ„ μ–Έν•©λ‹ˆλ‹€.

Dim a$, b As Integer

λ³€μˆ˜ ν•˜λ‚˜λŠ” String으둜, λ‹€λ₯Έ ν•˜λ‚˜λŠ” Integer둜 μ„ μ–Έν•©λ‹ˆλ‹€.

Dim c As Boolean

cλ₯Ό Boolean λ³€μˆ˜(TRUE λ˜λŠ” FALSE)둜 μ„ μ–Έν•©λ‹ˆλ‹€.


λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ ν‚€μ›Œλ“œ λŒ€μ‹  μœ ν˜• μ„ μ–Έ 문자λ₯Ό μ‚¬μš©ν•œ 경우 μœ ν˜• μ„ μ–Έ 문자λ₯Ό 맀번 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λŠ” 것이 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λ‹€μŒ 문은 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Dim a$

"a"λ₯Ό String으둜 μ„ μ–Έν•©λ‹ˆλ‹€.

a="TestString"

μœ ν˜• μ„ μ–Έ "a$="κ°€ λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


κ²½κ³  μ•„μ΄μ½˜

λ³€μˆ˜λ₯Ό νŠΉμ • μœ ν˜•μœΌλ‘œ μ„ μ–Έν•œ λ‹€μŒμ—λŠ” ν•΄λ‹Ή λ³€μˆ˜λ₯Ό λ™μΌν•œ 이름을 κ°€μ§€κ³  λ‹€λ₯Έ μœ ν˜•μœΌλ‘œ μ„ μ–Έν•  수 μ—†μŠ΅λ‹ˆλ‹€.


λ³€μˆ˜ μ„ μ–Έ κ°•μ œ

λ³€μˆ˜ 선언을 κ°•μ œν•˜λ €λ©΄ λ‹€μŒ λͺ…령을 μ‚¬μš©ν•©λ‹ˆλ‹€.

Option Explicit

Option Explicit 문은 λͺ¨λ“ˆμ—μ„œ 첫 번째 SUB μ•žμ˜ 첫 쀄에 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 일반적으둜 λ°°μ—΄λ§Œ λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‹€λ₯Έ λͺ¨λ“  λ³€μˆ˜λŠ” μœ ν˜• μ„ μ–Έ λ¬Έμžμ— 따라 μ„ μ–Έλ˜κ±°λ‚˜ 이 λ¬Έμžκ°€ 없을 경우 κΈ°λ³Έ μœ ν˜•μΈ Single둜 μ„ μ–Έλ©λ‹ˆλ‹€.

λ³€μˆ˜ μœ ν˜•

LibreOffice Basic은 λ‹€μŒκ³Ό 같은 λ„€ κ°€μ§€ λ³€μˆ˜ 클래슀λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

Integer λ³€μˆ˜

Integer λ³€μˆ˜λŠ” -32768μ—μ„œ 32767κΉŒμ§€μ˜ λ²”μœ„λ₯Ό κ°€μ§‘λ‹ˆλ‹€. Integer λ³€μˆ˜μ— 뢀동 μ†Œμˆ˜μ  값을 ν• λ‹Ήν•  경우 μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ λ‹€μŒ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όλ©λ‹ˆλ‹€. Integer λ³€μˆ˜λŠ” ν”„λ‘œμ‹œμ €μ—μ„œ μ‹ μ†ν•˜κ²Œ κ³„μ‚°λ˜κΈ° λ•Œλ¬Έμ— λ£¨ν”„μ˜ μΉ΄μš΄ν„° λ³€μˆ˜μ— μ ν•©ν•©λ‹ˆλ‹€. Integer λ³€μˆ˜μ—λŠ” 단지 2λ°”μ΄νŠΈμ˜ λ©”λͺ¨λ¦¬λ§Œ ν•„μš”ν•˜λ©° μœ ν˜• μ„ μ–Έ λ¬ΈμžλŠ” "%"μž…λ‹ˆλ‹€.

Dim Variable%

Dim Variable As Integer

Long Integer λ³€μˆ˜

Long Integer λ³€μˆ˜λŠ” -2147483648μ—μ„œ 2147483647κΉŒμ§€μ˜ λ²”μœ„λ₯Ό κ°€μ§‘λ‹ˆλ‹€. Long Integer λ³€μˆ˜μ— 뢀동 μ†Œμˆ˜μ  값을 ν• λ‹Ήν•  경우 μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ λ‹€μŒ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όλ©λ‹ˆλ‹€. Long Integer λ³€μˆ˜λŠ” ν”„λ‘œμ‹œμ €μ—μ„œ μ‹ μ†ν•˜κ²Œ κ³„μ‚°λ˜κΈ° λ•Œλ¬Έμ— 큰 값에 λŒ€ν•œ λ£¨ν”„μ˜ μΉ΄μš΄ν„° λ³€μˆ˜μ— μ ν•©ν•©λ‹ˆλ‹€. Long Integer λ³€μˆ˜μ—λŠ” 4λ°”μ΄νŠΈμ˜ λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•˜λ©° μœ ν˜• μ„ μ–Έ λ¬ΈμžλŠ” "&"μž…λ‹ˆλ‹€.

Dim Variable&

Dim Variable As Long

decimal λ³€μˆ˜

decimal λ³€μˆ˜λŠ” μ–‘μˆ˜, 음수 λ˜λŠ” 0 값을 μ·¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜λŠ” μ΅œλŒ€ 29개둜 μ œν•œλ©λ‹ˆλ‹€.

μ†Œμˆ˜ μ•žμ— λ”ν•˜κΈ°(+) λ˜λŠ” λΉΌκΈ°(-) 기호λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€(곡백 유무 관계 μ—†μŒ).

integer λ³€μˆ˜μ— μ†Œμˆ˜κ°€ ν• λ‹Ήλ˜λ©΄ LibreOffice Basic이 숫자λ₯Ό 올림 λ˜λŠ” λ²„λ¦Όν•©λ‹ˆλ‹€.

Single λ³€μˆ˜

Single λ³€μˆ˜λŠ” 3.402823 x 10E38μ—μ„œ 1.401298 x 10E-45κΉŒμ§€μ˜ μ–‘μˆ˜ λ˜λŠ” 음수 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. Single λ³€μˆ˜λŠ” ν•΄λ‹Ή μˆ«μžμ—μ„œ μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ μ•„λ‹Œ 뢀뢄이 μ¦κ°€ν•˜λ©΄ μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ κ°μ†Œν•˜λŠ” 뢀동 μ†Œμˆ˜μ  λ³€μˆ˜μž…λ‹ˆλ‹€. Single λ³€μˆ˜λŠ” 평균 정확도λ₯Ό ν•„μš”λ‘œ ν•˜λŠ” μˆ˜ν•™ 계산에 μ ν•©ν•©λ‹ˆλ‹€. Integer λ³€μˆ˜λ³΄λ‹€ 계산 μ‹œκ°„μ΄ 였래 κ±Έλ¦¬μ§€λ§Œ Double λ³€μˆ˜λ₯Ό μ‚¬μš©ν•œ κ³„μ‚°λ³΄λ‹€λŠ” λΉ λ¦…λ‹ˆλ‹€. Single λ³€μˆ˜μ—λŠ” 4λ°”μ΄νŠΈμ˜ λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•˜λ©° μœ ν˜• μ„ μ–Έ λ¬ΈμžλŠ” "!"μž…λ‹ˆλ‹€.

Dim Variable!

Dim Variable As Single

Double λ³€μˆ˜

Double λ³€μˆ˜λŠ” 1.79769313486232 x 10E308μ—μ„œ 4.94065645841247 x 10E-324κΉŒμ§€μ˜ μ–‘μˆ˜ λ˜λŠ” 음수 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. Double λ³€μˆ˜λŠ” ν•΄λ‹Ή μˆ«μžμ—μ„œ μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ μ•„λ‹Œ 뢀뢄이 μ¦κ°€ν•˜λ©΄ μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ κ°μ†Œν•˜λŠ” 뢀동 μ†Œμˆ˜μ  λ³€μˆ˜μž…λ‹ˆλ‹€. Double λ³€μˆ˜λŠ” μ •λ°€ 계산에 μ ν•©ν•˜κ³  계산 μ‹œκ°„μ΄ Single λ³€μˆ˜λ³΄λ‹€ 였래 κ±Έλ¦½λ‹ˆλ‹€. Double λ³€μˆ˜μ—λŠ” 8λ°”μ΄νŠΈμ˜ λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•˜λ©° μœ ν˜• μ„ μ–Έ λ¬ΈμžλŠ” "#"μž…λ‹ˆλ‹€.

Dim Variable#

Dim Variable As Double

Currency λ³€μˆ˜

Currency λ³€μˆ˜λŠ” λ‚΄λΆ€μ μœΌλ‘œ 64λΉ„νŠΈ 숫자(8λ°”μ΄νŠΈ)둜 μ €μž₯되며 μ†Œμˆ˜μ  μ•ž μžλ¦Ώμˆ˜κ°€ 15자리이고 μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ 4자리인 κ³ μ • μ†Œμˆ˜μ  숫자둜 ν‘œμ‹œλ©λ‹ˆλ‹€. κ°’ λ²”μœ„λŠ” -922337203685477.5808μ—μ„œ +922337203685477.5807κΉŒμ§€μž…λ‹ˆλ‹€. Currency λ³€μˆ˜λŠ” 정확도가 높은 톡화 κ°’ 계산에 μ‚¬μš©λ˜λ©° μœ ν˜• μ„ μ–Έ λ¬ΈμžλŠ” "@"μž…λ‹ˆλ‹€.

Dim Variable@

Dim Variable As Currency

String λ³€μˆ˜

String λ³€μˆ˜λŠ” μ΅œλŒ€ 65,535자의 λ¬Έμžμ—΄μ„ 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. 각 λ¬ΈμžλŠ” ν•΄λ‹Ή μœ λ‹ˆμ½”λ“œ κ°’μœΌλ‘œ μ €μž₯λ©λ‹ˆλ‹€. String λ³€μˆ˜λŠ” ν”„λ‘œκ·Έλž¨ λ‚΄μ˜ λ¬Έμ„œ μž‘μ—…κ³Ό μ΅œλŒ€ 64KB의 인쇄할 수 μ—†λŠ” 문자의 μž„μ‹œ μ €μž₯에 μ ν•©ν•©λ‹ˆλ‹€. String λ³€μˆ˜λ₯Ό μ €μž₯ν•˜λŠ” 데 ν•„μš”ν•œ λ©”λͺ¨λ¦¬λŠ” λ³€μˆ˜μ˜ 문자 μˆ˜μ— 따라 λ‹¬λΌμ§‘λ‹ˆλ‹€. μœ ν˜• μ„ μ–Έ λ¬ΈμžλŠ” "$"μž…λ‹ˆλ‹€.

Dim Variable$

Dim Variable As String

Boolean λ³€μˆ˜

Boolean λ³€μˆ˜λŠ” TRUE κ°’ λ˜λŠ” FALSE κ°’ 쀑 ν•˜λ‚˜λ§Œ μ €μž₯ν•©λ‹ˆλ‹€. 숫자 0은 FALSE, λ‹€λ₯Έ λͺ¨λ“  값은 TRUE둜 ν‰κ°€λ©λ‹ˆλ‹€.

Dim Variable As Boolean

Date λ³€μˆ˜

Date λ³€μˆ˜λŠ” λ‚΄λΆ€ μ„œμ‹μœΌλ‘œ μ €μž₯된 λ‚ μ§œ 및 μ‹œκ°„ κ°’λ§Œ 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. Dateserial, Datevalue, Timeserial λ˜λŠ” Timevalueλ₯Ό μ‚¬μš©ν•˜μ—¬ Date λ³€μˆ˜μ— ν• λ‹Ήλœ 값은 μžλ™μœΌλ‘œ λ‚΄λΆ€ μ„œμ‹μœΌλ‘œ λ³€ν™˜λ©λ‹ˆλ‹€. Date λ³€μˆ˜λŠ” Day, Month, Year λ˜λŠ” Hour, Minute, Second ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 일반 숫자둜 λ³€ν™˜λ©λ‹ˆλ‹€. λ‚΄λΆ€ μ„œμ‹μ€ 두 숫자의 μ°¨λ₯Ό κ³„μ‚°ν•˜μ—¬ λ‚ μ§œ/μ‹œκ°„ 값을 비ꡐ할 수 있게 ν•©λ‹ˆλ‹€. Date λ³€μˆ˜λŠ” ν‚€μ›Œλ“œ Date둜만 μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Dim Variable As Date

초기 λ³€μˆ˜ κ°’

이 λ³€μˆ˜λŠ” μ„ μ–Έλ˜μžλ§ˆμž "Null" κ°’μœΌλ‘œ μžλ™ μ„€μ •λ©λ‹ˆλ‹€. λ‹€μŒ κ·œμΉ™μ— μ£Όμ˜ν•©λ‹ˆλ‹€.

Numeric λ³€μˆ˜λŠ” μ„ μ–Έλ˜μžλ§ˆμž κ°’ "0"이 μžλ™μœΌλ‘œ ν• λ‹Ήλ©λ‹ˆλ‹€.

Date λ³€μˆ˜μ—λŠ” κ°’ 0이 λ‚΄λΆ€μ μœΌλ‘œ ν• λ‹Ήλ©λ‹ˆλ‹€. 이것은 Day, Month, Year λ˜λŠ” Hour, Minute, Second ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 "0"으둜 λ³€ν™˜ν•˜λŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€.

String λ³€μˆ˜λŠ” 선언될 λ•Œ 빈 λ¬Έμžμ—΄("")이 ν• λ‹Ήλ©λ‹ˆλ‹€.

λ°°μ—΄

LibreOffice Basic은 μ§€μ •ν•œ λ³€μˆ˜ μœ ν˜•μ— μ˜ν•΄ μ§€μ •λ˜λŠ” 일차원 λ˜λŠ” 닀차원 배열을 μΈμ‹ν•©λ‹ˆλ‹€. 배열은 ν”„λ‘œκ·Έλž¨μ—μ„œ λͺ©λ‘κ³Ό ν…Œμ΄λΈ”μ„ νŽΈμ§‘ν•˜λŠ” 데 μ ν•©ν•©λ‹ˆλ‹€. λ°°μ—΄μ˜ κ°œλ³„ μš”μ†ŒλŠ” 숫자 색인을 톡해 μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

배열은 λ°˜λ“œμ‹œ Dim 문을 μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‹€μŒμ€ λ°°μ—΄μ˜ 색인 λ²”μœ„λ₯Ό μ§€μ •ν•˜λŠ” λͺ‡ κ°€μ§€ λ°©λ²•μž…λ‹ˆλ‹€.

Dim Text$(20)

0μ—μ„œ 20λ²ˆκΉŒμ§€ 번호 맀겨진 21개의 μš”μ†Œ

Dim Text$(5,4)

30개의 μš”μ†Œ(6 x 5 μš”μ†Œμ˜ λ°°μ—΄)

Dim Text$(5 To 25)

5μ—μ„œ 25κΉŒμ§€ 번호 맀겨진 21개의 μš”μ†Œ

Dim Text$(-15 To 5)

-15μ—μ„œ 5κΉŒμ§€ 번호 맀겨진 21개의 μš”μ†Œ(0 포함)


색인 λ²”μœ„λŠ” μ–‘μˆ˜μ™€ 음수λ₯Ό λͺ¨λ‘ 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.

μƒμˆ˜

μƒμˆ˜λŠ” κ³ μ • 값을 κ°€μ§‘λ‹ˆλ‹€. μƒμˆ˜λŠ” λ‹€μŒκ³Ό 같이 ν”„λ‘œκ·Έλž¨μ—μ„œ ν•œ 번만 μ§€μ •λ˜λ©° λ‚˜μ€‘μ— λ‹€μ‹œ μ§€μ •ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

Const ConstName=Expression