やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

LibreOfficeのCalcでPythonマクロを書く

 はじめの一歩。

成果物

準備

手順

  1. マクロを配置するパスを確認する
  2. マクロを作る
  3. マクロを実行する

1. マクロを配置するパスを確認する

/home/<ユーザー名>/.config/libreoffice/4/user/Scripts/python

 私の環境であるラズパイ4では以下だった。

/home/pi/.config/libreoffice/4/user/Scripts/python

 Scriptsディレクトリとそれ以降が存在しなかった。よって以下コマンドで作成した。

mkdir -p /home/pi/.config/libreoffice/4/user/Scripts/python

2. マクロを作る

cd /home/pi/.config/libreoffice/4/user/Scripts/python
vim hello_uno.py

hello_uno.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def hello():
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.getSheets().getByName('Sheet1')
    A1 = sheet.getCellRangeByName('A1')
    A1.Value = 999

3. マクロを実行する

  1. LibreOffice Calcを起動する
  2. メニュー→ツールマクロマクロの管理Pythonをクリックする
    1
  3. ツリーからマイマクロhello_unohelloを開く
  4. 実行ボタンをクリックする
    2
  5. Sheet1A1999が入力される
    3

所感

 できた。でも謎や不満がたくさんある。

  • APIがまったくわからない。XSCRIPTCONTEXTって何? APIドキュメントはどこ?
  • 実行が面倒くさい。端末から叩けないの?

 ググってコピペして動いたワーイな状態。

情報源

対象環境

$ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux