2015년 1월 30일 금요일

조건문(IF문)

If text1.text = "고구마" then
text2.text = "맛있다"
[elseif text1.text = "감자" then
text2.text = "맛없다"]
[else
text2.text = "모른다"]
end if

조건문(=IF문)

IF 조건 Then
실행할 명령어
end if

if 조건 then
실행할 명령어
else
실행할 명령어
End if

if 조건 then
Command
elseif 조건 then
Command
else
Command
end if

If 나이 = 12 then
msgbox 초등5
else
msgbox 아닙니다
end if


if age = 20 then '만약 age = 20 가 참이라면 다음 실행
magbox age
elseif age = 21 then '그겋지않으면 age = 21 가 참이라면 다음 실행
msgbox 21
elseif age=23 then '그렇지않으면  age = 23 가 참이라면 다음 실행
mwgbox 23
else '이것도 아니고 저것도 아닌 경우 다음 실행
msgbox non
end if


대입 연산자 ,산술 연산자 ,관계 연산자 , 논리 연산자, 비트 연산자,연결 연산자

산술 연산자는 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 하는 사칙연산자와
나머지(Mod),몫(\),지수승(%) 연산자가 있지요,

연산자   설명
*            곱하기 연산을 합니다.
/            나누기 연산을 합니다.
+            더하기 연산을 합니다.
-            빼기 연산을 합니다.
Mod       두 수를 나눈 나머지값을 반환합니다.
^            지수승을 구하는 데 사용합니다.
\           두 수를 나눈 정수 몫을 반환합니다.

관계 연산자는 두 피연산자를 조건에 따라 선택적으로 실행할 수 있도록 해줍니다.

관계 연산자                   설명
=                        같습니다.
<>                      같지 않습니다.
<                        보다 작습니다.
<=                       작거나 같습니다.
>                        보다 큽니다.
>=                       크거나 같습니다.
Like                    두 문자열을 비교합니다.
Is                        두 개체가 가리키는 변수가 동일한지 알아냅니다.

예제 소스
Private Sub Command1_Click()
Dim My_Ret1 As Boolean, My_Ret2 As Boolean
My_Ret1 = 5 <= 7
My_Ret2 = 5 >= 7
Label1.Caption = My_Ret1
Label2.Caption = My_Ret2
End Sub
Label1 에는 True 가 출력되고 Label2 에는 False 가 출력될것입니다.

Like 연산자는 [매개변수]를 이용하여 문자열을 비교할 수 있습니다.
매개변수                                           설명
?                             비교하는 문자열 중에 한 문자를 알지 못하는 경우에 '?' 로 대치하여
                               사용하면 True를 전달합니다.
[시작문자-끝문자]    비교 문자열 중에 한 문자를 [시작문자-끝문자]로 바꿔서 사용합니다.
                                만약 시작문자와 끝문자를 설정한것이 ASCII 문자 범위에 속하면 True를
                                전달합니다.
[!시작문자-끝문자]   비교 문자열 중에 한 문자를 [시작문자-끝문자]로 바꿔서 사용합니다.
                                만약 시작문자와 끝문자를 설정한것이 ASCII 문자범위에 속하지않으면
                                True를 전달합니다.
#                             비교문자열 중에 숫자를 모르는경우 '#' 으로 대치하여 사용하면 True
                               값을 전달합니다.

예제 소스
Private Sub Command1_Click()
Dim Ret1, Ret2, Ret3 As Boolean
Dim Ret4, Ret5, Ret6 As Boolean
Ret1 = "비주얼 베이직6" Like "비주얼 베이직6"
Ret2 = "비주얼 베이직6" Like "비주얼*"
Ret3 = "비주얼 베이직6" Like "비?얼 베이직6"
Ret4 = "비주얼 베이직6" Like "비주얼 베이직#"
Ret5 = "BASIC" Like "B[A-J]SIC"
Ret6 = "BASIC" Like "B[!A-J]SIC"
Label1.Caption = Ret1
Label2.Caption = Ret2
Label3.Caption = Ret3
Label4.Caption = Ret4
Label5.Caption = Ret5
Label6.Caption = Ret6
End Sub
결과 : Label6은 False 가 출력되고 나머지 모두는 True가 출력됩니다.
Label6이 False가 출력되는 이유는 A에서 J사이가 아닌 문자열만을 True로 전달하기
때문입니다.


