LibreOffice Calcで為替レートを取得する。その2

PythonでYahoo!ファイナンスからその時点での為替レートを取得することはできたので、次はLibreOffice Calcからそのデータを利用する部分です。
が、Calcの「ツール」→「マクロ」→「マクロの管理」→「Python」というメニューがありますが、そこではPythonマクロ(プログラム)の実行はできても、追加や編集はできないようです。

ググってみると、考えるエンジニアさんのLibreOffice CalcでPythonマクロを使う(2)にまとめられていました。

まず、LibreOfficeでPythonをマクロとして登録して使うための機能拡張 APSO(Alternative Script Organizer for Python)をダウンロードしてインストールします。APSOはLibreOfficeにPythonを組み込むマクロ管理拡張です。
インストールするには、ダウンロードした "apso.oxt" をダブルクリックすればOKです。

次に、「ツール」→「オプション」の設定ダイアログを開きます。


「セキュリティ」を選択し、「マクロセキュリティ」をクリックします。
「セキュリティレベル」タブでは、セキュリティレベルは「高」のままにします。「信頼されたソース」のタブで、「信頼されたファイル位置」に先ほど作ったPythonプログラムの保存場所を登録します。自分はGoogle Driveの中によく使うライブラリ用のフォルダを用意しているので、そこに "LibreOffice\Python" というディレクトリを掘りました。その他のCADなどで使用するライブラリもここに収納しています。


これでこの場所にあるPythonスクリプトを登録できるようになりました。

次に、APSOで使用するエディタの登録を行います。
「ツール」→「拡張機能マネージャー」を開き、「APSO」を選択して「オプション」をクリックします。


すると、"EditorKicker"の項目にエディタの設定ができるようになっているので、使い慣れたエディタを指定します。ここでは "秀丸エディタ" を指定しています。


これで設定などの準備は整いましたので、「ツール」→「マクロ」を見てみると、"Organize python scripts" という項目が増えています。早速なにかやってみましょう。この "Organize..." をクリックします。


まず、無題1を選択して、「Menu」→「Create Module」をクリックします。


するとモジュール名を入力するダイアログが現れるので、試しになにか入れてみます。


まずはCalcのセルになにかを表示してみたいので、定番の "Hello, World!" をやってみます。すると "無題1" の下に "Hello, World!" ができてくるので、それを選択してから「Menu」→「Edit」します。先ほど設定したエディタでソースが開かれます。


ファイルのパスが "AppdData\Local\Temp" 以下にあるんだけれど大丈夫かしら…。

さて、Pythonではなにかをするためにはまず対応したモジュールを import して、そこから関数やオブジェクトを利用するという形になるわけですが、当然Calcになにかを入力するためにはCalcのAPIを叩くモジュールが用意されている…ハズ…されてるといいな。

ちょっと長くなってきたのでその3に続きましょう。

0 件のコメント:

コメントを投稿

Windowsでシンボリックリンクを試してみる。

きっかけは、1つのファイルを別の名前で起動したら違う動きになるようなスクリプトを書く、でした。  busybox なんかでは、同じ実行形式ファイルの名前を、lsにすればlsと同じ、cpとすればcpと同じ動作をするようにしてますが、Pythonスクリプトでそれと同じように argv...