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

Class Module

일반적인 방법과 크래스모듈을 사용함을 비교해보자

그림과 같이 도형을 워크시트에 만들고



도형의 이름의 두문자를 "shp"라고 한후
아래의 프로시져를 실행하면
도형의 위치와 크기가 각각 바뀐다
이동하면서 이동하는 곳에 당초에 있었던 도형의 정보를
어디엔가 저장(관리)하여야 할것이다

Type MyShape Left_ As Single Top_ As Single Width_ As Single Height_ As Single End Type Sub RelocateShapes() Dim shpX As Shape Dim shpArray() As MyShape Dim shpNameArray() As String Dim iX As Integer, iY As Integer Dim iNum As Integer Dim myShapeTemp As MyShape Dim iRandom_1 As Integer, iRandom_2 As Integer For Each shpX In ActiveSheet.Shapes If Left(shpX.Name, 3) = "shp" Then ReDim Preserve shpArray(iX) With shpArray(iX) .Height_ = shpX.Height .Width_ = shpX.Width .Left_ = shpX.Left .Top_ = shpX.Top End With ReDim Preserve shpNameArray(iX) shpNameArray(iX) = shpX.Name iX = iX + 1 End If Next iNum = UBound(shpArray) Debug.Print iNum For iX = 1 To 100 iRandom_1 = Int(Rnd() * (iNum + 1)) Do iRandom_2 = Int(Rnd() * (iNum + 1)) Loop While iRandom_1 = iRandom_2 myShapeTemp = shpArray(iRandom_1) shpArray(iRandom_1) = shpArray(iRandom_2) shpArray(iRandom_2) = myShapeTemp For iY = 0 To iNum With ActiveSheet.Shapes(shpNameArray(iY)) .Left = shpArray(iY).Left_ .Top = shpArray(iY).Top_ .Width = shpArray(iY).Width_ .Height = shpArray(iY).Height_ End With Next DoEvents Next End Sub

위의 내용은 사용자정의 변수를 이용한 전통적방식의 코딩이다
이것을 크래스모듈을 활용하면서 비교하여 보고
크래스모듈의 사용이 자연스러워지도록 해보자




ClassModule_03.