Professional Documents
Culture Documents
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
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
6.
1)
Function 산술평균(a, b)
산술평균 = (a + b) / 2
End Function
2)
Function 기하평균(a, b)
기하평균 = Sqr(a * b)
End Function
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)