비주얼 베이직 프로그래밍 1999. 9. 한성대학교 정보전산학부 강 승 식 VB 데이터 유형 • 정수 – Byte (1 바이트) : 0~255 – Integer(2 바이트) : -

Download Report

Transcript 비주얼 베이직 프로그래밍 1999. 9. 한성대학교 정보전산학부 강 승 식 VB 데이터 유형 • 정수 – Byte (1 바이트) : 0~255 – Integer(2 바이트) : -

비주얼 베이직 프로그래밍
1999. 9.
한성대학교 정보전산학부
강 승 식
VB 데이터 유형
• 정수
– Byte (1 바이트) : 0~255
– Integer(2 바이트) : - 215 ~ +215 -1
– Long(4 바이트) : - 231 ~ +231 -1
• 실수
– Single(4 바이트)
– Double(8 바이트)
– Currency(8 바이트)
2020-04-30
2
기타 데이터 유형
• String(고정길이 / 가변길이)
예) “비주얼 베이직” , “1234”, “”(널문자열)
• Date(날짜): 8 바이트
예) #April 8, 1999#, #7:11 pm#, #1-2-2003#
• Boolean(참/거짓): 2 바이트
예) True, False
• Object(삽입개체): 4 바이트
예) Form, 각종 Control 등
• Variant(숫자/문자)
고정길이 문자열을 제외한 데이터형을 모두 지원
2020-04-30
3
변수 선언
• 코드창의 맨 앞에 위치
• Dim|Public|Private|Static 변수이름 As 데이터형
• 예) Dim intTotal As Integer
Dim intTotal As Integer, curSales As Currency
Dim strCityName As String (가변길이)
Dim strZipCode As String * 6 (고정길이)
Private intAvgVal As Integer
Static sngCalcAberage As Single
2020-04-30
4
변수 선언 유형
• 지역변수 : 프로시저 안에 선언
– 선언된 프로시저 안에서만 사용
• 전역변수 : 프로시저 밖에 선언
– 선언된 폼의 모든 프로시저에서 사용 가능
• Static : 프로시저 안에서 지역변수를
static으로 선언
• Private : 현재 폼에서만 사용 가능
• Public : 다른 폼에서도 사용 가능
2020-04-30
5
변수이름 접두어
•
•
•
•
•
•
•
•
•
Boolean : bln
Byte
: byt
Integer : int
Long
: lng
Single : sng
Double : dbl
Currency: cur
String : str
Variant : vnt
2020-04-30
6
변수 접미어
•
•
•
•
•
•
•
Integer : %
Long
:&
Single : !
Double : #
Currency: @
String : $
기타
: 없음
2020-04-30
Private intNumVal%
Private intAvgVal%, dblInputVal#
Static sngCalcAverage!
Dim strInputMsg$
7
변수선언 요구
• 선언되지 않은 변수 : Variant형으로 가정
• 변수 선언 요구
–
–
–
–
[도구]-[옵션]-[변수 선언 요구]
Option Explicit
변수를 사용하기 전에 반드시 선언 요구
코드 시작부에 명시
2020-04-30
8
연산자
• 사칙연산
+, -, *, /, \(정수나눗셈), Mod, ^(제곱)
• 비교연산
<, <=, >=, >, =, <>
• 논리연산
And, Or, Not, Xor(배타적 논리합), Eqr
(배타적 논리곱), Imp(관계논리 연산자)
2020-04-30
9
문자열 비교 : Like 연산자
• 아스키 코드값에 의해 스트링 비교
“abcd” < “abce”
“abcd” >= “abc”
“Yes?” > “Yes!”
“PC” <> “pc”
• Wildcard 문자와 Like 연산자
? : 1개의 문자
* : 0개 이상의 문자
# : 1개의 숫자
[charlist] : charlist내의 한 문자
[!charlist] : charlist내에 없는 문자
2020-04-30
10
Like 연산자 예제
Dim blnTemp As Boolean
문자열 비교식
blnTemp
blnTemp = “Sams Pub” Like “S*b”
True
blnTemp = “B” Like “[ABC]”
True
blnTemp = “B” Like “[!A-Z]”
False
blnTemp = “Abc???” Like “AbcOne”
True
blnTemp = “Xa3b” Like “X[a-e]#[!A-C]” True
blnTemp = “Co3Red” Like “Co[1-5]Red” True
blnTemp = “BAT123” Like “B?T*”
True
2020-04-30
11
조건문 : If
1. If condition Then command
If optAddition.value = True Then z = x+y
2. If condition Then
[statements]
Endif
3. If condition Then
[statements]
Else
[statements]
Endif
2020-04-30
4. If condition Then
[statements]
ElseIf
[statements]
Else
[statements]
Endif
12
Select Case 문
Select Case testexpression
[Case expressionlist1]
[statements]
[Case expressionlist2]
[statements]
[Case Else]
[statements]
End Select
2020-04-30
Select Case intTestNumber
Case Is < 1
Bonus = 0
Case 1
Bonus = .02
Case 2, 3
Bonus = .05
Case 4 To 6
Bonus = .10
Case Else
Bonus = .2
End Select
Select Case intButtonPressed
Case vbYes
SaveChanges
Case vbNo
Unload Me
End Select
13
반복문
Do
[statements]
Loop While [condition]
Do
[statements]
Loop Until [condition]
2020-04-30
Do While condition
[statements]
Loop
Do Until condition
[statements]
Loop
14
연습: 1부터 10까지 합
Dim intSum As Integer
Dim intCntr As Integer
intSum = 0
intCntr = 0
Do While intCntr < 10
intCntr = intCntr + 1
intSum = intSum + intCntr
Loop
2020-04-30
15
For … Next 문
For counter = start To end [Step increment]
[statements]
Next [counter]
For counter = start To end [Step increment]
[statements]
Do Until condition
If [condition] Then
[statements]
Exit For
If [condition] Then
Exit Do
End If
End If
Next [counter]
Loop
2020-04-30
16
배열 선언
• 1차원 배열
Dim Counters(14) As Integer
‘15 elements
Public Sums(20) As Double
‘21 elements
Static Students(100 To 200) As String
• 다차원 배열
Dim MatrixA(9, 9) As Double
Dim MatrixA(1 To 10, 1 To 10) As Double
Dim MultiD(3, 1 To 10, 1 To 15)
2020-04-30
17
Dynamic Arrays
• 동적배열 선언
Dim DynArray() As DataType
• 배열크기 지정
ReDim DynArray(X + 1)
ReDim DynArray(4 To 12)
ReDim DynArray(X, Y)
• 배열크기 증가
ReDim Preserve DynArray(UBound(DynArray)+1)
2020-04-30
18
사용자 정의형 : 구조체
Private Type EmployeeInfo
EmployID As Long
FirstName As String
LastName As String
BirthDate As Date
Salary As Currency
End Type
Dim MyVariable As EmployInfo
txtFirstName.Text = MyVariable.FirstName
2020-04-30
19
Type Conversion 함수
•
•
•
•
•
•
•
•
•
•
•
•
Boolean
Byte
Currency
Date
Decimals
Double
Integer
Long
Single
String
Variant
Error
2020-04-30
Cbool
Cbyte
Ccur
Cdate
Cdec
CDbl
Cint
Clng
CSng
CStr
Cvar
CVErr
20
Subroutine과 Function
Sub SubName()
[statementblock]
End Sub
Function FunctionName() As DataType
[statementblock]
FunctionName = ReturnValue
End Function
2020-04-30
21
함수 작성 예
Public Function GetGreaterNum(NumOne _
As Integer, NumTwo As Integer) As Integer
If NumOne > NumTwo Then
GetGreaterNum = NumOne
Else
GetGreaterNum = NumTwo
End If
End Function
2020-04-30
22