책 내용 질문하기
for each next 구문 질문이요
도서
[2013] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
245
조회수
654
작성일
2013-03-04
작성자
첨부파일

기출따라잡기 문제2번에서 3번째 문제에 for each~next문을 이용하라고 되어있는데요...

책에는 설명이 빈약하게 되있는거 같아서 질문좀 드립니다.

Private Sub cmd고객조회_Click()

스위치=0

참조행=3

For each aa in Range("d4:d7")

참조행 = 참조행 + 1

If aa.Value=txt고객명 Then

txt고객등급 = Cells(참조행, 5)

txt매출금액=Cells(참조행, 6)

txt결제방식=Cells(참조행,7)

스위치 = 1

Exit for

End If

Next

If 스위치 = 0 Then

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

End if

End sub

질문1>>

먼저, 질문드리고 싶은 내용은 책에는 프로시저 쓸 때 보기 좋게 정렬이 잘되어 있더라고요. 그런데 그렇게 하면 시간이 더 걸릴거 같아서 제가 여기 질문란에 쓴것처럼 정렬하지 않고 바로 왼쪽 끝에 붙여쓴거처럼해서 작성해도 감점같은 불이익이 없는 것인지 궁금합니다. 그리고 영문 입력할때 소문자로 쭉 한줄 다쓰고 엔터치면 각 명령어들이 알아서 대문자로 변할 것들은 변해주고 그러던데.... 실전에서도 같은 방식으로 작성해도 되겠지요?

질문2>> Exit for라는 부분인데... for each next구문에서 필수로 쓰이는 것인지요? 그러니까...함수에서 사용되는 인수처럼 반드시 써줘야 할부분인지도 궁금하네요. Exit for라고 써주지 않는다면 틀린것이 되는건가요? vba에서 생략하고 실행시켜보니까 제대로 작동하는 것 같아서요..

다시, 정리해서 질문하자면, 문제에서 for each next구문을 사용하여 작성라는 말이 있다면,,,

For each 변수 next in range( )

~~~~~

~~~~~

~~~~~

Exit for

Next

위와 같이 생긴 구문이라고 이해하면 되는건가요?

답변
2013-03-05 09:30:08

안녕하세요.

질문1>>

먼저, 질문드리고 싶은 내용은 책에는 프로시저 쓸 때 보기 좋게 정렬이 잘되어 있더라고요. 그런데 그렇게 하면 시간이 더 걸릴거 같아서 제가 여기 질문란에 쓴것처럼 정렬하지 않고 바로 왼쪽 끝에 붙여쓴거처럼해서 작성해도 감점같은 불이익이 없는 것인지 궁금합니다. 그리고 영문 입력할때 소문자로 쭉 한줄 다쓰고 엔터치면 각 명령어들이 알아서 대문자로 변할 것들은 변해주고 그러던데.... 실전에서도 같은 방식으로 작성해도 되겠지요?

-> 보기 좋게 정렬하지 않으셔도 되고, 실전 시험에서도 같은 방식으로 작성이 됩니다.

질문2>> Exit for라는 부분인데... for each next구문에서 필수로 쓰이는 것인지요? 그러니까...함수에서 사용되는 인수처럼 반드시 써줘야 할부분인지도 궁금하네요.

-> Exit for는 For 이 끝나기 전에 빠져나가고 싶을 때 사용하는 것으로 for 문이 있다고 해서 반드시 사용해야 하는 것은 아닙니다.

Exit for라고 써주지 않는다면 틀린것이 되는건가요? vba에서 생략하고 실행시켜보니까 제대로 작동하는 것 같아서요..

-> Exit for가 없어도 정상적으로 실행이 된다면 생략해도 됩니다. 이 코드에서는 폼에 입력한 데이터와 동일한 데이터를 찾아 폼에 표시한 다음에는 계속해서 반복문을 실행할 필요가 없으므로 exit for를 사용한 것입니다. 폼에 데이터를 표시한 다음에도 계속해서 폼에 입력한 데이터와 워크시트에 입력한 데이터를 비교해도 어차피 없기때문에 exit for를 생략해도 결과값이 동일하게 실행된 것입니다.

즐거운 하루 되세요.

"
  • *
    2013-03-05 09:30:08

    안녕하세요.

    질문1>>

    먼저, 질문드리고 싶은 내용은 책에는 프로시저 쓸 때 보기 좋게 정렬이 잘되어 있더라고요. 그런데 그렇게 하면 시간이 더 걸릴거 같아서 제가 여기 질문란에 쓴것처럼 정렬하지 않고 바로 왼쪽 끝에 붙여쓴거처럼해서 작성해도 감점같은 불이익이 없는 것인지 궁금합니다. 그리고 영문 입력할때 소문자로 쭉 한줄 다쓰고 엔터치면 각 명령어들이 알아서 대문자로 변할 것들은 변해주고 그러던데.... 실전에서도 같은 방식으로 작성해도 되겠지요?

    -> 보기 좋게 정렬하지 않으셔도 되고, 실전 시험에서도 같은 방식으로 작성이 됩니다.

    질문2>> Exit for라는 부분인데... for each next구문에서 필수로 쓰이는 것인지요? 그러니까...함수에서 사용되는 인수처럼 반드시 써줘야 할부분인지도 궁금하네요.

    -> Exit for는 For 이 끝나기 전에 빠져나가고 싶을 때 사용하는 것으로 for 문이 있다고 해서 반드시 사용해야 하는 것은 아닙니다.

    Exit for라고 써주지 않는다면 틀린것이 되는건가요? vba에서 생략하고 실행시켜보니까 제대로 작동하는 것 같아서요..

    -> Exit for가 없어도 정상적으로 실행이 된다면 생략해도 됩니다. 이 코드에서는 폼에 입력한 데이터와 동일한 데이터를 찾아 폼에 표시한 다음에는 계속해서 반복문을 실행할 필요가 없으므로 exit for를 사용한 것입니다. 폼에 데이터를 표시한 다음에도 계속해서 폼에 입력한 데이터와 워크시트에 입력한 데이터를 비교해도 어차피 없기때문에 exit for를 생략해도 결과값이 동일하게 실행된 것입니다.

    즐거운 하루 되세요.

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