31
1/31 15단원 : 프로그래밍 단원 15 프로그래밍 1. VBA 모듈작성 2. 사용자정의 폼 3. 컨트롤, 프로시저활용

프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의 탭에서 “변수 선언 요구” 항목을 선택하면

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

1/31

15단원 : 프로그래밍

단원 15

프로그래밍

1. VBA 모듈작성

2. 사용자정의 폼

3. 컨트롤, 프로시저활용

Page 2: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

2/31

15단원 : 프로그래밍

프로젝트 탐색기 창 : 현재 열려 있는 파일과 각각의 파일에 속해 있는 워크시트와 모듈이 표시됩니다. 프로

젝트 탐색기 창의 각 요소를 선택하며 속성 창에 해당 요소에 대한 속성이 표시되며 더블클릭하면 해당 요소

에 대한 코드창이 표시됩니다.

속성창 : 속성창에는 선택된 개체에 대한 디자인 모드 속성과 이들의 현재 설정 사항들이 나열되어 있습니다.

코드창(Module Sheet) : 선택한 개체에 대한 코드나 모듈 내에 속한 매크로의 코드가 표시되는 영역입니다.

Sub 프로시저와 Function 프로시저

- Sub 프로시저 : 프로그램 내에서 저장된 작업을 수행하고 결과값을 반환하지 않는 프로시저로 Sub문으로

시작하여 End Sub문으로 끝납니다.

- Function 프로시저 : 프로그램 내에서 지정된 작업을 수행하고 결과값을 반환하는 프로시저로 Function 문

으로 시작하여 End Function문으로 끝납니다. 사용자 정의 함수를 만들 때 사용합니다.

- 다른 프로시저에서 Sub 또는 Function 프로시저를 호출하려면 프로시저 이름과 필요한 인수 값을 지정해

야 합니다. 인수 값이 여러 개이면 콤마로 구분하며, 호출되는 프로시저에 인수가 없으면 프로시저 이름만 입

력하여 호출할 수 있습니다.

Page 3: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

3/31

15단원 : 프로그래밍

- Call 명령은 사용하지 않아도 되지만 Call 명령을 사용할 경우 인수 값을 괄호로 묶어야 합니다.

- 사용자 정의 함수(Function 프로시저)는 함수 이름과 괄호 안에 인수 값을 지정하여 호출합니다. 호출한 후

값을 반환하므로 결과를 받을 변수가 필요합니다.

VBA 구문을 만들 때 주의해야 할 사항

- VBA 구문은 한 가지 종류의 수행, 선언, 정의 등을 표현하는 명령문을 말합니다.

- 일반적으로 한 줄에 하나의 명령문을 입력하지만 콜론(:)을 사용하여 한 줄에 두 개 이상의 명령문을 입력

할 수 있습니다.

- REM으로 시작하는 문장은 주석으로 처리되어 프로그램 실행에 영향을 주지 않습니다.

- 명령문과 주석문을 한 줄에서 쓰려면 REM 문 대신 작은 따옴표(‘)를 사용해야 합니다.

- VBA 구문은 대소문자를 구분하지 않으며 개체, 속성, 메서드, 함수와 같은 예약어는 자동으로 판별하여 첫

글자를 대문자로 고쳐줍니다.

- 구문 입력 시 한 행씩 처리되어 입력한 행에 문법적인 오류가 발행하면 자동으로 이를 검사해 줍니다.

- VBA 구문은 개체의 속성을 변경하거나 개체에 특정 동작을 수행하는 구조로 이루어지며 일반적인 사용 형

태는 다음과 같습니다.

- 변수란 프로그램이 실행되는 동안 변경될 수 있는 데이터가 들어 있는 저장할 수 있는 공간을 의미합니다.

- 각 변수는 해당 범위 수준 내에서 자신을 고유하게 식별하는 이름을 가지며, 데이터 형식은 지정되거나 지

변수의 형식

Page 4: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

4/31

15단원 : 프로그래밍

사용범위

- 변수에 값을 할당할 때에는 “변수이름 = 값” 형식을 사용합니다.

- 개체 변수인 경우에는 “Set 변수 이름 = 개체” 형식을 사용합니다.

- 변수는 선언하지 않고도 프로시저에서 사용할 수 있습니다.

이렇게 변수를 선언하지 않고 프로시저에서 사용하는 경우를 변수의 명시적 선언이라고 합니다.

