VBScriptでLibreOfficeを操作してみる(表計算編)

LibreOfficeはフリーのオフィスソフトですが、MSオフィスに匹敵するような機能を持ち、よくこれがフリーソフトのまま開発を続けることができるなあと感嘆せざるを得ない存在です。

このLibreOfficeは、MSオフィスのWordやExcelと同じように、VBScriptなどからオートメーション操作することが可能です。

ただ、それを解説しているサイトやサンプルがほとんどない状態で、とても細かいことまではできないのですが、とりあえずやってみることにします。

Set objServiceManager= CreateObject("com.sun.star.ServiceManager")
Set objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")

Dim ResultArray()
Set objDocument = objDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, ResultArray)
Set objSheet = objDocument.CurrentController.ActiveSheet
objSheet.getCellByPosition(1, 0).String = "私はカモメ"
objSheet.getCellRangeByName("A2").String = "私はカモメ"
objSheet.getCellRangeByName("B3").Value = 12.5
objSheet.getCellRangeByName("C4").Value = 25.5
Result = objSheet.getCellRangeByName("A2").String

MsgBox Result
タイトルとURLをコピーしました