컴퓨터활용능력1급

[컴퓨터활용능력 1급] 엑셀 사용자 정의 함수

띠용쓰2222 2023. 8. 8. 16:11
반응형

사용자 정의 함수를 만들기 위해서는 개발도구 탭이 있어야 한다.

개발도구가 이미 리본메뉴에 있다면 좋겠지만 없다면 설정을 통해 나타나게 해주어야한다.

파일 > 옵션

리본 사용자지정 > 개발도구 체크

개발도구 탭이 나타난다.

가장 왼쪽에 visual basic이 있다.

Alt + F11 단축키를 통해서 열 수 있고

Alt + Q 단축키를 통해서 닫을 수 있다.

(필기문제 출제 !! )

비주얼 베이직을 열어서 일단 보기에서 프로젝트와 속성을 열어두어야한다.

 

사용자 정의 함수 만드는 방법

사용자 정의 함수는 개발도구 > 비주얼베이직(Visual Basic) > 삽입 > 모듈을 통해서 설정한다.

그러면 이렇게 모듈창이 뜬다.

visual basic 안에서는 전부 소문자로 입력한다.

public function 사용자정의함수(인수1, 인수2,,,)

를 입력하고 엔터를 친다.

public function 사용자정의함수(인수1, 인수2,,,)

end function이 나온다.

 

public function 과 end function 사이에 사용자 지정함수를 10줄 내외로 입력해주면 된다.

이렇게 만들어진 프로그램 하나를 프로시저라고 하는데 프로시저 여러 개가 모여서 모듈이 된다.

 

<사용자 지정 함수에서 if문 사용>

1. 단순 if문

if 조건식 then

참의 값

end if

 

2. 일반 if문

if 조건식 then

참의값

else

거짓값

end if

 

3. 다중 if문

if 조건식 then

참의값

else if 조건식 then

참의값

else

거짓값

end if

 

다중 if문은 꼭 내림차순으로 큰 값부터 입력해야한다.

조건 안에서 and와 or 도 입력이 가능하다.

입력할 때에는 and를 or보다 먼저 입력해준다.

위에 if문 앞 뒤로는 당연히 public function / end function이 있어야한다.

자세한 설명은 예제를 통해서 알아보자..

 


p. 150

출처 입력

출제유형1

사용자정의(예제) 시트

사용자정의함수를 이용해서 총점을 계산해야한다.

문제에서 주어진 함수이름인 'fn총점'을 사용해서 입력해준다.

=fn총점(C3,D3,E3,F3)

여기에서는 그냥 사용되는 인수만 지정해줄 뿐, 함수를 입력하지 않아도된다.

자동채우기를 해주면 오류가 나온다. ㅋㅋㅋㅋㅋ

왜냐면 아직 함수를 설정해주기 않았기 때문!!

이제부터 함수를 설정해주면 된다.

비주얼베이직을 켜주고

public function fn총점(출석,과제,중간,기말)

을 써준다.

문제에서 제시해주기때문에 겁먹을 필요 없다.

엔터를 치면 자동으로 함수가 완성되어 나온다.

public function fn총점(출석, 과제, 중간, 기말)

end function

그러면 빈 공간에 내(사용자)가 지정하고자 하는 함수를 입력해주면 된다.

나는 fn총점이라는 함수를 인수의 합으로 나타내고 싶다.

(문제에서 주어짐)

fn총점=출석+과제+중간+기말

문제에서 주어진 그대로 써주면 된다.

엔터를 치면 이렇게 자동으로 완성된다.

엑셀으로 다시 돌아온다.

에러났던 화면을 다시 더블클릭하고 엔터를 눌러주면 값이 자동으로 다 채워진다.

완성!

 

이번엔 두번째문제이다. if문을 사용해야하기때문에 조금 더 복잡하지만 겁먹을 필요 없다.

문제에서 주어진 ks보너스지급율이라는 함수를 작성할 것이다.

따라서 지정된 셀에 =ks보너스지급율(D14,E14) 를 입력해준다.

인수는 문제에서 주어진 함수에서 사용되는 것만 입력해주면 된다.

또다시 오류가 나오지만 겁먹을 필요없다.

이제부터 함수를 지정할 것이기 때문이다.

아까 했던 fn총점 함수 밑에 문제에서 주어진 대로 똑같이

public function ks보너스지급율(월평균임금,전년월평균임금)를 입력한 후 엔터를 친다.

자동으로 줄이 나타나면서 각각의 프로시저를 구분할 수 있게 해준다.

end function도 자동으로 완성된다.

일단 ks보너스지급율이라는 함수를 두 문장 사이에 문제에서 알려준 대로 먼저 지정해준다.

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

엔터를 치면 서식에 맞게 설정이 된다.

 

그 다음에는 if조건들을 넣어준다.

 

if ks보너스지급율>=0.05 then

ks보너스지급율=0.05

else

ks보너스지급율=0.1

endif

 

엔터를 치면 알아서 입력이 된다.

다만, 입력할 때 구분이 더 쉽도록 탭을 이용해서 앞의 간격을 맞춰주었다.

엔터나 탭이나 스페이스바는 내 마음대로 누르면 된다.

나와서 재설정해주면 완성

이번엔 사용량을 사용하는 fn에너지요금 함수를 지정해보자.

이제 함수를 설정하러 가면된다.

비주얼베이직을 켜준다.

문제에서 나온대로 입력한다.

public function fn에너지요금(사용량)

앞의 프로시저와 구분되고, 함수가 완성된다.

이번엔 다중if문을 사용한다.

if와 elseif 사이에 한 줄 더 공간을 주어서 구분을 쉽게 했다.

이때 주의해야 할 점은 꼭 내림차순으로 해야한다는 것이다.

 

if 사용량 >=400 then

fn에너지요금=200*사용량

 

elseif 사용량>=300 then

fn에너지요금=150*사용량

 

elseif 사용량>=200 then

fn에너지요금=100*사용량

 

elseif 사용량>=100 then

fn에너지요금=50*사용량

 

else

fn에너지요금=300*사용량

 

endif

 

재설정하면 완성!