LibreOfficeをAutoitで動かす。マクロ(LibreOffice Basic)より簡単かも

スポンサーリンク

海外で人気がある自動化ソフト「Autoit」でLibreOfficeのCalcを動かしてみます。
LibreBasicよりも簡単そう。

 

 

Autoit とは

UWSCよりも、機能が豊富(画像認識もできます)。Basicに似た仕様でわかりやすいです。

参考サイト: Home – AutoIt

お決まりの「Hello World」

MsgBox("","","Hello World 日本はいい国!!")

この一行だけです、簡単でしょ。

 

好きなエディタでコードを書き、拡張子.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!”形式

 数値の挿入

#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は文字列なので””が必要
A1セル指定

セル指定2 Cell(2,0) 0から始まる

Excelと違い数え方0スタートです

Local $cellValue = _OOoCalc_ReadCell($oCalc, 2,0) ;2行目の0列 (0スタート)=A3
セル指定(x,y)

その他の関数(詳細は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見るといろいろできると感じられます。

コメント

  1. […] ○ LibreOfficeをAutoitで動かす。マクロより簡単かも | ごった煮 […]

  2. […] ○ LibreOfficeをAutoitで。マクロより簡単かも | ごった煮 […]

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