下記URLによると、LibreOffice のBasicマクロから、Python マクロを実行できるようです
そこで、「awscliのdescribeで取得したjsonデータをLibreOffice(calc)に読み込むPythonマクロ」で作成したPythonマクロをBasicマクロから実行してみました。
「awscliのdescribeで取得したjsonデータをLibreOffice(calc)に読み込むPythonマクロ」で作成したPythonマクロを以下のように修正します。(赤字部分)
BASICマクロを作成します。
Python マクロを実行するソースコードは以下のとおり。
赤字部分が、スクリプトファイル名です。
緑色部分が、関数名です。
このソースを LibreOffice に登録します。
LibreOffice(calc) を起動して、[ツール] > [マクロ] > [マクロの管理] > [LibreOffice Basic] を選択すると下図の画面が表示されます。
下図のように赤枠を選択して、登録先を選択し、[編集]ボタンをクリックします。
下図の画面が表示されたら、ソースコードを記載して保存します。
Basic マクロの実行には、JRE が必要です。
[ツール] > [オプション] を選択すると、下図の画面が表示されます。
[詳細] をクリックして、JRE を指定します。
Basicマクロを実行します。
[ツール] > [マクロ] > [マクロの実行] を選択すると下図の画面が表示されます。
下図の赤枠のように選択して [実行] ボタンをクリックします。
BasicマクロからPythonマクロが実行され、以下のように Jsonデータを読み込めました
Basicマクロに比べて、Pythonマクロは、情報が少なくて、セルの操作などえ使用法がわからないことが多かったのですが、
これで、Jsonデータの入力だけ、Pythonマクロで行い、セルの操作などは、Basicマクロで実施できるようになりました。
1.Python マクロの修正
「awscliのdescribeで取得したjsonデータをLibreOffice(calc)に読み込むPythonマクロ」で作成したPythonマクロを以下のように修正します。(赤字部分)
#coding:utf-8
import json
def amiList(*args):
2.Basicマクロの作成
BASICマクロを作成します。
Python マクロを実行するソースコードは以下のとおり。
赤字部分が、スクリプトファイル名です。
緑色部分が、関数名です。
Sub Main ' JSONデータ入力. Pythonマクロ(TestScript.py の amiList)を実行 Dim a(0),b(0),c(0) As Variant scpr = ThisComponent.getScriptProvider scmod = scpr.getScript("vnd.sun.star.script:TestScript.py$amiList?language=Python&location=user") ret = scmod.invoke(a,b,c) End Sub
このソースを LibreOffice に登録します。
LibreOffice(calc) を起動して、[ツール] > [マクロ] > [マクロの管理] > [LibreOffice Basic] を選択すると下図の画面が表示されます。
下図のように赤枠を選択して、登録先を選択し、[編集]ボタンをクリックします。
下図の画面が表示されたら、ソースコードを記載して保存します。
3.Basicマクロの実行
[ツール] > [オプション] を選択すると、下図の画面が表示されます。
[詳細] をクリックして、JRE を指定します。
Basicマクロを実行します。
[ツール] > [マクロ] > [マクロの実行] を選択すると下図の画面が表示されます。
下図の赤枠のように選択して [実行] ボタンをクリックします。
BasicマクロからPythonマクロが実行され、以下のように Jsonデータを読み込めました
Basicマクロに比べて、Pythonマクロは、情報が少なくて、セルの操作などえ使用法がわからないことが多かったのですが、
これで、Jsonデータの入力だけ、Pythonマクロで行い、セルの操作などは、Basicマクロで実施できるようになりました。