책 내용 질문하기
사용자 정의 함수 for문
도서
2026 시나공 컴퓨터활용능력1급 실기 기본서
페이지
173
조회수
72
작성일
2026-09-11
작성자
권*산
첨부파일

문제가


▶ 'fn그래프'는 순위와 인원수를 인수로 받아 그래프를 계산하는 함수이다.


▶ 순위는 1회전 순위이고, 인원수는 선수명을 기준으로 계산한 전체 인원수이다.


▶ 그래프는 인원수에서 순위를 뺀 값만큼 "●"를 반복하여 표시하시오.


[표시 예: 인원수가 8이고 순위가 1인 경우 ---> ●●●●●●●]


▶ COUNTA 함수와 FOR문 사용




정답이


인데 첫줄부터 마지막 줄 까지 각각 뭘 의미하는 건가요 ㅠㅠ if문이랑 select case문만 했는데 for문 처음보네요...

답변
2026-09-14 10:22:20

안녕하세요.

For문은 같은 작업을 정해진 횟수만큼 반복할 때 사용하는 반복문입니다. 이 문제에서는 "●"를 여러 번 붙여야 하므로 For문을 사용합니다.

정답 코드를 한 줄씩 보면 다음과 같습니다.

Public Function fn그래프(순위, 인원수)

fn그래프라는 사용자 정의 함수를 만드는 부분입니다.
함수를 사용할 때 순위와 인원수, 두 개의 값을 전달받겠다는 뜻입니다.

예를 들어 순위가 1이고 전체 인원수가 8이면

fn그래프(1, 8)

과 같은 상태로 함수가 실행됩니다.

fn그래프 = ""

함수가 반환할 결과를 처음에는 빈 문자열로 만들어 놓는 것입니다.

즉, 처음 상태는

fn그래프 = 아무것도 없음

입니다.

For i = 1 To 인원수 - 순위

여기가 For문의 시작입니다.

i라는 변수를 1부터 인원수-순위까지 하나씩 증가시키면서 아래 명령을 반복하라는 뜻입니다.

인원수가 8명이고 순위가 1위라면

인원수 - 순위
= 8 - 1
= 7

이므로

For i = 1 To 7

이 되어 7번 반복합니다.

fn그래프 = fn그래프 & "●"

현재까지 만들어진 결과 뒤에 "●"를 하나 더 붙입니다.

7번 반복하면 다음과 같이 변합니다.

1회 → ●
2회 → ●●
3회 → ●●●
4회 → ●●●●
5회 → ●●●●●
6회 → ●●●●●●
7회 → ●●●●●●●

여기서 &는 문자열을 이어 붙이는 연산자입니다.

즉,

fn그래프 = fn그래프 & "●"

는 쉽게 말하면

“기존 결과에 ● 하나를 추가해라.”

라는 뜻입니다.

Next i

For문에서 한 번의 반복이 끝났다는 뜻입니다.

i를 1씩 증가시키면서 다시 For문으로 돌아갑니다.

i=1 → ● 추가
i=2 → ● 추가
i=3 → ● 추가
...
i=7 → ● 추가

7회 반복이 끝나면 For문을 빠져나옵니다.

End Function

fn그래프 함수가 끝났다는 뜻입니다.

따라서 전체 코드를 말로 풀면 아주 간단합니다.

Public Function fn그래프(순위, 인원수)

    fn그래프 = ""

    For i = 1 To 인원수 - 순위
        fn그래프 = fn그래프 & "●"
    Next i

End Function

“전체 인원수에서 순위를 뺀 횟수만큼 ●를 하나씩 반복해서 붙여라.”라는 코드입니다.

예를 들어 8명 중 3위라면

8 - 3 = 5

이므로 For문이 5번 실행되어

●●●●●

가 표시됩니다.

그리고 문제에 나온 COUNTA 함수는 이 VBA 코드 안에서 사용하는 것이 아니라, 전체 인원수를 구해서 fn그래프 함수의 두 번째 인수로 전달할 때 사용합니다.

즉 워크시트에서는 문제의 셀 범위에 따라 대략

=fn그래프(순위셀,COUNTA(선수명범위))

와 같은 형태가 됩니다.

If문이 “조건에 따라 할 일을 선택하는 것”이라면, For문은 “같은 일을 몇 번 반복할 것인지 정하는 것”이라고 기억하시면 가장 쉽습니다.

즐거운 하루 되세요.

  • 관리자
    2026-09-14 10:22:20

    안녕하세요.

    For문은 같은 작업을 정해진 횟수만큼 반복할 때 사용하는 반복문입니다. 이 문제에서는 "●"를 여러 번 붙여야 하므로 For문을 사용합니다.

    정답 코드를 한 줄씩 보면 다음과 같습니다.

    Public Function fn그래프(순위, 인원수)

    fn그래프라는 사용자 정의 함수를 만드는 부분입니다.
    함수를 사용할 때 순위와 인원수, 두 개의 값을 전달받겠다는 뜻입니다.

    예를 들어 순위가 1이고 전체 인원수가 8이면

    fn그래프(1, 8)

    과 같은 상태로 함수가 실행됩니다.

    fn그래프 = ""

    함수가 반환할 결과를 처음에는 빈 문자열로 만들어 놓는 것입니다.

    즉, 처음 상태는

    fn그래프 = 아무것도 없음

    입니다.

    For i = 1 To 인원수 - 순위

    여기가 For문의 시작입니다.

    i라는 변수를 1부터 인원수-순위까지 하나씩 증가시키면서 아래 명령을 반복하라는 뜻입니다.

    인원수가 8명이고 순위가 1위라면

    인원수 - 순위
    = 8 - 1
    = 7

    이므로

    For i = 1 To 7

    이 되어 7번 반복합니다.

    fn그래프 = fn그래프 & "●"

    현재까지 만들어진 결과 뒤에 "●"를 하나 더 붙입니다.

    7번 반복하면 다음과 같이 변합니다.

    1회 → ●
    2회 → ●●
    3회 → ●●●
    4회 → ●●●●
    5회 → ●●●●●
    6회 → ●●●●●●
    7회 → ●●●●●●●

    여기서 &는 문자열을 이어 붙이는 연산자입니다.

    즉,

    fn그래프 = fn그래프 & "●"

    는 쉽게 말하면

    “기존 결과에 ● 하나를 추가해라.”

    라는 뜻입니다.

    Next i

    For문에서 한 번의 반복이 끝났다는 뜻입니다.

    i를 1씩 증가시키면서 다시 For문으로 돌아갑니다.

    i=1 → ● 추가
    i=2 → ● 추가
    i=3 → ● 추가
    ...
    i=7 → ● 추가

    7회 반복이 끝나면 For문을 빠져나옵니다.

    End Function

    fn그래프 함수가 끝났다는 뜻입니다.

    따라서 전체 코드를 말로 풀면 아주 간단합니다.

    Public Function fn그래프(순위, 인원수)
    
        fn그래프 = ""
    
        For i = 1 To 인원수 - 순위
            fn그래프 = fn그래프 & "●"
        Next i
    
    End Function

    “전체 인원수에서 순위를 뺀 횟수만큼 ●를 하나씩 반복해서 붙여라.”라는 코드입니다.

    예를 들어 8명 중 3위라면

    8 - 3 = 5

    이므로 For문이 5번 실행되어

    ●●●●●

    가 표시됩니다.

    그리고 문제에 나온 COUNTA 함수는 이 VBA 코드 안에서 사용하는 것이 아니라, 전체 인원수를 구해서 fn그래프 함수의 두 번째 인수로 전달할 때 사용합니다.

    즉 워크시트에서는 문제의 셀 범위에 따라 대략

    =fn그래프(순위셀,COUNTA(선수명범위))

    와 같은 형태가 됩니다.

    If문이 “조건에 따라 할 일을 선택하는 것”이라면, For문은 “같은 일을 몇 번 반복할 것인지 정하는 것”이라고 기억하시면 가장 쉽습니다.

    즐거운 하루 되세요.

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