You are on page 1of 12

연습문제 1장

1. 엑셀에서 매크로 기록기를 동작시키는 2가지 방법을 설명하라


- 개발도구 탭의 매크로 기록을 누르는 방법
- 개발도구 탭의 상대참조로 기록을 누르는 방법

2. 작성된 매크로를 실행시키는 방법들에 대해 설명하라.


- 지정한 단축키를 눌러 실행하는 방법
- 매크로 탭을 눌러 실행하는 방법
- visual basic을 눌러 코드를 수정하면서 실행하는 방법

3.
1) 매크로 기록기에 의한 코드

Sub 매크로1장3번()
' 매크로1장3번 매크로
Rows("12:13").Select
# 12~13행 선택
With Selection.Font
# 폰트 설정(궁서)
.Name = "궁서"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Selection.Font.Bold = True
#굵게 쓰기
Range("A12").Select
ActiveCell.FormulaR1C1 = "중앙값"
Range("A13").Select
ActiveCell.FormulaR1C1 = "표준편차"
Range("B12").Select
ActiveCell.FormulaR1C1 = "=MEDIAN(R[-10]C:R[-1]C)"
#중앙값 범위 설정
Range("B12").Select
Selection.AutoFill Destination:=Range("B12:D12"), Type:=xlFillDefault
# 자동입력
Range("B12:D12").Select
Range("B13").Select
ActiveCell.FormulaR1C1 = "=STDEV.S(R[-11]C:R[-2]C)"
#표준편차 범위설정
Range("B13").Select
Selection.AutoFill Destination:=Range("B13:D13"), Type:=xlFillDefault
#자동입력
Range("B13:D13").Select
End Sub
2) 코드를 같은 기능을 수행하도록 최대한 간결하게 바꾸어 보라

Sub 매크로1장3번()
' 매크로1장3번 매크로
Rows("12:13").Select
# 12~13행 선택
With Selection.Font
# 폰트 설정(궁서)
.Name = "궁서"
End With
Selection.Font.Bold = True
#굵게 쓰기
Range("A12").Select
ActiveCell.FormulaR1C1 = "중앙값"
Range("A13").Select
ActiveCell.FormulaR1C1 = "표준편차"
Range("B12").Select
ActiveCell.FormulaR1C1 = "=MEDIAN(R[-10]C:R[-1]C)"
#중앙값 범위 설정
Selection.AutoFill Destination:=Range("B12:D12"), Type:=xlFillDefault
# 자동입력
Range("B13").Select
ActiveCell.FormulaR1C1 = "=STDEV.S(R[-11]C:R[-2]C)"
#표준편차 범위설정
Selection.AutoFill Destination:=Range("B13:D13"), Type:=xlFillDefault
#자동입력
End Sub
3) 동일합니다.

4.
1)
Sub 매크로1장4()
'
' 매크로1장4 매크로
'

'
Range("E1").Select
ActiveCell.FormulaR1C1 = "합계“
#E1에 합계 입력
Range("F1").Select
ActiveCell.FormulaR1C1 = "평균“
#F1에 평균 입력
Range("E2").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])“
#E1에 합계 함수 입력
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E11"), Type:=xlFillDefault
#자동완성
Range("F2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-4]:RC[-2])“
#F1에 평균 함수 입력
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F11"), Type:=xlFillDefault
#자동완성
Range("F2:F11").Select
End Sub

5.
1) ? range("a1:d10").Rows.Count
범위 a1부터 d10까지의 열수는 10개 이므로
10이 출력됩니다.
2) ? range("a1:d10").Columns.Count
범위 a1부터 d10까지의 헹수는 4개 이므로
4가 출력됩니다.
3) ? cells.Columns.Count
시트에서 행수 전체를 카운트 합니다.
16384개의 행이 있어서
16384이 출력됩니다.
4) ? cells.rows.Count
시트에서 열수 전체를 카운트 합니다.
1048576개의 열이 있어서
1048576이 출력됩니다.
5) ? range("1:1").Columns.Count
범위 1행 1열에 몇 개의 행이 있는지 세는 것으로
16384가 표시됩니다.
6) ? range("B:B").Rows.Count
범위 B:B -> 2행 2열에 몇 개의 열이 있는지 세는 것으로
1048576이 출력됩니다.
2장 연습문제
1. 개체와 컬렉션에 대해 예를 들어 설명하라
개체 : 엑셀을 구성하는 개별 요소
Application / Workbook / WorksheetFunction / Worksheet / Chart / Range /
ChartObjects / Shapes
컬렉션 : 동일한 개체들의 모임을 말합니다.
Workbook 개체의 컬렉션은 Workbooks
Worksheet 개체의 컬렉션은 Worksheets
동일한 개체들의 모임이기 때문에 하위 개체에 접근하기 위한 용도로 사용됩니다.
2. 명령문에 의해 실행될 결과를 유츄해서 답하라.
mySheetName=Worksheets(1).Name
Workbooks(1).Worksheets(1).Range(“A1”).Value=mySheetName

예제 페이지 깆준 Sheet1이라는 이름을 가지고 있어


mySheetName에 Sheet1이 저장되고
통합문서1 첫 번째 워크시트 A1셀에 Sheet1이라는 값이 들어가 있게 됩니다.