변수를 반드시 선언한 다음 사용하도록 제한하려면 모듈의 첫번째 줄에 “Option Explicit” 명령문을 삽입해야

합니다.

-메뉴표시줄 <도구>-<옵션>의 <편집기> 탭에서 “변수 선언 요구” 항목을 선택하면 모듈 시트 첫 줄에 자동

으로 “Option Explicit” 명령문이 삽입됩니다.

- 변수를 작성할 때에는 다음 규칙을 따라야 합니다.

- 최대 255자까지 지정

- 변수의 첫 글자는 문자로 시작

- 변수에 문자, 숫자, 밑줄 문자(_)를 포함할 수 있지만 문장 부호나 공백, 예약어는 포함할 수 없음

- 비주얼베이직 키워드를 포함할 수 없음

- 데이터 형식은 변수를 선언할 때 지정하는 것으로 데이터 형식이 지정된 해당 변수에는 지정된 데이터 형

식의 데이터만 저장할 수 있습니다. 데이터 형식을 지정하지 않은 변수나 선언하지 않은 변수는 Variant 형식

으로 처리되며 데이터 형식의 종류는 다음과 같습니다.

Page 5: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

5/31

15단원 : 프로그래밍

- 상수란 프로그램 실행 중 변하지 않는 자료를 가리킵니다.

- 상수에는 비주얼베이직에서 제공하는 ‘내장상수’(또는 시스템 정의 함수)와 사용자가 정의하여 사용할 수

있는 ‘사용자 정의 상수’가 있습니다.

- 사용자 정의 상수는 Const로 선언하고 값을 지정합니다.

- Const로 상수가 선언되면 값을 변경할 수 없으며, 새로운 값으로 변경되지도 않습니다.

- 상수 선언은 프로시저 내에서 선언하거나 모듈의 제일 상단 부분에서 선언합니다.

- 프로시저 내에서는 반드시 Private로 지정해야 합니다.

- 상수를 여러 모듈에서 사용하기 위해서는 Const 앞에 Public을 기술하여 선언합니다.

- 한 문장에 여러 개의 상수를 선언할 때에는 콤마(,)로 구분합니다.

- 일반 변수는 값을 저장할 단 하나의 공간을 의미하지만 배열은 같은 데이터 형식의 값을 저장할 수 있는

여러 공간의 집합으로 이루어지며, 최대 60차원 배열까지 사용 가능합니다.

- 배열의 각 요소를 구별하기 위해서는 인덱스 번호를 사용하여 배열을 선언합니다.

- 시작 인덱스는 생략할 수 있으며, 생략할 경우 0으로 처리합니다.

- Dim이나 Public 명령을 사용하여 배열을 선언합니다.

Page 6: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

6/31

15단원 : 프로그래밍

- 개체(Object) : 통합문서, 셀, 차트, 도형 등 응용 프로그램의 구성요소를 말합니다.

개체는 개체 내에 다른 하위 개체가 포함되어 있는 계층적인 구조로 이루어 지며, 주요 개체의 계층도는 다음

과 같습니다

- 메서드(Method) : 개체가 수행할 수 있는 동작을 의미합니다.

예) Worksheets(“Sheet1”).PrintOut ‘ ”Sheet1” 시트 인쇄

- 속성(Property) : 색이나 크기와 같은 개체의 특성을 의미합니다.

예) Selection.Font.FontName = “굴림” ‘ 글꼴을 “굴림”으로 설정

- 이벤트(Event) : 마우스나 키보드를 누를 때 워크시트를 활성화시킬 때 등 사용자 동작이나 프로그램 코드

의 결과로 발생하는 개체가 인식하는 동작을 의미합니다. 특정 이벤트가 발생했을 때 자동으로 매크로가 실행

되도록 이벤트 프로시저를 작성할 수 있습니다.

- 특정 이벤트가 발생했을 때 실행하는 Sub 프로시저를 이벤트 프로시저라고 합니다.

- VBA의 프로젝트 탐색기에서 개체를 더블클릭한 후 모듈 시트에서 개체 이름을 선택하면 프로시저에 이벤

트 프로시저 목록이 나타납니다. {15c.bmp}

- 개체 이름과 이벤트 이름을 밑줄로 구분한 것이 이벤트 프로시저의 이름이 된다. ( 예) Workbook_Open )

Page 7: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

7/31