[논리 연산자]
]
15. Not     논리 부정 연산입니다.
            값이 True 라면 False 로 변환하여 반환합니다. 그 반대도 가능합니다.
            예를들어 Not True 라면 False 가 반환되고 Not False 라면 True 가 반환됩니다.
16. And     논리곱 연산입니다. 비트연산을 합니다.
            수를 2진수로 변환한 뒤, 위와 아래의 수 모두 1 일 때만 1을 반환하여,
            다시 10진수로 변환하여 반환합니다.
                 00000010   -> 2
             And 00000011   -> 3
            --------------
                 00000010   -> 2

17. Or      논리합 연산입니다. 비트연산을 합니다.
            수를 2진수로 변환한 뒤, 위와 아래 둘 중 하나라도 1 일 때,
            1을 반환하여, 다시 10진수로 변환하여 반환합니다.
                 00000010   -> 2
             Or  00000001   -> 1
            --------------
                 00000011   -> 3
18. Xor     배타적 논리합 연산입니다. 비트연산을 합니다.
            수를 2진수로 변환한 뒤, 위와 아래 둘다 1 일 때는 0 을,
            나머지는 1을 반환하여, 다시 10진수로 변환하여 반환합니다.
                 00000101   -> 5
             Xor 00000011   -> 3
            --------------
                 00000110   -> 6

19. Eqv     동치(논리적 등가) 연산입니다. 두 식의 결과값이 같을 때만 True 를 반환합니다.
            예를들어 [ 1 < 2 Eqv 2 < 3 ] 라는 식의 경우에는 True 를 반환하지만,
            [ 1 < 2 Eqv 2 > 3 ] 의 경우에는 False 를 반환합니다. And 의 경우에는 두 식이
            모두 True 를 반환해야 True 를 반환하지만, 이것은 두 식이 True 이든 False 이든
            반환값이 일치하기만 한다면 True 를 반환합니다.
20. Imp     포함 관계 연산입니다. 앞의 식이 True 이고 뒤의 식이 False 일 때만 False 를 반환합니다.

예를들어 [ 3 > 6 Imp 4 < 8 ] 의 경우에는 [ 3 > 6 ] 은 False 이고
         [ 4 < 8 ] 은 True 이므로 반환값은 True 가 됩니다.
하지만 식이 [ 4 < 8 Imp 3 > 6 ] 이라면 [ 4 < 8 ] 은 True 이지만
            [ 3 > 6 ] 은 False 가 되어 반환값은 False 가 됩니다.

연결 연산자









2015년 1월 29일 목요일

지역변수 & 전역변수 & 상수


지역변수

지역변수는 sub/function 프로시저 내에서만 사용가능

선언방법

지억변수는 sub/function 프로시저내부에서만 선언가능

Dim 변수명 as 데이터형식

예)Dim 나이 as integer

참고) Dim 나이
이렇게도 선언해서 사용가능함

Dim 나이 = Dim 나이 as variant


전역변수
전역변수는 해당 개체 또는 프로젝트의 모든 곳에서 활용 가능함


선언방법은

sub문이나 function문 안에서 선언하지 않고 맨 위에 선언한다.

Private 변수명 as 데이터형식
Public 변수명 as 데이터형식
Dim 변수명 as 데이터형식


Private 변수명
Public 변수명
Dim 변수명

요렇게도 선언할 수 있으며 이렇게 생략해서 사용할 경우

Private 변수명 as variant
Public 변수명 as Variant
Dim 변수명 as Variant

