拡張機能をインストールする。
成果物
手順
1. ダウンロードする
- メニュー→
ツール→拡張マネージャ ほかの機能をオンラインで取得リンクをクリックする- ブラウザが起動する
- サイトの検索窓に
APSOを入力して検索する - APSOサイトをクリックする
- サイトから
apso.oxtファイルをダウンロードする apso.oxtファイルを任意パスに配置する

2. インストールする
- 拡張マネージャダイアログの
追加ボタンを押下する apso.oxtファイルを選択する- ライセンス条項を最下端までスクロールする
許可ボタンを押下する- リストに
APSOが追加される

3. エディタを設定する
- 拡張マネージャダイアログのリストから
APSOを選択する オプションボタンを押下するエディター項目にplumaやmousepadなど任意のテキストエディタを入力する

4. Pythonコードを書く
- メニュー→
ツール→マクロ→Pythonスクリプトの管理 - ダイアログのツリーにある
マイマクロをクリックする メニューボタンをクリックする- プルダウンから
モジュールの作成を選ぶ 新規モジュール名ダイアログにて任意モジュール名を入力する:user_func- ツリーに作成されたモジュールをクリックする
メニューボタンをクリックする- プルダウンから
編集を選ぶ - エディタが起動する
- 以下のコードを書いて保存する
#!/usr/bin/env python # -*- coding: utf-8 -*- # LibreOffice Calc ユーザ定義関数のPython版 def SUM_PY(*args): return sum(args)

5. 使ってみる(失敗)
- 任意セルに
=SUM_PY(3,3,3)を入力する #NAME?と表示されてしまう
失敗。期待値は9だった。Pythonスクリプトで書いた関数は参照できないのか?
6. Pythonシェルで使ってみる(成功)
- メニュー→
ツール→マクロ→Pythonスクリプトの管理 メニューボタンをクリックする- プルダウンから
Pythonシェルを選ぶ SUM_PY(3,3,3)コードを入力するEnterキーを押下する9が表示される
APSO python console [LibreOffice] 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] Type "help", "copyright", "credits" or "license" for more information. >>>
>>> SUM_PY(3,3,3)
9
成功した。

7. Pythonでユーザ定義関数を作れる?
どうもBASICと同様の方法で簡単に作ることはできなさそう。
拡張機能でなら頑張ればできるのかもしれない。大変そうなのでやらない。
所感
ユーザ定義関数はBASICでしか書けない。Pythonで書きたかったのに……。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- LibreOffice 6.1.5.2 ※ ※ Help
$ uname -a Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux