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

Excel & VBA---Brain Training


XML DOM 특강_05 |
HTML개체를 찾아내고 찾아낸 개체에 자식개체 만들어서 붙이고..

아래의 버튼을 계속 크릭하면..어떻게 되나??



아래의 박스속에 개체를 만들었다, 부셨다한다


흥미롭지 않으신가?
위의 상자도 개체이고 이 속에 만들어지는 모든 문장도 개체이다
개체를 만들기도 하고 없애기도 하고

VBA에서 엑셀개체에 접근하고 만들고 하던 컨셉이라면
HTML상의 개체는 일도 아니다..
몇개 되지 않는 개체와 그 개체가 갖고 있는 메소드와 속성을
잘 활용하면 된다..개체지향적 사고를 갖고 있으면 된다

<script type="text/javascript"> var bX=false; function appendMessage() { var oBox=document.getElementById('box'); var oNewP = document.createElement('p'); var oText = document.createTextNode('interesting VBA & JavaScript'); oNewP.style.fontFamily='맑은 고딕'; oNewP.style.fontSize='11pt'; bX=!bX oNewP.style.color='blue'; oNewP.style.fontWeight=(bX)?'bold':'normal';; oNewP.style.width='100%'; oNewP.appendChild(oText); oBox.style.width='50%'; oBox.appendChild(oNewP); } function cleanOff(){document.getElementById('box').innerHTML='';} </script> <input type='button' onclick='appendMessage()' value='show Me Something-Fun' style='font-family:맑은 고딕;' /> <input type='button' onclick='cleanOff()' value='Clean All' style='font-family:맑은 고딕;' /><br /><br /> <div id='box' style='border:1px solid blck; font-size:10pt;padding:1em;width:50%;'> </div>


위의 내용을 복사하여 텍스트편집기에 붙여 넣고 htm확장자로
저장후 열어 보시면 똑같이 실행될 것이다
그냥 아무것도 필요없이 텍스트화일작성편집기만 있으면 되는 것이다
윈도우의 notepad.exe 하나면 프로그래밍이 된다

위에서
bX=!bX라고 하는 것은 VBA로 바꾸면
bX=Not bX 와 같은 것이다
Javascript외 다른 언어에서는 !가 Not에 해당한다

oNewP.style.fontWeight=(bX)?'bold':'normal';
이라고 한 내용에서 (bX)?'bold':'normal' 이라고 하는 표현식은 VBA에서
Iif(bX,'bold','normal') 과 마찬가지인것이다

oNewP.style.fontWeight=Iif(bX=True,'bold','normal')
과 같은 소리인 것이다

var oBox=document.getElementById('box');
는 box라는 ID를 갖은 html tag의 개체를 찾아서
oBox라는 변수에 넣는다
document개체의 getElementById 메소드...
이것은 html,xml에서 모두 유효한 메소드인 것이니..
html을 DOM개체로 접근하는 연습을 위와 같이 하는 것은 곧 XML에
접근 연습을 하는 것과 마찬가지이다
어떤문장을 작성한다고 하는 것은
그냥 문장을 문자열로 전달을 할수도 있지만 DOM을 적극활용한다면
createTextNode()라는 메소드를 사용하면 되는 것이다
이렇게 만들기도 하고 이미 있는 개체를 찾아오기도 하고
모두 VBA에서 엑셀개체와 씨름을 하던 것과 같다
TREE형식으로 줄줄이 붙여 나가는 것이고
새로운 개체를 만들고
이것을 어느 개체의 자식으로 할 것인지 부모를
getElementById('태그이름') 메소드로 찾아서 ..찾아낸 개체의
appendChild(만든개체)라는 메소드로 만든 개체를
붙여주면 되는 것이다
개체는 모두 Element혹은 Node라고 부르고..

문장도 개체라고 하니까..갸우뚱 하실수 있으나
Word문서를 VBA로 처리하였던 분도 또 위의 것은 일도 아닌셈이다
Word문서상의 모든 문장은 개체이고 ..글자하나도 개체인셈이다
엑셀에서도 역시 문자하나도 개체였다는 것을 아시고 있으신가..아닌가??

다음 화일에서 엑셀과 HTML, XML을 비교하면서
VBA 엑셀프로그래밍 학습효과에 씨너지를 올려 보도록 하자!!

진행중..