위 방법이랑 동일하게 보면 된다

Private로 선언되는 전역변수는 해당 개체(폼이나 모듈) 안에서만 사용 가능함

Public와 Dim로 선언되는 전역변수는 해당 개체 이외의 폼이나 모듈에서도 사용이 가능하다



상수


이번엔 상수인데요. 상수는 무조건 처음부터 여러분이 값을 정해두고 값을 바꿀 수 없는 것입니다.
(물론 메모리에 직접 접근하는 방법을 통해 변경할 수 있지만 이러면 용도가 쓸모 없게 되요)

혹시 이런 의문 들지 않으세요? 어짜피 값을 바꾸지 못하면 그냥 숫자를 쓰면 되지 왜 상수를 쓰나요?
그렇습니다. 그냥 숫자 쓰면 되는데 상수를 쓰다니.. 이유는 간단합니다. 고유한 숫자를 쉽게 상수명으로 찾아쓰기 위해서에요.
만약 여러분이 195842 라는 숫자를 여러번 쓰려고 할때.. 모든 구문마다 195842라는 수를 쓰기엔 시간이 아깝잖아요? 이것을 상수A에 담아버리고 쓰면 되는 것이지요. 그럼 195842를 쓰지 않고 A를 쓰면 되니까요.
그럼 변수를 써도 되지 왜 상수를 쓰냐구요? 변수는 쓰려면 2줄을 써야하잖아요.(억지) 선언으로 한 줄, 설정으로 한 줄.

아무튼 이제 상수를 써볼게요.

상수를 선언하는 방법은 아래와 같습니다.
Private Const 상수명 As 데이터형식 = 값
Public Const 상수명 As 데이터형식 = 값
Const 상수명 As 데이터형식 = 값

Private/Public 으로 시작하는 상수는 폼이나 모듈 등의 소스코드의 맨 위 (선언) 부분에 선언하셔야 합니다.
그리고 Const로 시작하는 상수는 위와 같이 (선언) 부분에도 가능하고, 지역(Sub나 Function)내에서도 선언이 가능합니다. (선언)부분에서 선언할 경우 Private로 선언이 됩니다.

변수와 마찬가지로 [As 데이터형식] 을 생략하실 수 있습니다.

그럼 바로 상수를 사용해보도록 할게요. 아까 변수를 사용하셨다면 금방 사용하실 수 있을 것이에요.

▼ 아래와 같은 소스코드를 작성해볼까요?




2015년 1월 27일 화요일

변수명 & 자료형 & 변수의 선언 및 사용

비주얼 베이직에서 변수란

무언가를 담는 그릇이라고 보면 된다

변수는 그릇이라기보다는 그릇을 가리키는 이름이라고 생각하면 이해가 빠르다.

변수를 선언할 때는

Dim  변수명  as 자료형

변수명 = 서랍장에 붙여진 이름표
자료헝 = 서랍장 안에 어떤 형태의 내용물이 들어있는지 구분하기 위함

Dim 나이  as  stirng
-->나이라는 변수를 stting형으로 선언할


Dim  이름  as  string
-->이름이라는 변수를 string형으로  선언함


나이 = 30

이름 = "해피스톰"

여기서 위의 변수들의 차이점은

""(쌍따옴표)가 유무이다

""을 넣는 이유는 대입하는 값이 상수인지 변수인지 구분하기 위함이다.

쌍따옴표로 문자열을 감싼 것은 문자열이 상수에 포함되고 그렇지 않은 것은 변수가 된다.
변수에는 어떠한 값이 존재한다고 보면 된다

해피스톰 = 1
이름 = 해피스톰

해피스톰이라는 변수에다가 1 이라는 값을 대입하라
이름이라는 변수에다가 해피스톰 즉, 1이라는 갑을 대입하라는 것이다..

해피 = 1
이름 = "해피"

해피라는 변수에 1을 대입하라
이름이라는 변수에 해피라는 값을 저장하라

