Excel & VBA---Brain Training
아래의 프로시져를 실행하면
Sub writeText()
Dim iX As Integer
Dim sTemp As String
Dim sStr As String
sStr = "ABCDEFG HIJK LMNOPQRSTUVWXYX" & _
"abcdefg hijklmn opqrstuvwxyz" & _
"1234567 890"
For iX = 1 To 600
sTemp = sTemp & Mid(sStr, Int(Rnd() * Len(sStr)) + 1, 1)
Next
Range("B3").EntireColumn.Delete
With Range("B3")
.ColumnWidth = .ColumnWidth * 10
.Value = sTemp
.WrapText = True
.Font.Name = "맑은 고딕"
End With
For iX = 1 To 20
Range("B3").Characters(Int(Rnd() * 500) + 1, _
Int(Rnd() * 20) + 1).Font.ColorIndex = 3
Next
End Sub
End Sub
아래와 같이 하나의 셀에 문자열정보가 만들어지고
어느 것은 빨강색으로 서식이 되어 있다
문제는 이 문자열 정보에서 검정색과 빨강색을 분리하여
다른 시트를 하나 만들고 아래와 같이 분리 하는 작업니다
Collection오브젝트의 활용 연습
혹은 배열활용연습(여기에서는 Collection오브젝트로 처리한다)
문자열 함수의 활용연습
범위접근 숙달 연습
데이타타입의 선언을 습관적으로 하는 것이 좋다
아래와 같은 경우..
Sub meMain()
Dim shtQ As Worksheet
Set shtQ = getSheet
If shtQ Is Nothing Then Exit Sub
...
...
...
...
End Sub
Function getSheet() As Worksheet
On Error Resume Next
Set getSheet = Worksheets("sheetName")
End Function
getSheet()함수의 Return Type을 선언하지 말고
해보시기 바란다..
어떤 에러가 나는지
Nothing은 오브젝트변수에 아직 오브젝트를 어싸인 하지 않았을때
읽히게 되는 값이다
Nothing을 제대로 사용하려면 유념해야 할 사항이다
Braintraining_043.