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

Shapes|ShapeRange|IncrementRotaion|Shape|Top|Left|IncrementTop|IncrementLeft|
|Rotation|IncrementRotation|String()|Item|
|Shapes.Range()|ShapeRange|

Left/Top/Rotation 속성과 IncrementLeft/IncrementTop/IncrementRotation 메소드

도형을 수평방향(오른쪽으로 현재 위치에서 100)으로 이동하고 싶다면
아래와 같이 할것이다

shpX.Left=shpX.Left+100

그런데 아래와 같이도 한다

shpX.IncrementLeft 100

IncrementLeft메소드를 사용할수도 있는것이다
Left/Top속성은 화면의 절대적인 위치를 지정하는것이고br /> IncrementLeft/IncrementTop메소드는 현재의 도형의 위치가
화면상의 위치가 어디이던 상관없이
도형의 위치에 상대적으로 전달된 매개변수만큼 이동하는 것이다

또한 도형을 회전시키고 싶다면
회전된 각도값을 Rotation속성으로 처리하고
IncrementRotaion은 현재의 도형의 회전된 각도에 상대적으로
주어진 값만큼 회전하게 된다
아래의 그림과 같다

Range속성으로 얻어지는 ShapeRange오브젝트

워크시트에서 Range속성이 있더니..
Shapes오브젝트에도 Range속성이 있다..
이것은 또 뭔가??
Range속성은 말그대로 범위라고 할수 있겠다
여러개에 걸친 범위..즉 여러개의 도형을 하나의 도형같이
처리할수 있는 ShapeRange오브젝트(집합체오브젝트)를 만들어 준다
아래의 그림과 같이 도형을 하나,하나 처리하고 싶을때도 있지만
한꺼번에 처리하고 싶을때가 있을것이다
이럴때 여러개의 도형을 Range속성에 전달하면
하나의 도형같이 행동해주는 ShapeRange오브젝트를 받을수 있다는 이야기!!



ShapeRange오브젝트는 집합체(Collection)이므로..

Range라는 단어의 의미대로 여러개의 것이 연속적으로
구성된것을 말하듯이..
셀들이 여러게 모인 집합적인 상태도 Range오브젝트로 처리하듯이
워크시트가 여러개 모인 Worksheets집합체오브젝트도
여러개의 Worksheet오브젝트를 한곳에 모아서 관리하듯이
Shape오브젝트도 역시 여러개의 도형을 한곳에 모아서 관리하는
오브젝트가 ShapeRange오브젝트라는 이야기다
아래의 그림과 같이 여러개의 도형을 하나의 오브젝트로
처리하기도 하고 집합체내의 하나,하나를 선택적으로
처리할수 있는 편리한 오브젝트인것이다



아래의 화일에는

  • Dim shpX=Shapes.Range(Array(...........))와 같이 미리정해진 도형들이 아니고
  • 도형의 갯수를 알수 없고..
  • 특정 도형들을 한꺼번에 실행(Run Time)중에 ShapeRange집합체에 잡아 넣고 작업을 하고 싶은데
  • 어떤 방법이 좋을까??그리고 왜 그럴까??(Variant Type Dynamic Array)
  • 같은 문자를 여러개 만들어 내고 싶은데..무슨 함수?(String)
  • 모든 집합체오브젝트는 Item속성이 있고 대개가 생략적으로 표현한다
  • Range("A1:C3")(1).Address는 Range("A1:C3").Item(1).Address와 같은 표현이다



shapeRange Item Range