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

Excel & VBA---Brain Training



엑셀에서 제공된다고 하는 것이 뭐여요??
아래의 그림을 보면 왼쪽의 xlBorderIndex라는 이름에 해당하는 구성원들이
오른쪽에 주욱 나열되어 있다
이놈의 족보를 거슬러 올라가면서 살펴보자



Range("A1").Borders(

라고 괄호를 치면 자동으로 상수가 열거된다



이놈의 족보를 좀더 자세하게 관찰하고 싶으면

Range("A1").Borders(Excel.

라고 하고 쩜딱치면 리스트가 나타날것이다..Excel이 갖고 있는 속성,상수,메소드들이
줄줄이 나타난다
다시

Range("A1").Borders(Excel.



다시 마지막 우리가 입력하고 싶은 것..



이렇게 엑셀의 오브젝트 구조는 부모밑에 자식 오브젝트들이
그리고 해당오브젝트의 속성들이,구성원들이 줄줄이 달려서 존재하는 것이다

체계적으로 기능을 정리 정돈해 놓은 좋은 쌤플이라고 할 수 있겠다

Range("A1").Borders(Excel.XlBordersIndex.xlEdgeLeft)

이렇게 표현해도 되고..그냥 아래와 같이 표현해도 된다

Range("A1").Borders(xlEdgeLeft)

물론
Range("A1").Borders( 엉뚱한값을 넣는다)

라고 하면 반드시 에러가 난다..
왜냐면 필요한 값을 주어야지 이상한 값을 주니 당연하다
또한 다음 필요한 값을 받는 속성을 주지 않고 아래와 같이 표현한다면

Range("A1").Borders(xlEdgeLeft)

역시 에러가 날것이다..
이것은 Border라는 오브젝트를 얻었는데 그 다음 작업을 뭘하겠다는것이
없다는 소리다..
그러니..이것도 역시 에러다
아래와 같이 하거나

Dim oBorder As Border
Set oBorder = Range("A1").Borders(xlEdgeBottom)
oBorder.LineStyle = xlThick

아래와 같이 하여야 되는 것이 VBA문법이다

Range("A1").Borders(xlEdgeBottom).LineStyle=xlThick

여기에서 생각이 있다면..어...오브젝트도 변수에 넣네요??!!!
아주 중요한 문제다..
오브젝트를 담을 변수를 선언할때는 As [해당오브젝트명]을 하여 준다

As Object
라고 일괄적으로 오브젝트타입을 표현하기도 하지만 별로 바람직한
방법이 아니다..오브젝트의 이름을 모를때 사용하고 이렇게 사용하면
해당오브젝트의 구성요소를 볼수 없다..그냥 그렇다는 것만 알고
지금 신경쓰면 골 아파진다...


모든 것은 변수에 임시 담아서 사용할 수 있다는 점!!!
문제는 이런 기본적이고 원칙적인 엑셀의 구조를 이해하면
기초가 튼튼해자고 기본과 원칙에 충실해 지는 것이다
수많은 이름을 기억하려고 기를 쓰지 않아도 된다
그냥 원칙만 알면..엑셀이 제공하는 기능을 모두 잘 사용할 수 있게 될것이다

이런 것을 외우려고 하는 것은
무식허게 영어단어장 들고 다니면서 외우는 것과 같다..
자주 사용하는 것은 외우려고 하지 않아도 되고 가끔 사용하는 것은
위와 같이 찾아가면서 하면 되는 것이다