변수 이름에 왜 1 이 아니고 해피가 들어갔는가?
이거는 쌍따옴표로 감싼 해피가 1이 저장된 변수가 아니고 상수이기 때문이다

변수명에 사용해서는 안 돌 규칙이 있디..


1. 숫자로 시작해서는 안되며, 영문자 또는 2바이트 문자로 시작해야한다.
2. 255자를 넘어서는 안된다.
3. 점(.) 이나, %&!#@$ 등은 사용하지 않는다.
4. 영문자의 대문자 소문자는 동일한 것으로 처리된다. (Debug1 이나 DEBUG1은 같은 변수임.)

변수를 사용 하기 전에 반드시 선언을 해야한다.
(꼭 하지 않아도 되지만, 안할 경우 오류를 범하기 쉽고 Variant형으로 지정되기 때문에
메모리, 속도 , 성능이 저하 된다.)
그리고 꼭 사용하려는 목적에 마춰서 선언 해야한다.


 다음은 선언의 예시이다.
 Dim 나이 as String
위 소스는 나이라는 변수를 문자열 형으로 선언한 것인데,
좀 더 자세희 살펴 보도록 하자.

Dim  - 변수의 사용범위
나이 - 변수명 이다.
as - 변수의 형태를 지정하려는 접속어
String - 변수의 형태

로 나뉜다.
변수의 사용범위에는 다음과 같은 것들이 있다.

 프로시저 = 이벤트(행위[예:마우스클릭,버튼 누름 등])

Dim - 선언된 프로시저 내에서만 사용되며 프로시저를 한번 빠져 나가면 값이 사라진다.

Static - 선언된 프로시저 내에서만 사용되며 프로시저를 빠져나가서 다시 들어와도 값이 살아있다.

Private - 선언된 프로시저 내에서만 사용되며 프로시저를 한번 빠져 나가면 값이 사라진다.

Public - 어떤 프로시저(혹은 모듈) 에서든지 호출해서 사용될 수 있다.

Dim  xxx as string

Static xxx as string

Private xxx as string

PublIc xxx as string




데이터 형식 저장 용량 범위

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년 10월 31까지
Object 4바이트 모든 개체 참조


String
(가변 길이) 10바이트 +문자열 길이 0부터 약 2조까지


String
(고정 길이) 문자열 길이 1부터 약 65,400까지


Variant
(숫자) 16바이트 Double형 범위 내의 모든 숫자


Variant
(문자) 22바이트 + 문자열 길이 변수 길이 String과 같은 범위


사용자 정의 형식
(Type 사용) 요소가 사용하는 숫자 해당 데이터 형식의 범위값과 각 요소의 범위값이 같음









비주얼 베이직 학습 목차

Chapter 02 변수와 연산자
01. 변수와 상수
=====
변수명 & 자료형 & 변수의 선언 및 사용
http://cafe.naver.com/gogoomas/3154

지역변수 & 전역변수 & 상수
http://cafe.naver.com/gogoomas/283958
=====

02. 연산자
=====
대입 연산자 ,산술 연산자 ,관계 연산자 ,
논리 연산자, 비트 연산자,연결 연산자

http://cafe.naver.com/gogoomas/48147
http://cafe.naver.com/gogoomas/47993
http://cafe.naver.com/gogoomas/48035
=====

=====
연산자 우선순위
http://cafe.naver.com/gogoomas/53812
=====



Chapter 03 초급 컨트롤
=====
01. 컨트롤의 이해
02. 폼
03. 문자 입출력 컨트롤
레이블
텍스트 박스
명령 버튼
04. 선택 컨트롤
프레임
체크 박스
옵션 버튼

I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\초급 컨트롤

=====


Chapter 04 제어문과 배열
01. 분기문
=====
If 문
http://cafe.naver.com/gogoomas/26
=====
=====
Select Case 문
http://cafe.naver.com/gogoomas/2902
=====
=====
GoTo 문
http://cafe.naver.com/gogoomas/53913
=====
=====
02. 반복문
ForNext 문
For EachNext 문
DoLoop 문
Exit 문
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\반복문
====


