LibreOffice CalcでPythonマクロを使う(3) - 考えるエンジニア
FC2ブログ

LibreOffice CalcでPythonマクロを使う(3)

 前回前々回と長々と話を引っ張って、ようやく今回マクロの作成と実行のお話をします。LibreOffice Calcで作成したファイル名は「test_macro.ods」とします。「ツール」-「マクロ」から「Organize python scripts」を選択します。APSO_Run0_180715.pngPython scripts - APSO」のウィンドウが開きますので、作成ファイル名(test_macro.ods)を選択し、APSO_Run1_180715.png「Menu」から「Create module」を選択します。APSO_Run2_180715.png新しいモジュール名として、「my_first_macro_calc」を入力しました。APSO_Run3_180715.pngそのモジュール名を選択し、APSO_Run4_180715.png「Menu」から「Edit」を実行すると、APSO_MacroEdit_180715.pngエディタ(私の環境ではテキストエディタ)が起動しますので、Pythonのコードを入力します。APSO_MacroEditor_180715.png実行したマクロコードは以下の通りです。A列に1〜10までの数値を入れ、B列にその二乗値、C列に平方根を計算した単純なものです。
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import uno
import numpy as np

def my_first_macro_calc():
xdoc = XSCRIPTCONTEXT.getDocument()
xsheet = xdoc.Sheets['Sheet1']

for i in range(10):
xcell = xsheet.getCellByPosition(0, i) # A-column
xcell.Value = i + 1
xcell = xsheet.getCellByPosition(1, i) # B-column
xcell.Value = (i + 1)**2
xcell = xsheet.getCellByPosition(2, i) # C-column
xcell.Value = np.sqrt(i + 1)
return
実行は「Python scripts - APSO」のウィンドウの「Execute」ボタンを押すだけです。APSO_Macro_Run0_180715.png結果は、以下の通りです。問題なく実行できました。APSO_MacroRes_180715.png
 実行は、「ツール」-「マクロ」の「マクロを実行」でも行えます。APSO_Macro_Run1_180715.pngマクロセレクターで実行するマクロを選択し、実行ボタンを押すだけです。APSO_Macro_Run2_180715.png
 LibreOffice CalcでPythonマクロを作成・編集・実行できる環境を構築できました。今後、面倒な表計算処理などに使っていこうと思います。

コメント

非公開コメント

ご訪問者数

(Since 24 July, 2016)

タグクラウド


プロフィール

Dr.BobT

Author: Dr.BobT
興味のおもむくままに生涯考え続けるエンジニアでありたい。

月別アーカイブ

メールフォーム

名前:
メール:
件名:
本文: