책 내용 질문하기
사용자 정의 함수 질문입니다.
도서
2018 시나공 컴퓨터활용능력 1급 실기(엑셀, 액세스 2010 사용자용)
페이지
117
조회수
66
작성일
2018-08-09
작성자
탈퇴*원
첨부파일

질문의 요지에는 파란색으로 표시하였습니다.

<117페이지 '섹션08문제.xlsm'파일의 기출01시트 2번 사용자 정의 함수 질문드립니다.>

답지에는

Public Function F단가(도서코드,정가)

If Len(도서코드) = 7 Then

F단가 = Round(정가 / Mid(도서코드, 3, 3), 0)

Else

F단가 = Round(정가 / Mid(도서코드, 3, 2), 0)

End if

End function

이라고 나와있는데

Public Function F단가(도서코드, 정가)

F단가 = Round(정가 / Mid(도서코드, 3, Len(도서코드) - 4), 0)

End Function

라고 입력해도 되나요?그리고 select문으로 이 함수를 표현할 수 있다면 어떻게 작성해야 할까요?

Public Function F단가(도서코드, 정가)

Select Case Len(도서코드)
Case Is = 7
F단가 = Round(정가 / Mid(도서코드, 3, 3), 0)
Case Else
F단가 = Round(정가 / Mid(도서코드, 3, 2), 0)
End Select

End Function

을 입력했는데 잘 실행되던데 이렇게 하는게 맞나요?

++또, 사용자 정의 함수를 만들기위해 비주얼베이직에디터 모듈에서 코드를 입력할 때, 같은 입력 사항임에도 불구하고 엔터를 치거나 탭을 누르지 않으면 컴파일 에러가 뜨곤 했습니다.

가령

public Function ks보너스지급율(월평균임금,전년월평균임금)

if (월평균임금-전년월평균임금)/월평균임금>=0.05 Then ks보너스지급율 = 0.05

else ks보너스지급율 = 0.1

end if

end function

을 입력하면 if 없는 else 구문이라고 뜨는 경우와,

Public Function ks보너스지급율(월평균임금,전년월평균임금)

If(월평균임금-전년월평균임금)/월평균임금>=0.05 then ks보너스지급율 = 0.05 else ks보너스지급율=0.1

end if

end function

을 입력하면 컴파일 에러 라고 뜨는 경우 등이 있었습니다.

이부분에 대해서는 토막 강의가 없어 인터넷에서 찾아본 결과 엔터를 친 후 탭을 이용하여 입력하니 에러 없이 잘 실행되었으나, 사용자 정의 함수를 만들 때 줄을 어떻게 띄어야 하는지, 탭을 어디에서 눌러야 하는지, 꼭 필요한 만큼이 아닌데 줄을 더 띄우거나 공백을 더 띄우거나 탭을 더 누르거나 덜 누르면 안되는지 궁금합니다.

감사합니다!!!

답변
2018-08-09 21:59:04

안녕하세요.


1.

적어주신 대로 입력하셔도 정확한 결과값이 나옵니다.

시험에서는 문제지의 지시사항에 부합하고 결과가 정확하면 정답으로 인정됩니다.

함수나 프로시저 코드의 경우 정답이 다양하게 나올 수 있습니다.

2.

- 사용자 정의 함수를 만들 때,
첫번 째 줄은 Public Function 함수명(인수들)로 시작됩니다. 끝날 때는 End Function으로 끝납니다.
기본은 시작과 끝이 있다는 것이구요. (IF~End IF, Select Case~End Select 등)
그 안에 들어가는 명령문들은 연습을 통해 익혀 주셔야 합니다.

IF 조건 Then
처리
else if 조건 then
처리
else
처리
End if

- 탭은 안 하셔도 무방합니다.

다만 코드를 읽을 때 보기 편하게 하기 위해 약속 처럼 안쪽(하위 코드)으로 갈 수록 한 번씩 더 눌러줍니다.


시작과 끝은 같은 위치에서 시작됩니다. (IF와 End IF, Select Case와 End Select)
IF 문 안에 포함된 내용이라면 한 번 더 탭을 눌러 안쪽에 써주시면 됩니다.

Public Function 함수명
IF ....Then....
End IF

Select Case
Case Is
End Select
End Function


- 꼭 필요한 만큼이 아닌데 줄을 더 띄우거나 공백을 더 띄우거나 탭을 더 누르거나 덜 누르는 것은 코드 작성과 상관없습니다.

하지만, 줄 바꿈하는 것은 유의해 주셔야 합니다. IF ....Then에서 Then을 아랫줄로 내린다거나 하면 오류가 뜰 수 있습니다.

명령문들은 구조가 정의되어 있으므로 규칙에 따라 주셔야 합니다. 이 부분은 연습을 통해 익히셔야 합니다.

오늘도 좋은 하루 보내세요.

오늘도 좋은 하루 보내세요.

  • *
    2018-08-09 21:59:04

    안녕하세요.


    1.

    적어주신 대로 입력하셔도 정확한 결과값이 나옵니다.

    시험에서는 문제지의 지시사항에 부합하고 결과가 정확하면 정답으로 인정됩니다.

    함수나 프로시저 코드의 경우 정답이 다양하게 나올 수 있습니다.

    2.

    - 사용자 정의 함수를 만들 때,
    첫번 째 줄은 Public Function 함수명(인수들)로 시작됩니다. 끝날 때는 End Function으로 끝납니다.
    기본은 시작과 끝이 있다는 것이구요. (IF~End IF, Select Case~End Select 등)
    그 안에 들어가는 명령문들은 연습을 통해 익혀 주셔야 합니다.

    IF 조건 Then
    처리
    else if 조건 then
    처리
    else
    처리
    End if

    - 탭은 안 하셔도 무방합니다.

    다만 코드를 읽을 때 보기 편하게 하기 위해 약속 처럼 안쪽(하위 코드)으로 갈 수록 한 번씩 더 눌러줍니다.


    시작과 끝은 같은 위치에서 시작됩니다. (IF와 End IF, Select Case와 End Select)
    IF 문 안에 포함된 내용이라면 한 번 더 탭을 눌러 안쪽에 써주시면 됩니다.

    Public Function 함수명
    IF ....Then....
    End IF

    Select Case
    Case Is
    End Select
    End Function


    - 꼭 필요한 만큼이 아닌데 줄을 더 띄우거나 공백을 더 띄우거나 탭을 더 누르거나 덜 누르는 것은 코드 작성과 상관없습니다.

    하지만, 줄 바꿈하는 것은 유의해 주셔야 합니다. IF ....Then에서 Then을 아랫줄로 내린다거나 하면 오류가 뜰 수 있습니다.

    명령문들은 구조가 정의되어 있으므로 규칙에 따라 주셔야 합니다. 이 부분은 연습을 통해 익히셔야 합니다.

    오늘도 좋은 하루 보내세요.

    오늘도 좋은 하루 보내세요.

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