15단원 : 프로그래밍

Page 8: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

8/31

15단원 : 프로그래밍

Page 9: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

9/31

15단원 : 프로그래밍

Page 10: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

10/31

15단원 : 프로그래밍

Page 11: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

11/31

15단원 : 프로그래밍

MsgBox 함수

- 형식 : MsgBox(메시지, 단추 종류, 제목, 도움말 파일, 도움말 번호)

- 대화상자에 메시지를 표시한 후 사용자가 단추를 누를 때까지 기다린 다음 사용자가 누른 단추를 의미하는

정수(Integer)값을 반환합니다.

- “메시지” 인수만 필수로 지정해야 하고 나머지 인수는 선택사항입니다.

- 예) Result = MsgBox(“계속하시겠습니까?”, vbYesNoCancel, “확인”)

InputBox 함수(또는 메서드)

- 형식 : InputBox(메시지, 제목, 기본값, x위치, y위치, 도움말 파일, 도움 번호)

- 대화상자를 표시한 후 사용자가 내용을 입력하고 <확인> 단추를 누를 때 까지 기다린 다음 입력 내용을

반환합니다.

- “메시지” 인수만 필수로 지정해야 하고 나머지 인수는 선택사항입니다.

- 예) Result = InputBox(“이름을 입력하세요.”, “이름 입력”, “홍길동”)

Page 12: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

12/31

15단원 : 프로그래밍

Page 13: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

13/31

15단원 : 프로그래밍

Page 14: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

14/31

15단원 : 프로그래밍

- 메뉴표시줄 <도구>-<보기>-<컨트롤 도구 상자> 항목을 클릭

합니다.

- 도구 상자가 나타나면 명령단추 컨트롤 도구를 선택하고 마우

스로 드래그하여 워크시트 위에 컨트롤을 추가합니다.

- 속성 창을 표시하려면 도구 상자의 속성 아이콘을 클릭합니

다.

- 속성 창을 확인한 후 닫기 단추를 클릭하여 속성 창을 닫습니

다.

- 컨트롤의 모양은 디자인 모드 아이콘이 눌려져 있는 상태에서

속성 창을 이용하여 변경합니다.

- 디자인 모두 아이콘이 눌려져 있지 않으면 실행 모드로 컨트

롤에 대한 어떤 동작을 실행했을 때 이벤트 프로시저가 실행됩

니다.

- 컨트롤의 이벤트 프로시저는 컨트롤을 선택하고 코드 보기 아

이콘을 클릭하여 현재 시트의 코드 보기로 전환합니다.

- 코드를 작성한 후 창 닫기 아이콘을 클릭하여 비주얼 베이직

편집기를 종료합니다.

Page 15: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

15/31

15단원 : 프로그래밍

<UserForm(사용자 정의 폼) 개체>

Page 16: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

16/31

15단원 : 프로그래밍

Page 17: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

17/31

15단원 : 프로그래밍

Page 18: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

18/31

15단원 : 프로그래밍

Page 19: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

19/31

15단원 : 프로그래밍

1. 점수(point)가 90 점 이상이면 Excellent, 아니면 Good 이라 평가하는 사용자 정의 함수

fevaluation 을 만들고자 한다.다음의 Module(코드)의 구문에서 문법과 의미로 보았을 때 옳은

부분은?

Function fevaluation(point) ----- ①

if point > 90 then ----- ②

fevaluation = excellent ----- ③

else

fevaluation = good ----- ④

end if

End function

2. 다음은 Visual Basic 편집 창에 나타난 내용이다. 설명이 잘못된 것은?

Sub 연습매크로()

' 연습매크로 Macro

' .이(가) 2002-07-31 에 기록한 매크로

' 바로 가기 키: Ctrl+Shift+A

With Selection.Font

.Name = "돋움"

.Size = 12

.Shadow = False

.Underline = xlUnderlineStyleNone

.ColorIndex = xlAutomatic

End With

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False

End With

Page 20: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

20/31

15단원 : 프로그래밍

Selection.Font.ColorIndex = 3

End Sub

① 이 매크로는 폰트크기를 12 로 지정했다.

② 이 매크로는 밑줄을 지정했다.

③ 이 매크로의 글꼴은 "돋움"으로 바꾸는 작업을 한다.

④ 이 매크로는 가로 가운데 맞춤을 한다.

