Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

Excel & VBA---Brain Training




도형을 하나 짜리도 표현해보고 행과 열방향으로도
여러개를 만들면서 순환문도 다시 해보았다
그런데 조건 분석하는 구문이 없었다
그것을 해보도록 하자
순환문이 돌아가면서 조건이 맞을때만 도형을 그리기

앞전에서 Range오브젝트를 중심으로 한 VBA훈련을 했었으니
다시 한번 Range오브젝트를 중심으로 하는 것을 더불어 훈련을 하면서
아래의 구문을 실행하면 시트를 찾아서 처리하기도 하고
시트가 없다면 시트를 새로 만들어서 이곳 저곳 셀에 값이 나타난다

Sub createSheet() Dim shtX As Worksheet, shpX As Shape Dim iRow As Integer, iCol As Integer On Error Resume Next Set shtX = Worksheets("ConditionalPractice") If shtX Is Nothing Then Set shtX = Worksheets.Add shtX.Name = "ConditionalPractice" Else For Each shpX In shtX.Shapes shpX.Delete Next shtX.Cells.Clear End If ActiveWindow.DisplayGridlines = False For iRow = 5 To 15 For iCol = 2 To 12 If Int(Rnd() * 4) = 0 Then shtX.Cells(iRow, iCol) = Int(Rnd() * 9) + 1 End If Next Next End Sub

위와 같이 해서 값이 들어간 셀만 찾아서
즉 조건에 맞는 셀만 찾아서 도형을 그린다
도형만 그리는 것이 아니고
셀에 있는 값을 도형으로 옮겨야 한다
앞에서 모두 훈련 한 것의 응용이지 쌩뚱맞게 새로나온 내용 하나도 없다
못 풀면 앞에서 부터 다시 하나..하나 해보면서 보시기 바란다

아래의 그림과 같이 되게 만들기다



위와 같은 작업을 하려면..
엑셀의 대개의 작업은..
해당 되는 셀은 테두리색을 빨강색으로 하고

어떤 시트의 정보가 들어있는 셀을 찾아내는 방법을 알아야 할 것이다
정보가 들어있는 셀을 찾는 방법은 여러가지가 있을 것이다
작업대상의 정보를 어떻게 잘 찾느냐의 연습이 엑셀의 시트상에서의
일의 전부라고 해도 과언이 아니다..
작업대상에 접근을 해야 뭘 하던가 말던가 하지 않겠는가?



첫번째 그림같이 정보가 들어있는 범위주변을 모두 한꺼번에 접근 한
방법을 사용했다면 도형을 그릴때

Dim rAll As Range
Set rAll=찾아낸모든 범위
For Each rX In rAll.Cells
.....If rX<>"" Then
..........If rX>5 Then
...............도형을 그리고
..........End if
.....End If
Next

두번째 접근한 범위라면..

For Each rX In rAll.Cell
.....If rX>5 Then
..........도형을 그리고
.....End If
Next

라고 하면 될것이고..
그러나 두번째가 효율적이겠지..검문소가 하나밖에 없으니까

이것은 무엇을 의미하는가??
엑셀에서 제공하는 메소드,속성을 하나라도 더 챙기고 있으면
빨리 목적지에 간다는 이야기다!!
원초적으로 어떤 작업대상범위에 접근하는 것이 효율적이였으니까

엑셀에서 일을 잘해주면 VBA가 편하고
엑셀에서 일을 더듬하게 해주면 VBA가 좀더 일을 해야 하고..

아래 화일에서는 작성된 도형을 전체를 한번에
위치 이동을 시키는 방법도 살펴보자

이 방법을 모르면 하나 하나 도형을 순환하면서 위치를 이동하여야 할것이다




BrainTraining_066_4.