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