3. 다음 사용자 정의 폼에서 ‘결과(cmd 결과)’ 버튼을 클릭하면 1 에서 50 까지의 합계가 아래의

텍스트상자(Txt 합계)에 표시되는 프로시저를 다음과 작성하였을 때, 오류가 발생하는 부분은 어느

부분인가?

<프로그램 코드>

Private Sub cmd 결과_Click()

Dim NUM As Integer

Dim SUM As Integer

Do While NUM < 50

NUM = NUM + 1

SUM = SUM + NUM

Loop

Txt 합계.Caption = SUM

End Sub

① Do While NUM < 50

② SUM = SUM + NUM

③ Loop

④ Txt 합계.Caption = SUM

4. 다음 중 VBA 주요 명령문에 대한 설명으로 잘못된 것은?

① Sub … End Sub : Sub 프로시저 만들기

② Do Until... Loop : 조건을 만족하는 동안 무한적으로 실행하는 제어문

③ Function … End Function : 사용자정의 함수 만들기

④ Call : 프로시저 호출

5. 아래와 같이 이벤트 프로시저를 정의한 경우, 명령 단추(CommandButton1)를 클릭했을 때 나타나는

Page 21: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

21/31

15단원 : 프로그래밍

결과에 대한 설명으로 옳은 것은?

------------------------------------------------------

A B C D

------------------------------------------------------

1 점수 테스트 3 테스트 4

2 박경영 8 8 7

3 이신교 10 9 10

4 손정화 10 10 10

5 이동훈 7 10 10

[CommandButton1]

------------------------------------------------------

Private Sub CommandButton1_Click()

Cells(2, 2) = Cells(2, 2) * 2

End Sub

① [B2] 셀의 값이 16 으로 바뀐다.

② [C2] 셀의 값이 18 로 바뀐다.

③ [B2] 셀의 값이 2 로 된다.

④ [B2:C3]의 블록내의 셀값이 모두 2 배로 된다.

6. [A1:A100]셀 까지의 범위에 차례대로 1 부터 100 까지가 입력되는 프로그램을 작성하기 위해 괄호

안에 들어갈 내용으로 알맞은 것은?

Sub test()

k = 1

For ( ) myobject in Range("a1:a100")

myobject.Value = k

k = k + 1

( )

End Sub

① Each, Step

② Next, To

③ Each, Next

④ Next, Step

Page 22: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

22/31

15단원 : 프로그래밍

7. 다음 중 TextBox 컨트롤에 사용자가 입력할 수 있는 최대 문자수를 지정할 때 사용하는 속성은

무엇인가?

① Value 속성

② MaxLength 속성

③ AutoSize 속성

④ TextAlign 속성

8. 다음 중 변수의 정의가 옳지 않은 것은?

① Dim myPan

② Dim myPan As String

③ Dim myPan As String*5

④ Dim myPan$ As string

9. 다음과 같은 VBA 선언문에 대한 설명으로 옳지 않은 것은?

Dim mySil(10, 20) As Integer

① 정수형의 데이터를 저장할 수 있는 배열을 선언한 것이다.

② 10 행 20 열로 이루어진 배열을 선언한 것이다.

③ 프로그램 수행 중 배열의 크기가 변하지 않는 고정 크기 배열이다.

④ 배열의 각 요소는 2 바이트 크기를 갖는다.

10. 다음과 같이 B 열에는 회사명이, C 열에는 수주금액이 입력되어 있을 때, C9 셀에 한국시스템의

평균수주액을 계산하여 표시하는 배열수식을 만들어 입력하고자 한다. 배열수식으로 올바르게

입력하는 방법은?

B1: 회사명, B2:한국시스템....,B8: 성준코아, B9: 한국시스템의 평균수주액

C1: 수주금액, C2: 250, C3: 370,..., C:8: 410

① =AVERAGE(IF(B2:B8="한국시스템",C2:C8)) 이라 입력한다.

② {=AVERAGE(IF(B2:B8="한국시스템",C2:C8))} 이라고 바로가기 키를 사용하지 않고 직접

입력한다.

③ =AVERAGE(IF(B2:B8="한국시스템",C2:C8)) 이라 입력 후 Ctrl+Enter 키를 누른다.

④ =AVERAGE(IF(B2:B8="한국시스템",C2:C8)) 이라 입력 후 Ctrl+Shift+Enter 키를 누른다.

Page 23: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

23/31

