PythonでLibreOfficeのマクロ

LibreOfficeのマクロはLibreOffice BASICが標準ですが、Pythonを使ってマクロを書くこともできます。

LibreOffice Calcの簡単なサンプル

シートとセルを選択して値を読み書きするだけのスクリプトです。

def sample():

ここで定義する名前がLibreOffice Calc上でも表示されることになります。

doc = XSCRIPTCONTEXT.getDocument()

シートの選択

名前から選択する場合

sheet = doc.getSheets().getByName('Sheet1')

インデックスから選択する場合

sheet = doc.getSheets().getByIndex(0)

アクティブシートを選択する場合

sheet = doc.CurrentController.getActiveSheet()

値の読み書き(数値バージョン)

A1B1のセルの値を数字として読み取って、その値をC1に入力します。

# C1 = A1 + B1
A1 = sheet.getCellRangeByName('A1')
B1 = sheet.getCellRangeByName('B1')
C1 = sheet.getCellRangeByName('C1')
C1.Value = A1.Value + B1.Value

値の読み書き(文字列バージョン)

左上を(0,0)としたインデックスからセルを選択して、その値を文字列として扱います。

# C2 = A2 + B2
A2 = sheet.getCellByPosition(0, 1)
B2 = sheet.getCellByPosition(1, 1)
C2 = sheet.getCellByPosition(2, 1)
C2.String = A2.String + B2.String

サンプルコード

このページのサンプルコードは以下のサイトからダウンロードできます。
LibreOffice – テストコード

関連記事

LibreOfficeの改行と改ページ
LibreOfficeで使えるショットカットキーです。 段落を追加しないで改行 Shift + Enter 改ページ Ctrl + Enter ...

LibreOffice Calcで最大・最小のセルを見つける方法
MAX/MIN関数 LibreOffice Calcで最大・最小の値を調べたい場合はMAX/MIN関数を使って =MAX(A2:A6) =MIN(A2:A6) のように入力します。(A2、A3、A4、A5、A6の中から最大値と最小値を計算) MATCH関数 一方、MATCH関数を使うと、指定された範囲の中からその値を取る位置を調べることができます。 =MATC...

コメントを残す

メールアドレスが公開されることはありません。