책 내용 질문하기
section 17 프로시저 작성 부분 기출문제 2번이요.
도서
[2015] 컴퓨터활용능력 1급 실기
페이지
233
조회수
99
작성일
2015-04-07
작성자
첨부파일

기출2번문제 보자마자 걍 모르겠어서 해설봤는데요

작은 문제 2번까지는 이해가 되는데

3번문제 해설보면

private sub cmd고개조회_Clikck()

스위치=0

참조행=3

for each aa in range("d4:d7")

if aa.value ~~~~~

이렇게 되있는데

스위치는 왜 나오는지 그리고 참조행은 왜 나오나요..........??

또 for each aa in rage("d4:d7")은 뭔가요......... 왜 aa라고 하는거죠??

그리고 each문 종료되고

if 스위치=0 then

msgbox "조건에 일치하는 자료가 없습니다."

라고나오는데 여기서도 스위치가 왜나오고 스위치=0은 또 뭔지.....

하나도 모르곘어요...ㅠㅠㅠ

자세히 알려주세용

답변
2015-04-10 01:00:27

스위치 : 스위치는 TXT원아명에 입력한 원아가 b4:b19 영역에 있는지, 없는지를 판단하는 것입니다. 맨 처음 스위치에 0을 넣은 후 IF 문 안에 '스위치 = 1'를 넣었습니다. 그런 다음 맨 마지막에 ' If 스위치 = 0 Then'에서 스위치가 0인지를 비교합니다. 맨 처음에 넣은 0이 그대로 있으면 동일한 원아가 없어 '스위치 = 1'를 한번도 수행하지 않은 것이고, 스위치 값이 1로 변경되었다면 동일한 데이터가 있었다는 의미입니다.

- aa 는 변수명으로 다른 것으로 지정하셔도 상관 없습니다. 임의로 지정한 것이 맞습니다.

- FOR EACH~NEXT : 컬렉션에 포함된 개체의 수만큼 명령 코드를 반복 실행하는 명령문입니다. For Each aa In Range("b4:b19") 이렇게 작성하면 b4:b19 영역의 개체 수 즉, 셀의 수인 16번을 반복 수행하게 되는 것입니다.

- IF AA.VALUE=TXT원아명 : 앞에 For Each aa In Range("b4:b19")에서 b4:b19 영역의 각 셀의 값이 하나씩 aa 변수에 저장이 됩니다. 그랬을 때 현재 aa 변수에 들어 있는 값(value)이 txt원아명 컨트롤에 입력된 값과 같은지를 비교하는 것입니다.

-exit for를 If ~ End if 사이에 넣는 것은 if 문의 조건을 만족할 때만 For문을 빠져나가라는 것입니다. 그런데 exit for를 End if 다음에 입력하면 if 문의 조건과는 상관없이 for문을 처음 실행했을 때 무조건 for 문을 빠져나게 되므로 정상적으로 실행이 안되는 것입니다.

참조행 = 참조행 + 1

고객명을 입력한 후 [고객조회] 버튼을 클릭하면 d4:d7 범위에서 동일한 고객명을 찾습니다.

해당 고객명을 찾았을 경우 그 고객에 대한 고객등급, 매출금액, 결제방식 등을 폼에 표시해야 합니다.

참조행은 해당 고객명과 같은 행에 있는 고객등급, 매출금액, 결제방식을 폼에 표시하기 위해 사용하는 것입니다.

처음에 참조행에 3을 넣고, for문의 첫번째에 참조행=참조행+1을 실행하면 참조행은 4가 됩니다.

이 4는 워크시트에서 고객명이 들어 있는 범위의 첫번째 행을 의미하는 것입니다.

즉, 첫번째 고객이 들어 있는 '김현진'은 워크시트에 4행에 입력되어 있습니다.

첫번째 데이터를 비교할 때는 참조행이 4, 두번째 데이터를 비교할 때는 for 문 안에 들어 있는

'참조행=참조행+1'를 또 실행하게 되므로 참조행은 5 이렇게 1씩 증가하게 되는 것입니다.

좋은 하루 되세요.

"
  • *
    2015-04-10 01:00:27

    스위치 : 스위치는 TXT원아명에 입력한 원아가 b4:b19 영역에 있는지, 없는지를 판단하는 것입니다. 맨 처음 스위치에 0을 넣은 후 IF 문 안에 '스위치 = 1'를 넣었습니다. 그런 다음 맨 마지막에 ' If 스위치 = 0 Then'에서 스위치가 0인지를 비교합니다. 맨 처음에 넣은 0이 그대로 있으면 동일한 원아가 없어 '스위치 = 1'를 한번도 수행하지 않은 것이고, 스위치 값이 1로 변경되었다면 동일한 데이터가 있었다는 의미입니다.

    - aa 는 변수명으로 다른 것으로 지정하셔도 상관 없습니다. 임의로 지정한 것이 맞습니다.

    - FOR EACH~NEXT : 컬렉션에 포함된 개체의 수만큼 명령 코드를 반복 실행하는 명령문입니다. For Each aa In Range("b4:b19") 이렇게 작성하면 b4:b19 영역의 개체 수 즉, 셀의 수인 16번을 반복 수행하게 되는 것입니다.

    - IF AA.VALUE=TXT원아명 : 앞에 For Each aa In Range("b4:b19")에서 b4:b19 영역의 각 셀의 값이 하나씩 aa 변수에 저장이 됩니다. 그랬을 때 현재 aa 변수에 들어 있는 값(value)이 txt원아명 컨트롤에 입력된 값과 같은지를 비교하는 것입니다.

    -exit for를 If ~ End if 사이에 넣는 것은 if 문의 조건을 만족할 때만 For문을 빠져나가라는 것입니다. 그런데 exit for를 End if 다음에 입력하면 if 문의 조건과는 상관없이 for문을 처음 실행했을 때 무조건 for 문을 빠져나게 되므로 정상적으로 실행이 안되는 것입니다.

    참조행 = 참조행 + 1

    고객명을 입력한 후 [고객조회] 버튼을 클릭하면 d4:d7 범위에서 동일한 고객명을 찾습니다.

    해당 고객명을 찾았을 경우 그 고객에 대한 고객등급, 매출금액, 결제방식 등을 폼에 표시해야 합니다.

    참조행은 해당 고객명과 같은 행에 있는 고객등급, 매출금액, 결제방식을 폼에 표시하기 위해 사용하는 것입니다.

    처음에 참조행에 3을 넣고, for문의 첫번째에 참조행=참조행+1을 실행하면 참조행은 4가 됩니다.

    이 4는 워크시트에서 고객명이 들어 있는 범위의 첫번째 행을 의미하는 것입니다.

    즉, 첫번째 고객이 들어 있는 '김현진'은 워크시트에 4행에 입력되어 있습니다.

    첫번째 데이터를 비교할 때는 참조행이 4, 두번째 데이터를 비교할 때는 for 문 안에 들어 있는

    '참조행=참조행+1'를 또 실행하게 되므로 참조행은 5 이렇게 1씩 증가하게 되는 것입니다.

    좋은 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.