프로시저 와 인수전달 컴퓨터응용 및 실습 I
프로시저 와 인수 전달 Chapter 8: 교육 목표 프로시저(Procedure) 프로시저(Procedure) 예제 Public vs. Private 프로시저 예제 Static vs. NonStatic 프로시저 예제 인수 전달 인수 전달 예제 컴퓨터응용 및 실습 I
프로시저(Procedure) (1) 사용 방법에 따른 분류 선언 방법에 따른 분류 Sub Procedure Function 반환 값 없음 Function 반환 값 존재 Property Procedure 반환 값 및 개체의 값을 지정 선언 방법에 따른 분류 Private 프로시저가 선언된 모듈 내에서 만 접근 가능 Public 모든 모듈에서 접근 가능 Static 프로시저 내의 모든 변수가 정적변수(프로시저 종료후에도 값 보존)로 선언됨 NonStatic 프로시저 내의 모든 변수가 비정적변수(프로시저 호출시 값 초기화)로 선언됨 컴퓨터응용 및 실습 I
프로시저(Procedure) (2) 서브 프로시저(Sub Procedure) Format [Private | Public] [Static] Sub Name( 인수 ) [명령문] [Exit Sub] End Sub 일반 프로시저 응용프로그램에 의해 호출 이벤트 프로시저 이벤트에 의해 호출 컴퓨터응용 및 실습 I
프로시저(Procedure) (3) 함수 프로시저(Function Procedure) Format [Private | Public] [Static] Function Name[( 인수 )] [As type] [명령문] [Name = 표현식] [Exit Function] End Function 특징 Function 프로시저 이름과 인수를 이용하여 호출 반환 값의 형식을 결정하는 데이터 형식이 필요 프로시저 이름에 값을 지정하여 반환 가능 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (1) Form Name 지정: frmProcedure Caption 지정: 프로시저 & 함수 1. 더블 클릭 (frmProcedure 입력) 2. 더블 클릭 (프로시저 & 함수 입력) 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (2) Control 배치 3. Control 배치 CommandButton 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (3) Control 속성지정 Name Caption CommandButton 속 성 속 성 Name Caption Control Command 1 Command 2 cmdSubFunction cmdExit 서브와 함수 종료(&X) 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (4) Control 배치 및 속성 지정 완료 화면 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (5) 폼 저장 프로젝트 저장 폼 5. frmProcedure.frm 입력 프로젝트 Procedure.vbp 6. Procedure.vbp 입력 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (6) 새로운 폼 추가 [프로젝트 > 폼 추가 ] 클릭 7. 클릭 8. 클릭 9. 클릭 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (7) Form Name 지정: frmSubFunction Caption 지정: Sub: Function 10. 더블 클릭 (frmSubFunction 입력) 11. 더블 클릭 (Sub: Function) 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (8) Control 배치 12. Control 배치 Text Box Label CommandButton Command 1 Command 2 Command 3 12. Control 배치 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (9) Control 속성 지정 Name Text Name Caption TextBox 속 성 Name Text Control Text 1 txtInput CommandButton 속 성 Name Caption Control Command 1 Command 2 Command 3 cmdSub cmdFunction cmdClose 절 대 값 절대값의 제곱 닫 기(&C) 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (10) Control 속성지정 Name Caption Appearance Label 속 성 Name Caption Appearance BoarderStyle Control Label 1 Label 2 lblSub lblFunction 0: 평면 1: 단일 고정 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (11) Control 배치 및 속성 지정 완료 화면 13. 더블 클릭 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (12) Code 작성 Sub: Function 화면의 [닫기] 버튼 클릭 Event
프로시저(Procedure) 예제 (13) 프로시저 추가 [ 도구 > 프로시저 추가 ] 버튼 클릭 15. 클릭 16. “SubAbsolute” 입력 17. 클릭 19. 클릭 18. 클릭 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (14) SubAbsolute 서브 프로시저 작성 SubAbsolute() 기능 Text Box의 입력값에 대하여 절대값을 구한 후 Label에 출력 20. Code 작성 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (15) 함수 추가 [ 도구 > 프로시저 추가 ] 버튼 클릭 21. 클릭 22. “SubAbsolute” 입력 25. 클릭 23. 클릭 24. 클릭 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (16) FuncAbsolute 함수 작성 FuncAbsolute() 기능 Text Box의 입력값에 대하여 절대값을 구하여 반환 26. Code 작성 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (17) Code 작성 “Sub: Function” 화면의 [절대값] 버튼 클릭 Event
프로시저(Procedure) 예제 (18) Code 작성 “Sub: Function” 화면의 [절대값의 제곱] 버튼 클릭 Event 28. Code 작성 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (19) Code 작성 “프로시저 & 함수” 화면의 [서브와 함수] 버튼 클릭 Event vbModeless: “frmSubFunction” 폼의 형식 지정 frmProcedure: “frmSubFunction” 폼의 소유자 지정 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (20) Code 작성 “프로시저 & 함수” 화면의 [종료] 버튼 클릭 Event 컴퓨터응용 및 실습 I
프로시저(Procedure) 예제 (21) 실행 결과 순서 31. 클릭 33. 클릭 32. “-78”입력 33. 클릭 서브와 함수 클릭 Test Box에 -78 입력 절대값 구하기 절대값의 제곱 구하기 33. 클릭 31. 클릭 32. “-78”입력 33. 클릭 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (1) 실습 실습시간(30분) 앞에서 작성한 Procedure 프로젝트에 새로운 폼 표준 모듈 을 추가하고 Private과 Public 프로시저를 작성해 보자 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (2) 새로운 폼 추가 [프로젝트 > 폼 추가 ] 클릭 1. 클릭 2. 클릭 3. 클릭 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (3) Form Name 지정: frmAccess Caption 지정: Private : Public 예제 4. 더블 클릭 (frmAccess 입력) 5. 더블 클릭 (Private : Public 입력) 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (4) Control 배치 Label Label 1 CommandButton Command 1 Command 2 Command 3 3. Control 배치 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (5) Control 속성지정 Label 속 성 Name Caption Appearance BorderStyle Control Label 1 lblCall 0: 평면 1: 단일고정 Command Button 속 성 Name Caption Control Command 1 Command 2 Command 3 cmdFrmPub cmdMduPub cmdClose 폼 Public 모듈 Public 닫기(&C) 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (6) Control 배치 및 속성 지정 완료 화면 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (7) Code 작성 [ 폼 Public ] 버튼 Click Event 프로시저 4. Code 작성 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (8) Code 작성 [ 모듈 Public ] 버튼 Click Event 프로시저 5. Code 작성 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (9) Code 작성 [ 닫기(C) ] 버튼 Click Event 프로시저 6. Code 작성 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (10) 새로운 모듈 추가 [ 프로젝트 > 모듈 추가 ] 7. 클릭 8. 클릭 9. 클릭 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (11) 표준 모듈 Code 입력창 표준 모듈의 속성 name: mduProcedure 10. “mduProcedure”입력 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (12) Code 작성 Private 프로시저 11. Code 작성 Public 프로시저 12. Code 작성 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (13) 모듈 저장 파일명 Procedure.bas 13. 클릭 14. 클릭 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (14) frmProcedure 폼에 Command Button 추가 Command Button 속 성 Name Caption Control Command 1 cmdAccess Private과 Public Control 배치 및 속성 지정 완료 화면 15. [Private과 Public] 버튼 추가 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (15) Code 작성 [ Private과 Public ] 버튼 개체의 Click Event 프로시저 16. Code 작성 frmAccess를 모델리스 폼으로 나타냄 소유자: frmProcedure 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (16) frmProcedure 폼의 Code 작성 Private 프로시저 17. Code 작성 Public 프로시저 18. Code 작성 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (17) 실행 폼의 Public 프로시저 호출 19. 클릭 20. 클릭 컴퓨터응용 및 실습 I
Public vs Private 프로시저 예제 (18) 실행 모듈의 Public 프로시저 호출 21. 클릭 22. 클릭 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (1) 실습 실습시간(30분) 앞에서 작성한 Procedure 프로젝트에 새로운 폼 을 추가하여 Static과 NonStatic 변수를 선언한 프로그램을 작성해 보자 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (2) 새로운 폼 추가 [프로젝트 > 폼 추가 ] 클릭 1. 클릭 2. 클릭 3. 클릭 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (3) Form Name 지정: frmStatic Caption 지정: Static : NonStatic 4. 이름 지정 (frmStatic 입력) 5. BoardStyle 지정 (3-크기 고정 대화상자) 6. Caption 지정 (Static : NonStatic 입력) 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (4) Control 배치 Frame Frame 1 Frame 2 Label Label 1 Label 2 Label 3 Label 4 Label 5 CommandButton Command 1 Command 2 7. Control 배치 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (5) Control 속성지정 Frame 속 성 Name Caption Control Frame 1 Frame 2 Frame 1 Frame 2 Static 프로시저 NonStatic 프로시저 Command Button 속 성 Name Caption Control Command 1 Command 2 cmdCall cmdClose 호 출 닫 기(&C) 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (6) Label 속 성 Name Caption BorderStyle Control Label 1 Label 2 Label 3 Label 4 Label 5 Label 1 Label 2 lblStatic lblNonStatic lblStaticVal 보통 변수 정적 변수 0: 없음 1: 단일 고정 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (7) Control 배치 및 속성 지정 완료 화면 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (8) Code 작성 [ 호 출 ] 버튼 Click Event 프로시저 8. Code 작성 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (9) 정적 프로시저 Code 작성 StaticProc() 프로시저 9. Code 작성 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (10) 비정적 프로시저 Code 작성 NonStaticProc() 프로시저 10. Code 작성 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (11) 정적 프로시저 Code 작성 [ 닫 기(C) ] 버튼 Click Event 프로시저 11. Code 작성 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (12) frmProcedure 폼에 Command Button 추가 Command Button 속 성 Name Caption Control Command 1 cmdStatic 정적과 비정적 Control 배치 및 속성 지정 완료 화면 12. [정적과 비정적] 버튼 추가 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (13) Code 작성 [ Private과 Public ] 버튼 개체의 Click Event 프로시저 13. Code 작성 FrmStatic을 모델리스 폼으로 나타냄 소유자: frmProcedure 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (14) 실행 frmStatic 폼 호출 14. 클릭 15. 클릭 컴퓨터응용 및 실습 I
Static vs NonStatic 프로시저 예제 (15) 16. 클릭 17. 클릭 정적변수는 초기화 되지 않음 컴퓨터응용 및 실습 I
내장형 함수 프로시저 내장형 함수 프로시저(Built-in Function Procedure) Visual Basic에서 기본적으로 제공해주는 함수 수학 함수 문자열 처리 함수 파일과 폴더 처리 함수 색상 함수 에러 관련 함수 날짜, 시간 관련 함수 변환 함수 기타 함수 컴퓨터응용 및 실습 I
인수 전달 Format Sub procedure-name([ByVal | ByRef] 변수명 [As 데이터형], ...) 전달 방법 Call By Value 인수를 값으로 전달하는 방법으로 호출하는 프로시저의 전달 변수와 호출 받는 프로시저의 변수가 서로 다른 기억 장소를 사용한다. Call By Reference (default) 인수를 참조로 전달하는 방법으로 호출하는 프로시저에서 전달하는 변수가 저장된 기억장소의 주소를 넘겨주며, 호출하는 프로시저와 호출 받는 프로시저의 변수가 서로 동일한 기억 장소를 사용한다. Sub procedure-name([ByVal | ByRef] 변수명 [As 데이터형], ...) [명령문] [Exit Sub] End Sub 컴퓨터응용 및 실습 I
인수 전달 예제 (1) 실습 실습시간(30분) 앞에서 작성한 Procedure 프로젝트에 새로운 폼 을 추가하고 인수 전달 방법의 차이를 알 수 있는 예제 프로그램을 작성해 보자 컴퓨터응용 및 실습 I
인수 전달 예제 (1) 새로운 폼 추가 [프로젝트 > 폼 추가 ] 클릭 1. 클릭 2. 클릭 3. 클릭 컴퓨터응용 및 실습 I
6. Caption “ByVal : ByRef” 입력 인수 전달 예제 (2) Form Name 지정: frmValRef Caption 지정: ByVal : ByRef 4. 이름 “frmValRef” 입력 5. BoderStyle 지정 (3-크기고정 대화 상자) 6. Caption “ByVal : ByRef” 입력 컴퓨터응용 및 실습 I
인수 전달 예제 (3) Control 배치 Frame 7. Control 배치 Label TextBox CommandButton Command 1 Command 2 7. Control 배치 컴퓨터응용 및 실습 I
인수 전달 예제 (4) Control 속성지정 Name Caption Name Caption Frame 속 성 Control 속 성 Name Caption Control 입력값 ByVal ByRef Frame 1 Frame 2 Frame 3 Frame 1 Frame 2 Frame 3 Command Button 속 성 Name Caption Control Command 1 Command 2 cmdCall cmdClose 호 출 닫 기(&C) 컴퓨터응용 및 실습 I
인수 전달 예제 (5) Name Caption BorderStyle Label 속 성 Control Label 1 속 성 Name Caption BorderStyle Control Label 1 Label 2 Label 3 Label 4 Label 5 Label 6 Label 7 Label 8 Label 9 Label 10 Label 1 Label 2 Label 3 Label 4 Label 5 Label 6 Label 7 Label 8 lblValA2 lblValB2 intA intB 호출된 프로시저 호출한 프로시저 intA + intB = 0: 없음 1: 단일고정 컴퓨터응용 및 실습 I
인수 전달 예제 (6) Name Caption BorderStyle Name Text 속 성 Control Label 11 속 성 Name Caption BorderStyle Control Label 11 Label 12 Label 13 Label 14 lblValSum lblRefA2 lblRefB2 lblRefSum 1: 단일고정 Text 속 성 Name Text Control Text 1 Text 2 txtA txtB 컴퓨터응용 및 실습 I
인수 전달 예제 (7) Control 배치 및 속성 지정 완료 화면 컴퓨터응용 및 실습 I
인수 전달 예제 (8) CallbyValue 서브 프로시저 작성 8. Code 작성 컴퓨터응용 및 실습 I
인수 전달 예제 (9) CallbyReference 서브 프로시저 작성 9. Code 작성 컴퓨터응용 및 실습 I
인수 전달 예제 (10) Code 작성 [ 호출 ] 버튼 Click Event 프로시저 10. Code 작성
인수 전달 예제 (11) Code 작성 [ 닫기 ] 버튼 Click Event 프로시저 11. Code 작성
인수 전달 예제 (12) frmProcedure 폼에 Command Button 추가 Name Caption 속 성 Name Caption Control Command 1 cmdValRef ByVal와 ByRef Control 배치 및 속성 지정 완료 화면 12. [ByVal와 ByRef] 버튼 추가 컴퓨터응용 및 실습 I
인수 전달 예제 (13) Code 작성 [ ByVal와 ByRef ] 버튼 개체의 Click Event 프로시저 FrmStatic을 모델리스 폼으로 나타냄 소유자: frmProcedure 컴퓨터응용 및 실습 I
인수 전달 예제 (14) 실행 frmValRef 폼 호출 14. 클릭 컴퓨터응용 및 실습 I
인수 전달 예제 (15) 15. intA=3 intB=7 입력 16. 클릭 컴퓨터응용 및 실습 I
정 리 프로시저(Procedure) 프로시저(Procedure) 예제 Public vs. Private 프로시저 예제 Static vs. NonStatic 프로시저 예제 인수 전달 인수 전달 예제 컴퓨터응용 및 실습 I