책 내용 질문하기
프로시저 기출따라잡기 문제2-3
도서
[2013] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
242
조회수
87
작성일
2014-03-16
작성자
첨부파일

Private Sub cmd고객조회_Click()
스위치 = 0 //스위치 라는 변수를 왜 썻는지 궁금합니다.
참조행 = 3
For Each aa In renge("d4:d7")
If aa.Value = txt고객명 Then // value는 무엇을 의미하나요?
txt고객등급 = Cells(참조행, 5)
txt매출금액 = Cells(참조행, 6)
txt결재방식 = Cells(참조행, 7)
스위치 = 1 // 위에는 변수가 0 이였는데 현재는 왜 1인가요?
Exit For // 이게 왜 생겼는지 그리고 for문이 if문 보다 먼저 썻는데 왜 if문 안쪽에 있는지 궁금합니다.
End If
Next
If 스위치 = 0 Then //스위치가 0인 이유는 뭐죠?
MsgBox "조건에 일치하는 지료가 없습니다."
End If
End Sub

이외의 질문

if문 / select문 / for문 / each문 각각 사용하는 방법이 있는데 문제를 보고 어떻게 '이거다' 라고 알 수 있는지 알고싶네요.

답변
2014-03-18 11:27:47

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

- 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 문을 빠져나게 되므로 정상적으로 실행이 안되는 것입니다.

문제를 보고 판단해야 하는 부분입니다.

엑세스 책에 보시면

select 문은 205페이지 오른쪽 위의 그림에 설명이 있구요.

if문은 210페이지 오른쪽 아래부터 설명이 있습니다.

for each~next 문은 244페이지 왼쪽 제일위에 부터 설명이 있습니다.

각 설명을 확인하고 기억하여 어떤문제에서 사용해야 할지 생각해 보시기 바랍니다.

좋은 하루 되세요.

"
  • *
    2014-03-18 11:27:47

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

    - 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 문을 빠져나게 되므로 정상적으로 실행이 안되는 것입니다.

    문제를 보고 판단해야 하는 부분입니다.

    엑세스 책에 보시면

    select 문은 205페이지 오른쪽 위의 그림에 설명이 있구요.

    if문은 210페이지 오른쪽 아래부터 설명이 있습니다.

    for each~next 문은 244페이지 왼쪽 제일위에 부터 설명이 있습니다.

    각 설명을 확인하고 기억하여 어떤문제에서 사용해야 할지 생각해 보시기 바랍니다.

    좋은 하루 되세요.

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