15단원 : 프로그래밍

(정답)

1 ① 2 ② 3 ④ 4 ② 5 ③

6 ③ 7 ② 8 ④ 9 ② 10 ④

(해설)

01. 함수 이름은 “fevaluation” 이고, 인수로 “point”를 사용한다. point 변수에 전달된 점수가 90점 이

상이어야 하므로 “point<=90”으로 조건을 지정한다.

그리고 함수 이름에 평가 내용을 할당할 때 텍스트이므로 따옴표(“”)를 사용하여 텍스트를 묶어야 한다.

02. Font.Underline은 글꼴에서 밑줄의 종류를 의미하는 것으로 “xlUnderlineStyleNone”은 밑줄을 지정

하지 않았음을 의미한다.

03. 텍스트상자에는 Caption속성이 없으므로 “Txt합계 = SUM”으로 해야 한다.

04. Do Until… Loop 문은 조건이 참이 될 때까지, 즉 거짓인 동안 명령문을 반복 실행한다.

05. Cells(2,2)는 2번째 열 2번째 행을 가리키므로 B2의 셀에 2를 곱한다.

06. For Each 명령문은 컬렉션에 포함되어 있는 각 개체나 배열의 각 요소마다 명령을 반복할 때 사용

하며, 형식은 다음과 같다.

------------------------------

For Each 변수명 In 컬렉션(또는 배열)

명령문

Next

------------------------------

07. Value 속성은 컨트롤의 현재 값을 나타낼 때 사용되며, AutoSize 속성은 내용에 맞추어 컨트롤 크기

를 자동 조절할 때 사용된다. TextAlign 속성은 컨트롤에서 텍스트의 맞춤 형식을 지정한다.

08. 변수 이름 뒤에 $표시를 하면 String 형식을 의미하므로 As문 이후는 필요하지 않다.

09. 배열의 인덱스 번호는 0부터 시작하므로 11행 21열의 크기로 선언한 고정 크기 배열이다.

10. 배열 수식으로 입력해야 하므로 [Ctrl]+[Shift]+[Enter]키를 눌러야 한다.

Page 24: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

24/31

15단원 : 프로그래밍

1. 일반 텍스트 문서(확장자가 txt)로 작성된 데이터 파일을 엑셀에서 읽어 들이려고 한다. 데이터의

열과 열 사이는 탭 키로 구분되어 있다. 엑셀 프로그램에서 어떻게 읽어 들여야 하는가?

① 탭으로 구분된 텍스트 문서는 엑셀 프로그램이 인식할 수 없으므로 텍스트 편집 프로그램에서

열과 열 사이에 콤마(,)를 넣어준 후에 파일을 연다.

② 열과 열 사잉에 탭이 설정되어 있더라도 각 열의 줄이 맞추어져 있어야 하므로, 줄을 맞춘

후에 파일을 연다.

③ 파일의 열기에서 파일의 형식을 텍스트로 설정하기만 하면 자동으로 데이터가 화면에

나타난다.

④ 파일의 열기에서 파일의 형식을 텍스트로 설정하면 ‘ 문자열 마법사’ 가 나타나므로 이를

이용하면 된다.

2. 다음 데이터베이스 관리 기능 중 조건에 만족하는 데이터만 추출해서 특정 위치로 복사할 수 있는

기능은?

① 자동 필터

② 고급 필터

③ 피벗 테이블

④ 정렬

3. 다음 중 부분합에 대한 설명으로 옳지 않은 것은?

① 부분합을 어느 항목별로 계산할 것인지를 설정하려면‘ 그룹화할 항목’ 에서 지정한다.

② 부분합 실행 결과를 워크시트에서 모두 제거하려면 부분합 결과를 범위 지정한 후, [Delete]

키를 누르면 된다.

③ 부분합과 총합계 행을 하위 수준 데이터 아래에 삽입하려면 ‘ 데이터 아래에 요약 표시’ 를

선택한다.

④ 부분합으로 계산할 필드를 선택하는 것이 가능하다

4. 다음은 데이터베이스를 이용하여 작성한 피벗테이블의 결과이다. (가)의 결과를 (나)로 바꾸기 위해

매출액 데이터필드의 [필드설정]에서 [옵션]을 선택한 후 어떤 계산의 종류를 선택하여야 하는가?

<가> <나>

Page 25: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

25/31

15단원 : 프로그래밍

