

海外で人気がある自動化ソフト「Autoit」でLibreOfficeのCalcを動かしてみます。
LibreBasicよりも簡単そう。Excelも動かせます。
Autoit とは
UWSCよりも、機能が豊富(画像認識もできます)。Basicに似た仕様でわかりやすいです。
お決まりの「Hello World」
MsgBox("","","Hello World 日本はいい国!!")
この一行だけです、簡単でしょ。ただし、これはAutoitのalertでLibreoficeからできたものではないです。
好きなエディタでコードを書き、拡張子.au3で保存。クリックすれば動きます。
もちろん、関連付けはしなければだめですが
簡単なSample コード(起動編)
LibreOffice Calcを立ち上げる
#include "Libre/OOoCalc.au3" _OOoCalc_BookNew()
(1) #include “Libre/OOoCalc.au3” : LibreOfficeを動かすために必要です。海外の有志の人が作ってくれたものです。感謝し使いましょう。
(2) _OOoCalc_BookNew() : 新規にCalcを起動します。
LibreOfficeを起動し、最大化
#include "Libre/OOoCalc.au3" Opt("WinTitleMatchMode", 2) ; 一部一致 Global $oCalc = _OOoCalc_BookNew() ;Create test file WinWait("Calc") WinSetState("Calc", "", @SW_MAXIMIZE) ;最大化
すでにあるCalcファイルを開く
#include "Libre/OOoCalc.au3" _OOoCalc_BookOpen(@ScriptDir & "\sample.ods")
_OOoCalc_BookOpen(@ScriptDir & “\sample.ods”) ; パス名は大事です
セルに書き込み、サンプル
文字列の挿入
#include "Libre/OOoCalc.au3" Local $oCalc = _OOoCalc_BookNew() _OOoCalc_WriteCell($oCalc,"日本は素晴らしい",2,1) ;cell(x,y) _OOoCalc_WriteCell($oCalc,"野党いらない","C5") ;
_OOoCalc_WriteCell($oCalc,”文字列”,x,y) ;cell(x,y)
_OOoCalc_WriteCell($oCalc,”文字列”,”A1″) ; セル特定”A!”形式
数値の挿入
Autoitは変数の頭に$をつけます。
#include "Libre/OOoCalc.au3"
Local $oCalc = _OOoCalc_BookNew()
_OOoCalc_WriteCell($oCalc,123456,2,1) ;cell(x,y)
_OOoCalc_WriteCell($oCalc,50000,"C5") ;
”文字列” –> 数値 : これでOK
セルの文字色、背景色を変える
#include "Libre/OOoCalc.au3" Local $oCalc = _OOoCalc_BookNew() _OOoCalc_WriteCell($oCalc,123456,2,1) ;cell(x,y) _OOoCalc_CellSetColors($oCalc, 0xD71D3B, 0xFFEFCE, 2, 1) _OOoCalc_WriteCell($oCalc,50000,"C5") ; _OOoCalc_CellSetColors($oCalc, 0xFFFFFF, 0x000,"C5")
_OOoCalc_CellSetColors($oCalc, 文字色, 背景色, セルアドレス)
黒 FFFのように短縮系はだめみたいです。 FFFFFFにします。
セルの値を取得
既存のCalcを開く
#include "OOoCalc.au3" Local $oCalc = _OOoCalc_BookOpen(@ScriptDir & "\testLibre.ods")
ファイル名は、フルパスでないとCalcひらきません。
@ScriptDir:現在動かしてるスクリプトのあるフォルダになります。
セルの値を取得する
#include "OOoCalc.au3" Local $oCalc = _OOoCalc_BookOpen(@ScriptDir & "\testLibre.ods") ;既存のCalc開く Local $cellValue = _OOoCalc_ReadCell($oCalc, "a1") ;A1の値取得 MsgBox("","",$cellValue) Local $cellValue = _OOoCalc_ReadCell($oCalc, 2,0) ;2行目の0列 (0スタート)=A3 MsgBox("","",$cellValue)
セルの指定 (A1)
_OOoCalc_ReadCell($oCalc, “a1”) ;A1の値取得 A1は文字列なので””が必要

セル指定2 Cell(2,0) 0から始まる
Excelと違い数え方0スタートです
Local $cellValue = _OOoCalc_ReadCell($oCalc, 2,0) ;2行目の0列 (0スタート)=A3

その他の関数(詳細はGoogle先生に聞いてください)
_OOoCalc_BookNew
_OOoCalc_BookOpen
;_OOoCalc_BookAttach
;_OOoCalc_BookSave
;_OOoCalc_BookSaveAs
;_OOoCalc_BookClose
_OOoCalc_WriteCell ;// セルに書き込み
;_OOoCalc_WriteFormula
;_OOoCalc_WriteFromArray
;_OOoCalc_HyperlinkInsert
;_OOoCalc_RangeMoveOrCopy
;_OOoCalc_RangeSort
;_OOoCalc_RangeClearContents
;_OOoCalc_CreateBorders
;_OOoCalc_NumberFormat
_OOoCalc_ReadCell ;// セルの値取得
;_OOoCalc_ReadSheetToArray
;_OOoCalc_RowDelete
;_OOoCalc_ColumnDelete
;_OOoCalc_RowInsert
;_OOoCalc_ColumnInsert
;_OOoCalc_SheetAddNew
;_OOoCalc_SheetDelete
;_OOoCalc_SheetNameGet
;_OOoCalc_SheetNameSet
;_OOoCalc_SheetList
;_OOoCalc_SheetActivate
;_OOoCalc_SheetSetVisibility
;_OOoCalc_SheetMove
;_OOoCalc_SheetPrint
;_OOoCalc_HorizontalAlignSet
;_OOoCalc_FontSetProperties
_OOoCalc_CellSetColors
;_OOoCalc_RowSetColors
;_OOoCalc_ColumnSetColors
;_OOoCalc_RowSetProperties
;_OOoCalc_ColumnSetProperties
;_OOoCalc_FindInRange
;_OOoCalc_ReplaceInRange
OOoCalc_Demo見るといろいろできると感じられます。
コメント