visual basic
DESCRIPTION
VISUAL BASIC. 양 계 탁. Visual Basic 이란 ?. Window 용 프로그램을 작성하는 프로그래밍 도구 Basic 은 초보자를 위한 대화형 언어로 1964 년 개발 ( 구조화 안됨 ) 1975 년 빌 게이츠가 베이직을 수정 Visual + Basic 쉽고 빠르게 프로그램을 작성 프로그래머와 일반인의 경계 없어짐. Visual basic 의 특징. Visual 한 개발환경의 지원으로 쉽고 빠르게 작성할 수 있다 . 객체 지향적 개발환경 지원 자동화된 개발환경의 지원 - PowerPoint PPT PresentationTRANSCRIPT
VISUAL BASIC
양 계 탁
Visual Basic 이란 ?
Window 용 프로그램을 작성하는 프로그래밍 도구
Basic 은 초보자를 위한 대화형 언어로 1964년 개발 ( 구조화 안됨 )
1975 년 빌 게이츠가 베이직을 수정Visual + Basic쉽고 빠르게 프로그램을 작성프로그래머와 일반인의 경계 없어짐
Visual basic 의 특징 Visual 한 개발환경의 지원으로 쉽고 빠르게 작성할 수 있다 . 객체 지향적 개발환경 지원 자동화된 개발환경의 지원 사건 중심형 (Event Driven Method) 처리방식 클라이언트 / 서버 (Client/Server) 프로그램 개발 지원 OLE(Object Linking and Embedding) 기능지원
기본사항
입력장치
출력장치CPU
RAM
ROM
프로그램
소스파일(*.FRM)
컴파일 실행파일(*.EXE)
기본 용어객 체 : 데이터를 갖을 수 있고 어떤
동작을 수행할 수 있는 단위 ( 자동차 )컨트롤 : 객체를 그래픽으로 표시한 것메서드 : 객체가 수행하는 행위속 성 : 객체의 데이터이벤트 : 폼이나 컨트롤이 사용자나 시스템에서 받는 명령이벤트 프로시저 : 이벤트가 발생했을 때
자동으로 호출되는 프로시저
Visual Basic 기동 모습
메뉴 :표준도구모음 : 다양한 컨트롤을 모아 놓은 곳프로젝트 창 : 프로그램 파일을 관리 하는 곳속성 창 : 컨트롤의 정보를 표시하는 곳폼 : 프로그램 실행 시 표시되는 화면코드 창 : 프로그램을 기술하는 곳
Visual Basic 프로그램 과정
폼의 설계
코드 작성
컴파일 실행파일(*.EXE)
이벤트 처리 방식 프로그래밍
프로시저 프로그래밍 프로그램이 순차적으로 실행 프로그래머 위주로 작성이벤트 처리방식 프로그래밍 프로그램이 이벤트의 발생에 따라 처리 ( 윈도우 처리방식 ) 특정행동 발생시 프로그램이 작동되도록 프로그램 (Visual Basic)
Visual Basic 프로그램 작성순서
폼과 컨트롤의 배치속성의 변경코딩작업파일의 저장실행실행 가능 파일 작성
폼의 설계
VISUAL BASIC 프로그램의 기초
어떤 개체가 어떠한 이벤트를
발생시켰을 때 어떠한 처리를
실행할 것인가
< 확인 > 버튼을
클릭하였을 때
현재의 시각을 표시한다
폼의 이벤트
Activate 폼이 액티브 되었을 때 실행Click 폼의 내부 클릭 시 실행
DblClick 폼의 내부를 더블클릭 시 실행Load 폼을 열기 직전에 실행
UnLoad 폼을 닫기 직전에 실행
이벤트 설 명
개체의 속성
속성은 개체의 설정 값처음에는 속성값을 속성 창에서 줄 수 있다
개체명 . 속성명 = 설정값
= 오른쪽의 설정 값을 왼쪽 개체의 속성에 대입한다
컨트롤의 이름을 붙이는 방법
컨트롤 이름을 붙이는 규칙
1. 이름 맨 첫 자는 알파벳 a – z(A - Z) 이어야 한다 .2. 이름으로 사용할 수 있는 문자는 알파벳 , 숫자 , 언더스코어 이다 .3. 이름은 40 자 이내이다 .
개체이름 약칭폼 frm
체크박스 chk
콤보박스 cbo
커맨드버튼 cmd
디렉토리 리스트박스 dir
드라이브 리스트박스 drv
파일리스트박스 fil
프레임 fra
이미지 img
개체이름 약칭레이블 lbl
라인 lin
리스트박스 lst
메뉴 mnu
옵션버튼 opt
픽쳐박스 pic
셰이프 shp
텍스트박스 txt
타이머 tmr
함 수 (1) Val( 문자열 ) : 문자열형을 숫자형으로 변환
Str( 숫자 ) : 숫자형을 문자열형으로 변환
Format( 데이터 , “ 표시형식” )n =345.6, m=5,
A=Format(n, “##,##0,00”)B=Format(n, “##0,0”)C=Format(m, “0.00%”)
A=345.60
B=345.6
C=500.00%
숫자표시 형식변경
산술 연산자 연산자 기 능 사용 예
^ 제 곱 7^2 => 49
- 마이너스 부호 -9
* 곱 하 기 9*2 => 18
/ 나 누 기 9/2 => 4.5
\ 정수 나눗셈 9\2 => 4
MOD 정수 나눗셈의 나머지 9 MOD 2 => 1
+ 더 하 기 9 + 2 => 11
- 뺄 셈 9 – 2 => 7
&, + 문자열 연결 “ 한” & “ 국” => “ 한국”
관계 연산자 , 논리 연산자연산자 기 능 종 류
= 같 다 관계 연산자<> 같지 않다 관계 연산자< 작 다 관계 연산자> 크 다 관계 연산자
<= 작거나 같다 관계 연산자>= 크거나 같다 관계 연산자
Not 부 정 논리 연산자And 논 리 곱 논리 연산자Or 논 리 합 논리 연산자
Change 이벤트
한 컨트롤의 변화가 다른 컨트롤에 변화를 일으키게 할 수 있다 .
텍스트 박스에 사용자가 입력드라이브 박스에서 드라이브 선택콤보 박스에서 항목선택
변 수불 특정한 값 , 문자 또는 식을 임시로 저장하는 장소
Dim 변수명 ( As 데이터형 )
1. 변수명의 앞자는 알파벳 문자 또는 한글 )2. 기호 사용 가능 ( · 는 안됨 )3. 영문 255 자 이내 , 또는 한글 127 자 이내
데이터 형데이터형 명 칭 설 명Integer 정수형 -32768 ~ 32767Long 배장정수형 -2147483648 ~ 2147483648 Single 단정도실수 -3.4 E^38 ~ -1.4 E^(-38) Double 배정도실수 -1.79 E^308 ~ -4.94 E^(-308)
Currency 통화형 -9.22*10^14 ~ 9.22*10^14 Date 날짜형 100 년 1 월 1 일 ~ 9999.12.31Byte 바이트형 0 ~255
Boolean 불형 True or FalseString 문자열형 문자
Varient 배리언트형 모든 데이터
변수의 선언위치 프로시저의 처음에 선언 선언된 프로시저에서만 작동 ( 지역변수 ) 변수는 선언하지 않아도 비베 코드 내에서 자동으로
변수 선언됨 ( 암묵적 선언 : 단점은 변수 명을 잘못 적으면 찾기가 어려워짐 )
변수의 선언을 꼭 하는 것이 좋음 일반 선언부에 Option Explicit 라고 입력하면
선언하지 않은 변수 명을 자동으로 지적 ( 도구 - 옵션 - 편집기 - 변수선언요구 )
변수의 사용범위
구분 선언 키워드 설 명
지역범위 Dim, Static프로시저내 선언
프로시저 내에서 공용
모듈범위 Private모듈의 일반 선언부에 선언
변수 , 상수 및 프로시저를 선언한 모듈 내에서 공용
전역범위 Public모듈의 일반 선언부에 선언
프로젝트 내에서 공용
프로젝트 A
폼 A
Public a
프로시저 A
Private b
Dim c
프로시저 B
폼 B
변수 a,b 사용가능
변수 a,b,c 사용가능
변수 a,b 사용가능
변수 a 사용가능
상 수
프로그램의 보스를 편하게 함
Const 상수명 = 값Const 상수명 As 데이터형 = 값
배 열
동일한 크기의 데이터형을 갖는 변수들의 집합메모리에 할당됨예 : 학생들의 비베 점수 , 학번
A(0) …. …..A(1) A(2) A(I) A(19)
A(I)배열 명 배열번호
Option Base [0/1]Dim 배열명 As 데이터형Dim 배열명 ( 범위 ) As 데이터형Dim 배열명 ( 시작번호 To 항목개수 ) As 데이터형
Array 함수를 사용하면 간단히 작성
Dim Yoil As VariantYoil = Array(“ 일” , “ 월” , “ 화” , “ 수” ,“ 목” , “ 금” , “ 토” ,)
일 월 화 수 목 금 토 0 1 2 3 4 5 6인덱스 값
배열의 인덱스 값
배열의 인덱스 값은 0 부터 시작한다 .Option Base 1 을 일반 선언부에 선언하면
인덱스 번호가 1 부터 시작된다 .
다차원 배열Dim 배열명 (m1 To n1, m2 To n2) As 데이터형
1993 1994 1995 1996 1997 1998 19991
2
3
4
5
6
7
8
9
11
10
12
프로시저의 구문
Private Sub 개체명 . 이벤트명 ( 인수 ) 변수선언 스테이트먼트End Sub
프로시
저
제너럴 프로시저
이벤트 프로시저
Sub 프로시저
Function 프로시저
이벤트
프로시저
제너럴 프로시저
프로그램 일부를 떼어내어 독립시킨 것Sub 프로시저 , Function 프로시저가 있음
등교수업휴식식사수업수업휴식식사
식당에 간다요리를 주문한다
식사를 한다돈을 지불한다식당을 나온다
강의실로 간다출석을 체크 한다강의를 듣는다
실습을 한다강의실을 나온다
Sub
End Sub
Sub
Sub 프로시저 생성
Sub 프로시저명 ( ) 변수의 정의 스테이트먼트End sub
Function 함수명 ( ) 변수의 정의 스테이트먼트End function
With — End With
With 개체명 . 속성명 = 값End With
lblDate.Caption =“ 현재의 시간”lblDate.Font.Size = 10lblDate.Font.Italic = True
With lblDate .Caption = =“ 현재의 시간” .Font.Size = 10 .Font.Italic = TrueEnd With
같은 개체에 여러 개의
명령을 하나의 그룹으로
요약하기위한 스테이트먼트
If ∼ Then
『 If ∼Then 』은 어떤 특정한 조건을 만족할 때의 처리 를 기술
If 조건식 Then 스테이트먼트 End If
조건식이 참일 때 스테이트먼트를 실행하고 거짓이면 아무 일도 하지 않는다
If Second(Time) = 0 ThenBeep
End If
If ∼ Then ∼ Else
조건식이 참이면 스테이트먼트 1 을 실행하고 조건식이 거짓이면 스테이트먼트 2 를 실행한다 .
If 조건식 Then스테이트먼트 1
Else 스테이트먼트 2
End If
If ∼ Then ∼ ElseIf
조건식 1 이 참 이면 스테이트먼트 1 을 실행하고 조건식 1 이 거짓 , 조건식 2 가 참 이면 스테이트먼트 2 를 실행 조건식 1,2 가 모두 거짓이면 스테이트먼트 3 을 실행한다 .
If 조건식 1 Then 스테이트먼트 1ElseIf 조건식 2 Then 스테이트먼트 2Else 스테이트먼트 3End If
Select Case ∼
Select Case 변수명Case 범위 1
스테이트먼트 1Case 범위 2
스테이트먼트 2………….
Case Else 스테이트먼트
End Select
If∼Then ∼Else 와 유사
조건
처리문 1 처리문 2 처리문 3 처리문 4
장태산 휴양림의 입장료는 어른 : 2000, 학생 : 700, 어린이 : 500 이다 . 어른 , 학생 , 어린이의 사람수를입력받아 , 입장료의 합계를 구하는 프로그램을 작성하여라 .
For ∼ Next
초기값부터 종료 값까지 증감 값 만큼 반복 실행
Step 증감 값은 생략 가능 , Step=1 로 인정
For 변수 = 초기값 To 종료값 Step 증감값 반복처리 스테이트먼트
Next 변수
Sort( 정열 )
소트란 데이터를 어떤 순서대로 재 배열 오름차순 : 작은 데이터부터 큰 데이터 순으로 재배열 내림차순 : 큰 데이터부터 작은 데이터 순으로 재배열
14 10 20 20012 15 10 15013 25 20 50011 20 30 600
상품번호 수량 단가 금액
1 열 2 열 3 열 4 열
1 행 2 행
3 행4 행
p(4,4)
오
름
차
순
p(1,1) > p(2,1) 1 행과 2 행을 모두 바꾼다
For k = 1 To 4im = p(1,k) : p(1,k) = p(2,k) : p(2,k) = im
Next k
For j = 2 To 4 If p(1,1) > p(j,1) Then For k = 1 To 4
im = p(1,k) : p(1,k) = p(j,k) : p(j,k) = im Next k End IfNext j
제 1 행에 가장 작은 원소가 들어왔다 .
For i = 1 To 3 For j = i + 1 To 4 If p(i,1) > p(j,1) Then For k = 1 To 4
im = p(1,k) : p(1,k) = p(j,k) : p(j,k) = im Next k
End If Next j
Next i
Do While ∼ Loop 문
Do While 조건식 문장
……
Loop
조건 만족조건 만족
반복 문장
Loop 문 다음 문장
아니오(False)
예 (True)
Do ∼ Loop While 문
Do 문장
……
Loop While 조건식
조건 만족조건 만족
반복 문장
While 문 다음 문장
아니오(False)
예 (True)
Do Until ∼ Loop 문
Do Until 조건식 문장
……
Loop
조건 만족조건 만족
반복 문장
Loop 문 다음 문장
예 (True)
아니오 (False)
Do ∼ Loop Until 문
Do 문장
……
Loop Until 조건식
조건 만족조건 만족
반복 문장
While 문 다음 문장
예 (True)
아니오 (False)
제어구조 , 프로시저의 강제종료
「 For - Next」
「 Do - Loop」
「 Exit For」
「 Exit Do」
「 Sub - End Sub」
「 Function - End Function」
「 Exit Sub」
「 Exit Function」
Sequential Access데이터를 파일로 저장저장한 파일을 열 때 사용 Input 모드 : 읽기 전용 모드 , 열린 파일의
맨 앞부터 차례로 데이터를 읽어 들인다 .Output 모드 : 입력 전용 모드 , 열린
파일의 맨 앞부터 차례로 데이터를 저장 . ( 이미 저장된 데이터는 삭제 , 새로운
데이터로 교체 ) Append 모드 : 입력 전용모드에서 열린
파일의 끝에 데이터를 추가 저장
Input 모드
Open 파일명 For Input As 파일번호
Input # 파일번호 , 변수 명
Close # 파일번호
Open 문으로 지정한 파일을 연다 .
Input 문으로 데이터를 읽어 들여 변수에 저장한다 .
Close 문으로 파일을 종료한다 .
파일번호 1-511까지 , 보통 1 을 지정
Output 모드 Open 파일명 For Output As 파일번호
Write # 파일번호 , 데이터 1데이터 2………
Close # 파일번호
Open 문으로 지정한 파일을 연다 .
Write 문으로 1 행 분의 데이터를 새로 저장 .
Close 문으로 파일을 종료한다 .
Append 모드 Open 파일명 For Append As 파일번호
Write # 파일번호 , 데이터 1데이터 2………
Close # 파일번호
Open 문으로 지정한 파일을 연다 .
Write 문으로 1 행 분의 데이터를 추가하여 저장 .
Close 문으로 파일을 종료한다 .
파일명이나 패스명의 취득
「 Dir1.Path 」로 「 C:\Mydoc 」 를 취득 「 File1.FileName 」 로 「 Test.txt 」 를
취득 「 Dir1.Path & “\” & File1.FileName 」 로
「 C:\Mydocuments\Test.txt 를 취득
폴더가 있는 경우C:\Mydoc\Test.txt
「 Dir1.Path 」 로 「 C:\ 」 를 취득「 File1.FileName 」로 「 Test.txt 」를
취득「 Dir1.Path & File1.FileName 」 로 「 C:
\Test.txt 」 를 취득
폴더가 없는 경우C:\Test.txt
If Right(Dir1.Path,1) = “\” Then변수명 = Dir1.Parh & File1.FileName
Else 변수명 = Dir1.Parh & “\” & File1.FileName
End If
프로그램의 디버그와 컴파일
디버그 : 프로그램에 잘못이 있는지 없는지를 점검하고 , 수정하는 작업
한 단계씩 코드 실행 : 단축키 F8간단한 조사식 : 현재의 상황을 파악직접실행창 : 현재의 상황을 파악