------------------------ ------------------------

합계:매출액 합계:매출액

------------------------ ------------------------

고객명 합계 고객명 합계

------------------------ ------------------------

삼도컴퓨터 218000 삼도컴퓨터 41.84%

우리상사 151000 우리상사 28.98%

한국물산 152000 한국물산 29.17%

------------------------ ------------------------

총 합계 521000 총 합계 100.00%

------------------------ ------------------------

① [기준값]에 대한 비율

② 행 방향의 비율

③ 열 방향의 비율

④ 누계

5. [데이터]-[외부 데이터 가져오기]을 실행하여 텍스트 파일을 워크시트로 불러오는 작업에 대한

설명으로 올바른 것은?

① 데이터의 구분 기호로 탭과 세미콜론, 쉼표만 설정할 수 있다.

② 일단 워크시트로 불러온 텍스트 파일을 사용하려면 데이터를 다른 워크시트로 복사해야 사용할

수 있다.

③ 원본 텍스트 파일이 수정되어도 불러온 데이터는 원본의 수정된 내용으로 수정할 수 없다.

④ 불러온 텍스트 파일에서 필요한 열만을 선택하여 가져올 수 있다.

6. 목표값 찾기를 다음과 같이 지정했을 때 이에 대한 의미가 올바른 것은?

---------------------------------------------------

A B C D

---------------------------------------------------

1 국어 영어 수학 평균

2 80 90 80 83

------------------------

목표값 찾기

------------------------

수식 셀 : D2

찾는 값 : 90

값을 바꿀 셀 : $C$2

------------------------

[확인] [취소]

Page 26: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

26/31

15단원 : 프로그래밍

------------------------

① 평균이 90 점이 되려면 수학점수는 얼마가 되어야 하는가

② 영어가 90 점이 되려면 수학점수는 얼마가 되어야 하는가

③ 평균이 90 점이 되려면 영어점수는 얼마가 되어야 하는가

④ 평균이 90 점이 되려면 국어점수는 얼마가 되어야 하는가

7. 다음 중 시나리오에 대한 설명으로 옳은 것은?

① 워크시트에서 저장하고 자동으로 바꿀 수 있는 값의 집합이다.

② 하난의 워크시트에는 하나의 시나리오만 저장할 수 있다.

③ 여러 워크시트에서 공통으로 사용하는 시나리오를 작성할 수 있다.

④ 수식의 원하는 결과 값을 계산하기 위한 입력 값을 모를 때 사용한다.

8. 다음 워크시트처럼 선택 영역 첫 행의 각 필드 이름에 목록 내림 표시단추가 표시되면 목록

상자에서 선택된 레코드만 검색할 수 있다. 이러한 단추 조건 검색을 하려면 어떤 메뉴를 실행하야

하는가?

① [데이터]-[필터]메뉴

② [데이터]-[정렬]메뉴

③ [데이터]-[부분합]메뉴

④ [데이터]-[통합]메뉴

9. 다음 중 매크로 작성시에 지정하는 바로 가기 키에 대한 설명으로 올바른 것은?

① 매크로에서 지정한 것보다 엑셀의 단축키가 우선 실행된다.

② 엑셀에서 지정되어 있는 바로 가기 키를 지정하면 에러가 발생한다.

③ 등록된 바로 가기 키는 [Ctrl]키 또는 [Ctrl]키+[Shift]키와 함께 실행한다.

④ 바로 가기 키는 매크로를 처음 작성할 때에만 지정할 수 있다.

10. 다음 중 사용자 정의 함수에 대한 설명으로 옳지 않은 것은?

① VBA 를 사용하여 사용자가 함수를 작성하는 것이다.

② 사용자 정의 함수는 함수 마법사에 자동으로 등록된다.

③ 함수의 인수를 자유롭게 추가할 수 있다.

④ 함수의 결과 값을 반환하지 않는 특징이 있다.

Page 27: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

27/31

15단원 : 프로그래밍

11. 다음 중 VBA 모듈에서 배열의 사용 방법으로 옳지 않은 것은?

① 같은 데이터 형식의 값들을 여러 개 저장할 수 있는 공간으로 구성한다.

② 최대 60 차원까지 다차원 배열을 사용할 수 있다.

③ 기본 설정에서 1 차원 배열은 1 부터 365 까지 인덱스 번호를 갖는다.

