PROGRAMMING WORKSHOP

VSTO_9 | STRING class

아래의 그림과 같이 주어진 문자열 "1234567890" 속에 순환하면서
크릭한 버튼의 캡션을 끼워넣고 싶다면 어떻게 할까??



VBA에서 하려면
LEFT함수로 왼쪽으로 떼어 놓고
RIGHT함수로 오른쪽부분떼어 놓고
왼쪽에 떼어놓은 부분에 버튼의 캡션을 붙여 넣은후
왼쪽것과 오른쪽것을 합쳐면 될 것이고
또 그런 유사한 방법으로 법썩을 좀 떨어야 한다

.Net FrameWork에 있는 크래스를 하나 생성시키고 위의 문제를 해보자
String 오브젝트..
즉 String 크래스가 있는 것이고
이 String크래스로 생성되는 String오브젝트는 다양한 메소드를 제공한다
문자열정보를 갖고 놀기 훨씬 재미있고 쉬워지게 한다는 것이다

Dim sX As New String("1234567890") Globals.Sheet1.Cells.ClearContents() For iX As Integer = 2 To 10 With Globals.Sheet1.Cells(iX, 1) .Value = sX.Insert(iX, sCaption) With .Characters(iX, 1).Font .Bold = True .size = 15 .colorindex = 3 End With End With Next

Dim sX As New String("1234567890")
로 String오브젝트를 생성하고 아래의 그림과 같이 메소드나 속성을
블러서 사용하면 되는 편리함이다



String타입 함수를 좀더 풍부하게 만들어서 크래스화시켰다고 할 수 있을 것이다
물론 VBA의 함수들로도 모두 가능한것 들이다
그냥 좀 함수들을 일일이 작성할 것 없이 이미 만들어져서 준비된 것을
그냥 사용하면 된다는 편리함이고
코딩의 간결함인것이다

VBA의 매력과 또 다른 매력을 느낄수 있다

어느 VBA를 열심히 하시는 분이
Visual Studio가 있어야 하나요???
라는 질문의 메일을 보내왔다!!
아차차!!!@#@# 공연히 VSTO 코너를 만들었나@#!라는 생각을 했다
공연히 열심히 VBA와 엑셀프로그래밍을 하시는 분들을 헷갈리게 하지 않나
하는 걱정이 되었다
이 코너의 목적은 VBA와 엑셀에서 내공이 쌓일때로 쌓여서
뭐 좀더 공략할 만한 것이 없나??? 하는 분들을 위한 것이고
또한 엑셀을 모르면서 다른 언어의 프로그래밍을 하다가..성능좋은 엑셀을
불러서 사용하여야겠다!!라는 생각을 가진 다른 언어개발자들에게
도움을 드리기 위한 것이다
그런 분들은 엑셀자체의 오브젝트에 낯섫기 짝이 없는 분들이다
그런 분들에게도 좋은 자료가 될수 있을 것이다

VBA와 엑셀을 열심히 하시는 분들은
그냥 자신들이 열공하는 것이 확장성이 대단하구나!!!라는 것을 알면 좋겠다
우선은 무한한 가능성을 꿈꾸면서
VBA와 엑셀 자체를 열공하는 것이 가장 빠른 길이다

또한 Programming WorkShop이라는 이름에 걸맞는 주제이기 때문에
준비하게 된 것이다

아무튼 좀더 살펴 나가보도록 하자

***[LOG-IN]***

위에서 보았듯이
Visual Studio환경에서
오브젝트의 타입만 제대로 명시하면 해당 오브젝트의
메소드, 속성들이 자동으로 줄줄이 리스팅되니까..참으로 편리하다
무슨 소리냐 하면
엑셀에서도
ActiveSheet 라고 하고 쩜을 찍으면 해당 워크시트의 자원목록이 나타나지 않는다
이것도 명시적으로 오브젝트의 타입을 주어야 한다
Dim shtX As WorkSheet
Set shtX=ActiveSheet
라고 shtX라는 워크시트타입오브젝트를 명시적으로 해주면
shtX하고 쩜을 치면 관련 자원목록이 줄줄이 나타난다..
Visual Studio에서는 그런것이 더더욱 엄격하다..
이유는 왜 그럴까???
Visual Studio는 엑셀이 델고 있는 오브젝트와 같이 단순(?)하지가 않고
다양한 라이브러리들의 종합조립장이다 보니까..
엑셀이 갖고 있는 이름과 다른 라이브러리가 갖고 있는 이름이
같을 수도 있고..아무튼 이름들이 충돌로 교통사고들이 빈번하지 않겠는가?
그러니..족보를 잘 챙기는 것이 기본적으로 할 일이다

VSTO를 하면서 또 여러분들이 느꼈으면 하는 것은..
역시 엑셀만한 것이 없군!!!
이라는 것을 느끼게 되기를 바라는 것이다
독립적으로 얼마든지 업무소루션을 만들어내는 엑셀의 가치를 좀더 알게 되는것이고..
또한 Visual Studio를 보면서 위에서 이야기한
STRING 크래스를 보면서..
흠..@# 요것을 엑셀의 사용자정의 크래스로 몽땅 재구현 해볼까??!!!!
라는 동기부여들이 생기면 좋을 것이다

엑셀 만한 것이 없군!!
그것을 느끼는 페이지가 되기를 바란다