OpenOffice.org Calc와 VB 연동 예제 포함

By | 2006/02/12

예제 간단히 만들었습니다.
 
궁금하신거 있으시면 댓글이나


 
로 연락해주세요.

 
참조
 
OpenOffice.org Forum
 

   Dim oServiceManager As Object
Dim oDesktop
Dim oCalcDoc
Dim oSheet1, oSheet2, oSheet3 ‘ 시트들
Dim oOFile ‘ 파일 경로
Dim AppPath As String

   Dim n As Integer

Set oServiceManager = CreateObject(“com.sun.star.ServiceManager”)

‘파일명을 적는다.
‘여기서 조심해야 할 점은 디렉토리 구분에
‘가 아닌 /가 쓰여야 한다.
‘App.Path의 경우 을 쓰기 때문에 Replace함수를 써서 을 /으로 바꾼다.
AppPath = Replace(App.Path, “”, “/”)
oOFile = “file:///” & AppPath & “/data.ods”

‘ 데스크탑 Object를 가져온다.
Set oDesktop = oServiceManager.createInstance(“com.sun.star.frame.Desktop”)
‘ Use this empty array when no arguments are needed.

    Dim aLoadArgs()
‘ 만약 화면에 나오지 않게 하고 싶으면 밑에 주석을 없앤다.(단, 위의 aLoadArgs 선언은 지운다.)
‘Dim aLoadArgs(0)
‘Set aLoadArgs(0) = oServiceManager.Bridge_GetStruct(“com.sun.star.beans.PropertyValue”)
‘aLoadArgs(0).Name = “Hidden”
‘aLoadArgs(0).Value = True

    ‘ 파일을 불러온다.
‘ 만약 새 파일을 만들고 싶을 시는 다음과 같이 한다.
‘ Set oCalcDoc = oDesktop.loadComponentFromURL(“private:factory/scalc”, “_default”, 0, aNoArgs())
Set oCalcDoc = oDesktop.loadComponentFromURL(oOFile, “_default”, 0, aLoadArgs())

‘ 시트를 가져온다.
‘ 만약 시트 이름으로 가져오고 싶으면 다음과 같이 한다.
‘ Set oSheet1 = oCalcDoc.getSheets().getCellRangeByName(“시트이름”)
‘ 밑에 방법은 시트 첫 번째부터 세 번째까지 것을 불러오게 하는 것이다.
Set oSheet1 = oCalcDoc.getSheets().getByIndex(0)
Set oSheet2 = oCalcDoc.getSheets().getByIndex(1)
Set oSheet3 = oCalcDoc.getSheets().getByIndex(2)

    ‘값을 불러온다.
‘getCellByPosition(열, 행)이다.
‘밑의 구문은 첫 번째 시트의 F4자리의 수를 가져오는 것이다.
n = oSheet1.getCellByPosition(5, 3).GetValue()

‘내용을 입력한다.
‘밑의 구문은 첫 번째 시트의 F5자리의 수를 F4숫자에 +1 시켜서 내용을 넣는것이다.
Call oSheet1.getCellByPosition(5, 4).SetValue(n + 1)

‘ 파일 저장
Call oCalcDoc.storeAsURL(oOFile, aLoadArgs())

‘ 문서를 닫는다.
‘ 만약 화면에 나오지 않게 했을 경우에는 반드시 이 구문을 마지막에 넣는다.
‘oCalcDoc.Close (True)

Leave a Reply