데이터 형
데이터 형식(Data Type)는 사용할 변수의 범위를 설정하기 위해서 사용합니다. 데이터 형식을 지정하므로 범위 안에 해당하는 숫자, 부동소수점, 문자열 등을 처리할 수 있습니다. 비주얼베이직에서 사용하는 데이터 형식은 다음과 같습니다.
데이터 형식 | 바이트 수 | 사용 가능한 범위 |
Byte | 1 | 0 ~ 255 |
Boolean | 2 | 부울값 (True, False ) |
Integer | 2 | -32,768 ∼ 32,767 |
Long | 4 | -2,147,483,648 ∼ 2,147,483,647까지 |
Single | 4 | -3.402823E38 ∼ -1.401298E-45까지(음수값) 1.401298E-45 ∼ 3.402823E38까지(양수값) |
Double | 8 | -1.79769313486232E308 ∼ -4.94065645841247E-324까지(음수값) 4.94065645841247E-324 ∼ 1.79769313486232E308까지(양수값) |
Currency | 8 | -922,337,203,685,477.5808 ∼ 922,337,203,685,477.5807 |
Decimal | 14 | +/-79,228,162,514,264,337,593,543,950,335 (소수점 이하 없음); +/-7.9228162514264337593543950335(숫자의 오른쪽으로부터 28번째); 0이 아닌 최소 숫자+/-0.0000000000000000000000000001 |
Date | 8 | 100년 1월 1일에서 9999년 12월 31일까지 |
Object | 4 | 모든 개체 참조 |
String | (가변길이) | 10바이트를 더한 문자열 길이 (0∼ 약 2조) |
String | (고정길이) | 1∼ 약 65,400의 문자열 길이 |
Variant | (숫자) | 16바이트 Double형 범위 내의 모든 숫자 |
Variant | (문자) | 22바이트 + 문자열 길이 변수 길이 String과 같은 범위 |
Type문 | | 요소가 사용하는 숫자 해당 데이터 형식의 범위값과 각 요소의 범위값이 같음 |
데이터형식은 일반적으로 바이트수가 작은 변수를 사용할수록 빠릅니다. 그러나 Integer의 경우는 Byte보다 빠릅니다. 그 이유는 윈도우 95/98인 경우에는 Integer를 기본으로 처리하기 때문에 가장 빠르고 그 다음에 Byte형식이 빠릅니다.
데이터형식 선언은 독립적으로 사용하지 않고 Dim문, Public문, Private문과 함께 사용합니다. 선언의 예는 다음과 같습니다.
' Total변수를 정수형식으로 선언
Dim Total As Integer
' Name변수를 문자열 형식으로 선언
Private Name String
' 한 줄에서 여러 개 변수 선언
Public Kor As String, Mat As Integer
' sms변수를 Variant 데이터형식으로 선언
Dim sms
프로시저안에서 데이터형식의 사용 예는 다음과 같습니다.
Private Sub Command1_Click()
Dim A As Byte
Dim B As Integer
A = 13
' 문장 사이에 변수를 선언할 수도 있습니다.
Dim C As Long
B = 128
Label1.Caption = A
Label2.Caption = B
End Sub
[실습] 문자열 다루기
폼 작성 화면
번호 | 컴포턴트종류 | 컴포넌트명 | 속 성 | 설 정 |
1 | 폼 | Form1 | Caption | "덧셈 계산" |
2 | 텍스트 박스 | Text1 | Text | "" |
3 | Text2 | Text | "" | |
4 | 라벨 | Label1 | Caption | "+" |
5 | Label2 | Caption | "" | |
6 | 명령 버튼 | Command1 | Caption | "실행" |
폼 디자인 구성표
' 6 실행 버튼 컨트롤의 Click 이벤트
Private Sub Command1_Click()
Dim 왼쪽변수, 오른쪽변수 As Integer
왼쪽변수 = Val(Text1.Text)
오른쪽변수 = Val(Text2.Text)
Label2.Caption = 왼쪽변수 + 오른쪽변수
End Sub
'+'는 문자열간에 연결할 경우와 사칙연산중에 한 기능이 덧셈을 수행합니다. 텍스트박스 컨트롤에서 입력한 값은 문자열이므로 다음과 같이 코딩하면 문제가 발생합니다.
Private Sub Command1_Click()
Label2.Caption = Text1.Text + Text2.Text
End Sub
Text1에 '5'을 입력하고 Text2에 '3'를 입력한 후 [실행]버튼을 누르면 '53' 출력합니다. 덧셈을 수행한 것이 아니라 두 문자열을 연결한 것입니다. 그렇게 하면 원하는 값을 얻을 수 없습니다. 그렇기 때문에 텍스트박스 컨트롤에서 입력한 문자열을 숫자로 바꿔 주어야 합니다. 그 함수가 Val함수입니다.
함 수 | 설 명 |
Val | 문자열을 숫자로 변환하여 줍니다. |
Str | 숫자를 문자열로 변환하여 줍니다. |
정수형
1. 정수 형식
데이터 형식 | 바이트 수 | 사용 가능한 범위 |
Byte | 1 | 0 ~ 255 |
Integer | 2 | -32,768 ∼ 32,767 |
Long | 4 | -2,147,483,648 ∼ 2,147,483,647까지 |
정수형식은 소수부분을 포함하지 수를 말합니다. 정수 중에서는 Integer형식이 속도가 가장 빠르기 때문에 가장 많이 사용합니다. Byte형식은 8비트(1바이트)로 되어 있습니다. 비트는 0과 1로 된 최소의 단위입니다. 8비트로 나타낼 수 있는 경우의 수는 28입니다. 2의 8승으로 표현할 수 있는 범위는 256가지입니다. 그러므로 Byte형식은 1바이트까지 가능한 0∼255까지의 수를 사용할 수 있습니다. Byte형식으로 Dim문으로 선언하고 사용 가능한 범위를 벗어나면 에러 메시지가 나타납니다.
Private Sub Command1_Click()
Dim A As Byte
Dim B As Integer
Dim C As Long
A = 12
B = 12345
C = 12345678
Label1.Caption = A
Label2.Caption = B
Label3.Caption = C
End Sub
실행 결과 : Label1에 '12'가 출력되고 Label2에 '12345'가 출력되고 Label3에 '12345678'이 출력됩니다.
Private Sub Command1_Click()
Dim My_A As Byte
My_A = 555
Label1.Caption = My_A
End Sub
실행 결과 : 소스를 실행하면(Byte형식의 사용 범위를 벗어났기 때문에) 다음과 같은 에러가 발생합니다
0 댓글