강의 및 공부/엑셀실기 강의 [완료]

[108] Excel 기타작업 - 프로시저 작업 기초 (RowSource, Select 명령과 Change이벤트)

Page T 2014. 8. 20. 17:03
728x90
반응형



엑셀은 셀로 이루어져 있습니다.

셀이 함께 모여 행과 열이 되고, 행과 열이 모여 표를 만듭니다.


프로시저는 이 엑셀의 행과 열을 이용하여 명령을 내리는 경우가 많이 있는데,

특히 '행'을 많이 이용합니다.

왜냐하면 프로시저의 특성상 건물을 만들 때,



이렇게 3열로 정렬하는 것 보다







이렇게 행으로 정렬하는 경우가 더 보기에도 깔끔하고 일반적이기 때문입니다.


그래서 프로시저 명령행(Row) 명령을 

열(Column)명령보다 더 많이 사용합니다.


그냥, 프로시저는 '행'이 기준이라고 생각하면 됩니다.


.


다시, 2010년 2회 컴활 1급 프로시저 문제를 가져오겠습니다.


문제

<수강인원등록화면> 폼의 '분류(Cob분류)'로 

'외국어'가 선택되면 'List강좌'에 [L8:O12]영역, 

'취미'가 선택되면 [L13:O22] 영역, 

'컴퓨터'가 선택되면 [L23:O24] 영역이 나타나도록 프로시저를 작성하시오.

단, Select문과 Change이벤트를 이용해야 함.


컴활 1급 프로시저에서 첫 째로 중요한 것은

출제자가 무슨 말을 하는 것인지 제대로 알아듣는 것입니다.


문제를 다시 뜯어보겠습니다.







문제

<수강인원등록화면> 폼의 '분류(Cob분류)'로 

'외국어'가 선택되면 'List강좌'에 [L8:O12]영역

[중략]

 나타나도록 프로시저를 작성하시오.




앞 포스팅에서 Cob분류(빨간박스)를 설명했으므로 왜 빨간박스가 Cob분류인지는 알고계실 것입니다.


그럼 'List강좌'가 무엇인지는 어떻게 알아낼 수 있을까요?


앞에서 크게 두 가지 방법 1.통밥 2.영어약자 를 통해 가능하다고 했습니다.


1. 통밥 : 파란박스속 흰색 바탕은 크고 넓게 설치되어 있으므로 리스트가 주르륵 나오게 될만한 곳은 저 곳밖에 없습니다. 


2. 영어약자 : 계속 문제를 풀다보면 저절로 알게되는 부분인데, 파란박스를 다른말로 리스트박스(ListBox)라고 합니다.

그러므로 'List강좌' 라는 이름에 맞는 자재는 저 파란박스밖에 없습니다.


더 확실하게 알아보고싶으시다면 파란박스 부분을 더블클릭 하면 됩니다.







더블클릭하면 바로 해당 자재에 명령을 내릴 수 있는 비쥬얼베이직 화면으로 들어가는데

파란박스 부분을 보면 해당 자재의 이름이 'List강좌'로 나와있습니다.

그러므로 해당 자재의 이름은 'List강좌'가 맞습니.





 

 

문제

<수강인원등록화면> 폼의 '분류(Cob분류)'로 

'외국어'가 선택되면 'List강좌'에

[후략]




즉 출제자는 콤보박스(빨간박스에서)에서 '외국어' 항목이 선택되면

List강좌(파란박스) 안에







문제

[전략]

[L8:O12]영역

'취미'가 선택되면 [L13:O22] 영역, 

'컴퓨터'가 선택되면 [L23:O24] 영역이 나타나도록 프로시저를 작성하시오.




어떤 목록이 나타나게 해야 하는데 그 나타날 영역은 엑셀 시트의 [L8:O12]영역(빨간박스) 이고

콤보박스에서 '취미'가 선택되면 [L13:O22] 영역(파란박스)

'컴퓨터'가 선택되면 [L23:O24] 영역(초록박스)

가 List강좌에 나타나야 한다는 것입니다. 


다시 한 번 정리해봅시다.



제가 여기서 외국어 항목을 선택하면







엑셀 시트의 빨간박스 부분이 'List강좌' 부분에 출력되어야 한다는 것입니다.

취미 항목을 선택하면 파란박스 부분

컴퓨터 항목을 선택하면 초록박스 부분이 나와야합니다.


다시 말해 콤보박스(Cob분류)의 항목이 

'외국어'항목, '취미'항목, '컴퓨터'항목으로 바뀔 때 마다

'List강좌'에 출력되는 목록도 함께 바뀌어야 한다는 것입니다.


이럴 때, Change이벤트를 사용할 수 있습니다.







우리가 조작할 곳은 Cob분류(빨간박스) 입니다.

우선 Cob분류가 바뀌어야 다른 항목들도 그에 따라 변화하기 때문입니다.


유식한 말로

Cob분류는 독립변수이고

List강좌는 종속변수이므로

독립변수인 Cob분류만 조작하면 된다는 것입니다.


Cob분류를 더블클릭합니다.







비쥬얼 베이직 화면이 나옵니다.

파란박스는 상황을 설정하는 곳이라고 했습니다.

상황은 Cob분류가 (외국어,취미,컴퓨터 항목으로) Change될 때(즉, 바뀔 때)의 상황입니다.


구체적인 내용은 빨간박스 안에 작성하면 됩니다.


~하면 이렇게

~하면 저렇게

~하면 요렇게 해라 라는 

여러가지 경우의 상황을 설정하는 프로시저 명령으로는

If 명령이 있고, 일반적으로 많이 사용됩니다.


하지만 출제자는 Select명령을 사용하라고 했으므로

Select명령을 사용해야합니다.


Select명령이나 If명령이나 여러가지 상황을 설정할 때 이용되는 명령이므로

명령이 이루어지는 체계는 비슷합니다.







위 사진은 Select 명령을 완성한 사진입니다.


각 명령을 박스별로 하나하나 뜯어보겠습니다.


우선

Select는 '선택'

Case는 '(특정한 상황의)경우'

로 영한사전에 해석되어 있다는 것을 알아둡시다.

 또,

If 명령이 Else와 언제나 함께이듯이

Select명령은 Case와 언제나 함께라는 것도 알아두어야합니다.


.


[빨간박스]

Select Case  Cob분류


Select   -   선택합니다. 


Case   -   특정한 상황의 경우를


Cob분류   -   특정한 상황이 일어날 곳은 Cob 분류입니다. 


[파란박스]

Case "외국어"


Case   -   첫 번째 경우(Case)로 


"외국어"   -   "외국어" 항목이 Cob분류에서 선택(Select)되면


List강좌.RowSource = "L8:O12"


List강좌   -   List강좌


.   -   의


Rowsource   -   행(Row)은 어떤자료를(Source)가져오는데


=   -   그것은


"L8:O12"   -   엑셀 시트의 L8부터 O12까지의 자료입니다.


라는 뜻입니다.


[초록박스]

밑에 '취미'와 '컴퓨터'도 같은 방식으로 작성하면 됩니다.

두 번째 Case라고 Case2라고 작성하면 안됩니다.

if ~ else 문에서 else1, else2가 아니듯이

Case도 계속 Case입니다.


[주황박스]

End Select


End Select - Select 명령을 그만 합니다.


명령이 제대로 실행되는지 확인해보겠습니다.







콤보박스(Cob분류)에서 외국어 항목을 선택하였습니다.

프로시저 명령으로 설정한 엑셀 시트의 부분이

List강좌 목록으로 나타났습니다.

728x90
반응형