비주얼 베이직 프로그래밍 1999. 9. 한성대학교 정보전산학부 강 승 식
VB 데이터 유형 정수 실수 Byte (1 바이트) : 0~255 Integer(2 바이트) : - 215 ~ +215 -1 Long(4 바이트) : - 231 ~ +231 -1 실수 Single(4 바이트) Double(8 바이트) Currency(8 바이트) 2018-11-14
기타 데이터 유형 String(고정길이 / 가변길이) Date(날짜): 8 바이트 Boolean(참/거짓): 2 바이트 예) “비주얼 베이직” , “1234”, “”(널문자열) Date(날짜): 8 바이트 예) #April 8, 1999#, #7:11 pm#, #1-2-2003# Boolean(참/거짓): 2 바이트 예) True, False Object(삽입개체): 4 바이트 예) Form, 각종 Control 등 Variant(숫자/문자) 고정길이 문자열을 제외한 데이터형을 모두 지원 2018-11-14
변수 선언 코드창의 맨 앞에 위치 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 2018-11-14
변수 선언 유형 지역변수 : 프로시저 안에 선언 전역변수 : 프로시저 밖에 선언 선언된 프로시저 안에서만 사용 전역변수 : 프로시저 밖에 선언 선언된 폼의 모든 프로시저에서 사용 가능 Static : 프로시저 안에서 지역변수를 static으로 선언 Private : 현재 폼에서만 사용 가능 Public : 다른 폼에서도 사용 가능 2018-11-14
변수이름 접두어 Boolean : bln Byte : byt Integer : int Long : lng Single : sng Double : dbl Currency: cur String : str Variant : vnt 2018-11-14
변수 접미어 Integer : % Long : & Single : ! Double : # Currency: @ String : $ 기타 : 없음 Private intNumVal% Private intAvgVal%, dblInputVal# Static sngCalcAverage! Dim strInputMsg$ 2018-11-14
변수선언 요구 선언되지 않은 변수 : Variant형으로 가정 변수 선언 요구 [도구]-[옵션]-[변수 선언 요구] Option Explicit 변수를 사용하기 전에 반드시 선언 요구 코드 시작부에 명시 2018-11-14
연산자 사칙연산 +, -, *, /, \(정수나눗셈), Mod, ^(제곱) 비교연산 <, <=, >=, >, =, <> 논리연산 And, Or, Not, Xor(배타적 논리합), Eqr (배타적 논리곱), Imp(관계논리 연산자) 2018-11-14
문자열 비교 : Like 연산자 ? : 1개의 문자 * : 0개 이상의 문자 # : 1개의 숫자 아스키 코드값에 의해 스트링 비교 “abcd” < “abce” “Yes?” > “Yes!” “abcd” >= “abc” “PC” <> “pc” Wildcard 문자와 Like 연산자 ? : 1개의 문자 * : 0개 이상의 문자 # : 1개의 숫자 [charlist] : charlist내의 한 문자 [!charlist] : charlist내에 없는 문자 2018-11-14
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 2018-11-14
조건문 : If 1. If condition Then command 2. If condition Then If optAddition.value = True Then z = x+y 2. If condition Then [statements] Endif 3. If condition Then Else 4. If condition Then [statements] ElseIf Else Endif 2018-11-14
Select Case 문 Select Case testexpression [Case expressionlist1] [statements] [Case expressionlist2] [Case Else] End Select 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 2018-11-14
반복문 Do [statements] Loop While [condition] Loop Until [condition] Do While condition [statements] Loop Do Until condition 2018-11-14
연습: 1부터 10까지 합 Dim intSum As Integer Dim intCntr As Integer intSum = 0 Do While intCntr < 10 intCntr = intCntr + 1 intSum = intSum + intCntr Loop 2018-11-14
For … Next 문 For counter = start To end [Step increment] [statements] Next [counter] If [condition] Then Exit For End If Do Until condition [statements] If [condition] Then Exit Do End If Loop 2018-11-14
배열 선언 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) 2018-11-14
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) 2018-11-14
사용자 정의형 : 구조체 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 2018-11-14
Type Conversion 함수 Boolean Cbool Byte Cbyte Currency Ccur Date Cdate Decimals Cdec Double CDbl Integer Cint Long Clng Single CSng String CStr Variant Cvar Error CVErr 2018-11-14
Subroutine과 Function Sub SubName() End Sub [statementblock] End Sub Function FunctionName() As DataType FunctionName = ReturnValue End Function 2018-11-14
함수 작성 예 Public Function GetGreaterNum(NumOne _ As Integer, NumTwo As Integer) As Integer If NumOne > NumTwo Then GetGreaterNum = NumOne Else GetGreaterNum = NumTwo End If End Function 2018-11-14