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

External Datas - XML_03


엑셀시트의 데이타를 XML화일로 만들기

  • VBA I/O Functions
  • Dir,Kill,Open,Append,For,As,Print,Close

스키마화일..XSD화일등등 골치아프다..
그냥 VBA를 알고 잘활용하면 XML화일을 만들기도 하고
불러 오기도 하고 그럴수 있다..
앞의 두페이지는 그냥 VBA모르고 해도 되는 것들이다
여기는 VBA프로그래밍을 즐기는 곳..
아래의 시트와 같은 데이타가 있다고 치고
VBA에서 제공하는 I/O함수들을 활용하면 그냥 간단하게 XML화일이
만들어진다



위의 그림과 같이 Data라는 이름의 시트에 작성하고
아래의 프로시져를 실행시키면 된다

Sub writeXML() Dim lX As Long Dim shtData As Worksheet Dim sXMLLocation As String Set shtData = Sheets("Data") sXMLLocation = ThisWorkbook.Path & "\XLtoXML.xml" If Len(Dir(sXMLLocation)) > 0 Then Kill sXMLLocation End If Open sXMLLocation For Append As #1 Print #1, "<?xml version=""1.0""" & " encoding=""EUC-KR""?>" Print #1, " <Datas>" For lX = 2 To shtData.Range("A" & shtData.Rows.Count).End(xlUp).Row Print #1, " <Data>" Print #1, " <판매일자>" & shtData.Cells(lX, 1).Value & _ "</판매일자>" Print #1, " <분류>" & shtData.Cells(lX, 2).Value & _ "</분류>" Print #1, " <제품이름>" & shtData.Cells(lX, 3).Value & _ "</제품이름>" Print #1, " <담당자>" & shtData.Cells(lX, 4).Value & _ "</담당자>" Print #1, " <고객회사>" & shtData.Cells(lX, 5).Value & _ "</고객회사>" Print #1, " <납품회사>" & shtData.Cells(lX, 6).Value & _ "</납품회사>" Print #1, " <운송회사>" & shtData.Cells(lX, 7).Value & _ "</운송회사>" Print #1, " <판매액>" & shtData.Cells(lX, 8).Value & _ "</판매액>" Print #1, " </Data>" Next Print #1, "</Datas>" Close #1 MsgBox "[" & sXMLLocation & "]이 생성되었습니다!!" End Sub

그냥 XML문서는 텍스트문서이니..텍스트화일을 쓰고 읽고 하는
I/O함수로 간단히 처리된다
결과는 아래와 같이 만들어진다



그런데 위의 구문은 쎄련되지 못했다
초보의 솜씨고..척보면..프로그램을 좀더 잘 하시는 군!!!
소리를 들을수 있도록 작성해보도록 하고

또한 이왕하는 것 서식된 HTML화일도 아래와 같이 하나 만들어 보자
웹문서도 역시 텍스트문서이니..I/O 함수들을 활용하여 마음대로 만들수 있을것이다



다음 페이지에서는 XML문서만을 특별히 다루는 외부라이브러리를 활용하여
XML문서를 쓰고..읽고 해보자!!


xml_03.