④ 배열 전체를 참조하거나 개별 요소를 참조할 수 있다.

12. 다음 프로시저에 대한 설명으로 옳지 않은 것은?

Private Sub cmd 판매액_Click()

txt 판매액 = txt 판매단가 * txt 판매량

MsgBox txt 금액

End Sub

① cmd 판매액 컨트롤을 클릭하면 자동으로 실행된다.

② 이벤트 프로시저로 다른 프로시저에서 호출할 수 있다.

③ txt 판매단가 컨트롤과 txt 판매량 컨트롤의 값을 곱하여 txt 판매액 컨트롤에 저장한다.

④ txt 판매액 컨트롤의 Value 속성의 값을 표시한다.

13. 다음 중 엑셀 매크로를 실행하기 위해 매크로를 지정할 수 있는 대상이 될 수 없는 것은?

① 차트

② 그림

③ 텍스트

④ 명령도구

14. 다음 중 VBA 구문에서 변수에 대한 설명으로 옳지 않은 것은?

⑤ 일반적으로 변수를 선언하지 않아도 프로시저 내부에서 사용할 수 있다.

⑥ 변수를 선언할 때 변수 이름과 데이터 형식을 반드시 지정해야 한다.

⑦ Public 키워드로 변수를 선언하면 모든 모듈 시트에서 사용할 수 있다.

⑧ 변수 이름에 한글이나 숫자를 사용할 수 있다.

15. 사용자 정의 폼의 Initialize 이벤트와 Activate 이벤트의 차이를 옳게 설명한 것은?

⑤ Initialize 이벤트는 폼이 열릴 때, Activate 이벤트는 폼이 닫힐 때 실행된다.

⑥ Initialize 이벤트는 폼이 닫힐 때, Activate 이벤트는 폼이 열릴 때 실행된다.

⑦ Initialize 이벤트는 폼이 처음 화면에 표시될 때, Activate 이벤트는 폼이 화면에 표시될

Page 28: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

28/31

15단원 : 프로그래밍

때마다 실행된다.

⑧ Initialize 이벤트는 폼이 화면에 표시될 때 마다, Activate 이벤트는 폼이 처음 화면에

표시될 때만 실행된다.

16. 다음 설명 중 옳지 않은 것은?

⑤ 함수 프로시저가 인수를 포함하지 않을 수도 있다.

⑥ 매서드는 Visual Basic 에 미리 정의되어 있다.

⑦ 이벤트는 사용자의 행동에 의해서만 발생한다.

⑧ 속성을 이용하여 개체의 특성을 변화시킨다.

17. 다음 중 VBA 편집기를 실행시키는 방법으로 옳지 못한 것은?

① 메뉴에서 실행 : [도구]-[매크로]-[Visual Basic Editor] 선택

② 바로가기 키 이용 : [Alt]+[F8] 키를 누른다.

③ [매크로] 대화 상자 : [매크로] 대화 상자에서 매크로를 선택한 후 <편집> 단추를 누른다.

④ 시트 탭 이용 : 시트 탭에서 바로가기 메뉴를 실행시킨 후 [코드 보기] 명령을 실행한다.

18. 다음과 같은 조건표에 따라 상여금을 지급하려고 한다. 코드 중 논리적 오류가 발생할 수 있는

부분은 어느 곳인가?

------------------------

근무년수 상여금

------------------------

3 년 미만 100000

7 년 미만 200000

7 년 이상 300000

------------------------

Sub 상여금()

Dim i As Integer

Dim j As Integer

i = 5

Select Case i - ①

Case Is >=7: j=300000 - ②

Case Is >=3: j=200000 - ③

Case Is <=3: j=100000 - ④

Page 29: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

29/31

15단원 : 프로그래밍

End Select

End Sub

19. 다음 설명 중 옳지 않은 것은?

① 매크로 이름에 공백을 포함할 수 없다.

② 바로 가기 키를 지정하지 않아도 매크로를 실행할 수 있다.

③ 매크로를 기록할 때 상대 참조를 사용할 수 있다.

④ 매크로의 바로 가기 키는 하나의 문자나 숫자로 지정해야 한다.

20. FOR 문을 사용하여 “ 컴퓨터” 라는 단어를 3 회 연속 출력하려고 한다. 다음 보기의 빈칸에 알맞은

것은 무엇인가?

Sub 출력()

Dim i As Integer

For i=10 to 20 Step ( a )

