책 내용 질문하기
2020 시나공 컴퓨터활용능력 1급 실기 기출문제집 156P
도서
2020 시나공 기출문제집 컴퓨터활용능력 1급 실기 [기출문제집]
페이지
156
조회수
364
작성일
2020-09-11
작성자
탈퇴*원

질문이 2개 입니다.

 

질문1. 150P 계산문제 2번에 대한 해답 156P를 따라서 VBA코드를 입력하니 다음과 같이 오류가 발생합니다.

오류화면 캡쳐는 첨부파일에 있습니다.

 

질문2. 다음과 같이 코드를 입력했을 때 ■ 이 반복되지 않는 이유는 무엇인가요?

Public Function FN비고(제품명) 

If Mid(제품명, Len(제품명) - 4, 3) >= 100 Then 

For a = 1 To Mid(제품명, Len(제품명) - 4, 3) / 100 

FN비고 = "■" 

Next a 

Else 

FN비고 = "" 

End If 

End Function

 

감사합니다.

 

 

 

 

답변
2020-09-14 09:28:21

& 연산자 앞 뒤로는 띄어쓰기를 해야 하는데 띄어쓰기가 없어 오류가 난 것입니다. 

 

반복이 되지 않는 것은 

 

FN비고 = "■"  로 작성했기 때문입니다.  

 

FN비고 = FN비고 & "■" 

 

와 같이 작성하셔야 정확한 결과가 나옵니다. 

 

For 문은 아래 형식이 기본 형식입니다.

For 초기값 to 최종값 step 증가분

 //반복되어 실행될 코드

Next

 

예를 들어

For a=1 to 10

a=a+1

Next a 라면

 

a는 1부터 10까지 반복되면서 누적합계를 구하는 코드가 됩니다.

For문은 a의 값이 10보다 작지 않은지 확인 하고 1~10 사이의 수라면

a=a+1을 실행합니다.

next a 를 만나면 다시 for 문의 시작으로 제어가 이동합니다.

다시 a가 1~10 사이의 수인지 확인하고,

1~10 사이의 수라면 a=a+1을 수행하고, 그렇지 않으면 Next a 다음으로 제어를 이동시키며 For문을 빠져나옵니다.

 

a는 변수로 변하는 값을 저장합니다.

1부터 Mid(제품명, Len(제품명) - 4, 3) / 100 의 계산 값까지 변합니다.

 

For 문이 Next 문을 만나 한 바퀴 돌면 1씩 증가하게 되죠.

변수 이름은 임의로 지정 가능합니다.

 

For문을 실행하다가 Next를 만나면

다시 For문으로 돌아가고 변수 a는 다음 값인 1 증가된 값을 가지고 For문이 실행됩니다.

For문으로 돌아갔는데, 증가된 a가 Mid(제품명, Len(제품명) - 4, 3) / 100 값보다 커지면 For문이 종료됩니다.

 

For문을 도는 동안 코드의 변화는 다음과 같습니다.

  

fn기타 = fn기타 & "■"

a가 1일때 실행하면 아무것도 입력되어 있지 않은 fn기타의 값과 "■"를 연결하여 fn기타에 넣으므로, fn기타에는 "■"가 들어가 있습니다.

a가 2일때 실행하면 fn기타에 입력되어 있던 "■"에 "■"를 연결하여 fn기타에 저장하므로 "■■"가 됩니다.

a가 3일때 실행하면 fn기타에 입력되어 있던 "■■"에 "■"를 연결하여 fn기타에 저장하므로 "■■■"가 됩니다.

 

연결하여 표시하기 위해 &를 이용합니다.

기존의 fn기타에 입력되어 있는 값에 "■"를 하나 더 연결하여 표시하는 것입니다.

 

 

좋은 하루 보내세요.  

  • 관리자
    2020-09-14 09:28:21

    & 연산자 앞 뒤로는 띄어쓰기를 해야 하는데 띄어쓰기가 없어 오류가 난 것입니다. 

     

    반복이 되지 않는 것은 

     

    FN비고 = "■"  로 작성했기 때문입니다.  

     

    FN비고 = FN비고 & "■" 

     

    와 같이 작성하셔야 정확한 결과가 나옵니다. 

     

    For 문은 아래 형식이 기본 형식입니다.

    For 초기값 to 최종값 step 증가분

     //반복되어 실행될 코드

    Next

     

    예를 들어

    For a=1 to 10

    a=a+1

    Next a 라면

     

    a는 1부터 10까지 반복되면서 누적합계를 구하는 코드가 됩니다.

    For문은 a의 값이 10보다 작지 않은지 확인 하고 1~10 사이의 수라면

    a=a+1을 실행합니다.

    next a 를 만나면 다시 for 문의 시작으로 제어가 이동합니다.

    다시 a가 1~10 사이의 수인지 확인하고,

    1~10 사이의 수라면 a=a+1을 수행하고, 그렇지 않으면 Next a 다음으로 제어를 이동시키며 For문을 빠져나옵니다.

     

    a는 변수로 변하는 값을 저장합니다.

    1부터 Mid(제품명, Len(제품명) - 4, 3) / 100 의 계산 값까지 변합니다.

     

    For 문이 Next 문을 만나 한 바퀴 돌면 1씩 증가하게 되죠.

    변수 이름은 임의로 지정 가능합니다.

     

    For문을 실행하다가 Next를 만나면

    다시 For문으로 돌아가고 변수 a는 다음 값인 1 증가된 값을 가지고 For문이 실행됩니다.

    For문으로 돌아갔는데, 증가된 a가 Mid(제품명, Len(제품명) - 4, 3) / 100 값보다 커지면 For문이 종료됩니다.

     

    For문을 도는 동안 코드의 변화는 다음과 같습니다.

      

    fn기타 = fn기타 & "■"

    a가 1일때 실행하면 아무것도 입력되어 있지 않은 fn기타의 값과 "■"를 연결하여 fn기타에 넣으므로, fn기타에는 "■"가 들어가 있습니다.

    a가 2일때 실행하면 fn기타에 입력되어 있던 "■"에 "■"를 연결하여 fn기타에 저장하므로 "■■"가 됩니다.

    a가 3일때 실행하면 fn기타에 입력되어 있던 "■■"에 "■"를 연결하여 fn기타에 저장하므로 "■■■"가 됩니다.

     

    연결하여 표시하기 위해 &를 이용합니다.

    기존의 fn기타에 입력되어 있는 값에 "■"를 하나 더 연결하여 표시하는 것입니다.

     

     

    좋은 하루 보내세요.  

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