03. 배열
====
배열의 이해 & 배열의 선언 & 다차원 배열
http://cafe.naver.com/gogoomas/1392

====
동적 배열
컨트롤 배열
http://blog.daum.net/shksjy/124
====

Chapter 05 내장 함수, 프로시저, 모듈
====
01. 내장 함수
수학 함수
문자열 함수
형 변환 함수
입, 출력 함수
http://cafe.naver.com/gogoomas/283803
====
====
02. 프로시저
Sub 프로시저
함수 프로시저
인수 전달 방법(ByVal, ByRef)
http://cafe.naver.com/gogoomas/284771
====
====
03. 모듈
http://cafe.naver.com/gogoomas/41598
====
====
Chapter 06 중급 컨트롤
01. 선택 컨트롤
리스트 박스
콤보 박스
수직/수평 스크롤 바
02. 그래픽 컨트롤
선과 도형
이미지
픽처 박스
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\초급 컨트롤
====
====
Chapter 07 메뉴와 대화 상자 컨트롤
01. 메뉴
메뉴 편집기
메뉴 만들기
팝업 메뉴 만들기
http://cafe.naver.com/gogoomas/1246
====
====
02. 공통 대화 상자
http://cafe.naver.com/gogoomas/66332
====

====
Chapter 08 고급 컨트롤
01. 타이머와 OLE
타이머
OLE
02. Microsoft Windows Common Controls 6.0
이미지 리스트
툴 바
상태 바
리스트 뷰
트리 뷰
탭 스트립
슬라이더와 진행 바
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\초급 컨트롤
====


============
Chapter 09 MDI와 멀티미디어
01. MDI 응용 프로그램 작성
02. 윈도우 미디어 플레이어 컨트롤
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\비주얼 베이직 강의자료-최종.pdf
============

============
Chapter 10 파일 처리
====
01. 파일 처리의 개요
02. 파일 접근 방법에 따른 종류
순차 파일
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\파일 처리\vb_mk_File_ma.ppt
====
====
랜덤 파일
http://www.itmembers.net/board/view.php?id=vb1&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=25
====
이진 파일
====
03. 파일 시스템 컨트롤
드라이브 리스트 박스
디렉터리 리스트 박스
파일 리스트 박스
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\초급 컨트롤
=====
=====
Chapter 11 데이터베이스 프로그래밍
01. 데이터베이스 개요
02. 데이터베이스 만들기
비주얼 데이터 관리자를 이용한 데이터베이스 만들기
MSAccess 2003을 이용한 데이터베이스 만들기
http://cafe.naver.com/gogoomas/2219
=====
=====
03. 데이터 개체

=====
=====
04. 데이터 컨트롤, 바운드 컨트롤, Data Report
http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=48&MAEULNO=19&no=3065&page=25
=====
05. ADO 개체 모델
Connection 개체
Command 개체
Parameter 개체
Recordset 개체
Error 개체

=====
06. SQL
SELECT 문
INSERT 문
UPDATE 문
DELETE 문

=====

Chapter 12 네트워크 프로그래밍
01. 네트워크 프로그래밍 개요
02. 인터넷 관련 컨트롤
Winsock 컨트롤
Inet 컨트롤
WebBrowser 컨트롤
03.TCP 프로그래밍
04.UDP 프로그래밍
05. 웹 문서 소스 보는 프로그램 만들기
06. 웹 브라우저 만들기

=====
Chapter 13 프로그램 오류와 디버깅
01. 프로그램 오류
구문 오류
런타임 오류
논리 오류
02. 디버깅과 디버그 도구
디버그 모드
직접 실행 창
지역 창
조사식 창
I:\#3.프로그래밍 언어 공부\비주얼베이직 실습\자료\파일 처리\vb_mk_File_ma.ppt
=====
=====