Debug.Print “ 컴퓨터”

( b )

End Sub

① 2, Next

② -2, Loop

③ 5, Next

④ -5, Loop

Page 30: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

30/31

15단원 : 프로그래밍

(정답)

1 ④ 2 ② 3 ② 4 ② 5 ④

6 ① 7 ① 8 ① 9 ③ 10 ④

11 ③ 12 ② 13 ③ 14 ② 15 ③

16 ③ 17 ② 18 ④ 19 ④ 20 ③

(해설)

01. 엑셀 파일이 아닌 텍스트 파일을 사용할 때에는 메뉴표시줄 <파일>-<열기>-<파일 형식>에서 ‘텍

스트 파일’을 선택한 후 파일 지정-‘문자열 마법사’를 이용한다.

또는 메뉴표시줄 <데이터>-<외부 데이터 가져오기>-<텍스트 파일 가져오기> 항목을 클릭하여 가져올

수도 있다.

02. 고급 필터를 사용하면 조건에 만족하는 데이터만 추출해서 특정 위치로 복사할 수 있다.

03. 부분합 실행 결과를 워크시트에서 모두 제거하려면 <부분합> 대화상자에서 <모두 제거> 단추를 클

릭한다.

04. 행 방향의 비율을 선택해야 한다.

05. 데이터의 구분 기호로 탭, 세미콜론, 쉼표, 공백, 기타 문자 등을 설정할 수 있으며, 불러온 텍스트

파일은 [데이터]-[외부 데이터 가져오기]-[텍스트 가져오기 편집]메뉴에서 구분 시작행을 지정하여 필

요한 열만을 선택하여 가져올 수도 있다.

06. D2셀의 값이 90이 되도록 C2셀의 값을 변경한다.

07. 시나리오는 변경 요소가 많은 작업표에서 가상으로 수식이 참조하고 있는 셀의 값을 변화시켜 작업

표의 결과를 예측하는 기능이다.

08. 특정 조건에 부합하는 레코드만을 찾아 선별하려면 ‘필터’를 사용해야 한다.

09. 바로 가기 키는 영어 소문자로 지정했을 때는 [Ctrl]키를 누른 상태에서 해당 문자를 눌러 매크로를

실행하며, 대문자로 지정하면 [Ctrl]+[Shift]를 누른 상태에서 해당 문자를 눌러야 한다.

10. 사용자 정의 함수(Function 프로시저)는 계산을 수행한 후 결과 값을 함수 이름에 담아 반환한다.

11. 배열의 인덱스는 0으로 시작하므로 1차원 배열은 0~364까지 365개의 최대 공간을 가질 수 있으

며, 배열의 인덱스를 1로 시작하려면 “Option Base 1”형식으로 선언해야 한다.

12. 이벤트 프로시저는 다른 프로시저에서 호출할 수 없다.

Page 31: 프로그래밍 - estudy.or.kr»´활1급_15단원.pdf-메뉴표시줄 -의  탭에서 “변수 선언 요구” 항목을 선택하면

31/31

15단원 : 프로그래밍

13. 텍스트는 매크로 지정 대상이 될 수 없다.

14. 변수는 선언하지 않아도 프로시저에서 사용할 수 있다. 변수를 반드시 선언한 다음 사용하도록 제

한하려면 모듈의 첫번째 줄에서 “Option Explicit” 명령문을 삽입해야 한다.

15. Initialize 이벤트는 초기화 이벤트로 폼이 화면에 처음 표시될 때 한 번만 실행되며, Activate 이벤트

는 활성화 이벤트로 폼이 화면에 표시될 때마다 실행된다.

16. 이벤트는 사용자의 행동이나 프로그래밍 코드, 시스템에 의해 발생할 수 있다.

17. [Alt]+[F8] 키는 매크로 대화 상자를 호출하며 [Alt]+[F11] 키는 VBA 편집기를 실행한다.

18. 4번은 3년 미만일 때 해당하므로, Case Is <3: j=100000 또는 Case Is <=2: j=100000로 수정해야 한

다.

19. 매크로의 바로 가기 키는 하나의 영문자로만 지정할 수 있다.

20. For ~ Next문은 증감값에 따라 문장을 반복횟수 만큼 실행하는 반복문으로 “컴퓨터”를 3회 연속 출

력하려면, 10부터 20까지 5씩 증가하면 된다.