3. Formula 속성과 FormulaR1C1 속성의 차이점은 무엇인가?


Formula 속성은 [A1]형식을 사용합니다. Range(“A1”).Formula = “SUM(B2:D2)” 으로 사용
하며
FormulaR1C1 속성은 [R1C1]형식에서 상대참조가 가능합니다.
Range(“E2:E11”).FormulaR1C1 = “=RC[-3]+RC[-2]+RC[-1]”
여러줄을 사용하지 않고 한줄로 사용이 가능합니다.

4.
1)

Sub 매크로1()
Range("A1").FormulaR1C1 = "10"
Range("A2").FormulaR1C1 = "20"
Range("A1:A2").Select
Selection.AutoFill Destination:=Range("A1:A10"), Type:=xlFillDefault
Range("A1:A10").Select
End Sub
2)

Sub 매크로2()

Range("c1:c10").FormulaR1C1 = "=LOG(RC[-2])"

End Sub
3)
Sub combin()

Range("e1:e10").FormulaR1C1 = "=COMBIN(RC[-4],2)"
End Sub

5. Sub 프로시저와 Function 프로시져의 가장 큰 차이점은?


Sub 프로시저는 절차 수행에 목적이 있고 Function 프로시저는 return 값을 가지며 워크시
트에서 사용자가 사용할 수 있는 차이를 가집니다.

6.
1)

Function 산술평균(a, b)

산술평균 = (a + b) / 2
End Function
2)

Function 기하평균(a, b)

기하평균 = Sqr(a * b)
End Function

7. 80,90의 산술평균 기하평균을 위의 함수로 계산하라


산술평균 85
기하평균 84.85281

8.
1) Dim var1, var2 As Integer
2) Dim var1 As Integer, var2 As Integer
1)은 var2만 정수형 var1은 기본값(Variant형)으로 선언됩니다.
2)는 var1을 Integer var2를 Integer로 선언합니다.
As와 가장 가까운 한 개의 변수만 선언하기 때문입니다

9.
1) 27
2) 2.5
3) 0.75
4) 1
5) True
6) True
7) False
8) Fasle
9) 33
10) error 형식이 일정하지 않음
11) 6
12) 33
13) False
14) True
15) True
16) False
3장 연습문제
1)
Sub 주민번호()
i = 1
Do While Not IsEmpty(Range("a" & i).Value)
Sex_Value = Mid(Range("a" & i).Value, 7, 1)
If Sex_Value = 1 Or Sex_Value = 3 Then
Range("b" & i).Value = "남성"
ElseIf Sex_Value = 2 Or Sex_Value = 4 Then
Range("b" & i).Value = "여성"
Else
Range("b" & i).Value = "오류"
End If

i = i + 1

Loop
End Sub

2)
Sub Norm()
Columns("A:A").Select
Selection.NumberFormatLocal = "0.000_ "
Columns("B:B").Select
Selection.NumberFormatLocal = "0.00000_ "
Range("B2:B6").FormulaR1C1 = "=Norm.s.inv(1-RC[-1])"

End Sub

3)
Sub norm2()
Title = "표준정규분포"
x = Val(InputBox("상위분위수를 구할 상위확률을 입력하세요", "표준정규분포",
"0.05"))
p = Application.WorksheetFunction.Norm_S_Inv(1 - x)
MsgBox ("P(Z>=x) = " & x & ") =" & Format(p, "0.0000"))

End Sub

4)
Do While Loop는 조건만족을 먼저 확인한 후 처리를 시행하고 Loop의 과정을 거치고
Do Loop While은 처리의 과정을 거친 뒤 조건이 만족하면 Loop의 과정을 하게됩니다.

5)
Do Until은 사용자가 지정한 조건이 참이 될 때 까지 내부에 코드를 반복하는 구문이며
Do While은 거짓이 될 때까지 반복합니다.

6)
Sub num1()
Dim y
x = Val(InputBox("어디까지 더할지 입력하세요", "더하기", "0"))
For a = 1 To x
y = y + a
Next a
MsgBox ("1 부터 " & x & " 까지의 합은" & y & " 입니다.")

End Sub

7)
Sub color1()
For i = 1 To 10

Cells(i, i).Select
With Selection.Interior
.Color = 6299648
End With
Next i

End Sub

8)
Sub number2()
For i = 1 To 10
For k = 1 To 10
If i = k Then
Cells(i, k).Value = "1"
Else
Cells(i, k).Value = "0"
End If
Next k
Next i
End Sub
9)
Sub ex3_3()
For i = 2 To 21
For j = 1 To 6
r = 1 - Cells(1, j).Value
If j = 1 Then
Cells(i, j) = i - 1
Else
Cells(i, j) = WorksheetFunction.T_Inv(r, i - 1)

End If
Next j
Next i

End Sub
10)
1)
Sub ex_e9()
i = 2
For n = 1 To 99
For x = 1 To n
For y = x To n

If x ^ 2 + y ^ 2 = n ^ 2 Then
Cells(i, 1).Value = x
Cells(i, 2).Value = y
Cells(i, 3).Value = n
i = i + 1
End If
Next y
Next x
Next n
End Sub
End Sub

2)
3)

11)

You might also like