LoginSignup
1
0

More than 1 year has passed since last update.

ScriptForge Calc Demoを動かす

Last updated at Posted at 2021-12-03

LibreOffice Advent Calendar 2021 12月3日の記事です。
昨日はTDFのBoard of Directorsって何?概要と選挙について - Shinji Enoki's blog
でした。

LibreOffice Conference 2021で気になるものを見つけた。

LibreOfficeでPythonを使ってマクロを書ける。
それもUnoとかBasicのややこしい記述を使わずに。
素晴らしい。

サンプルの資料もGitHubに公開されている。
Youtubeの動画通りに動かしてみようと思う。

環境

  • LibreOffice Calc
  • Windows10/11 Pro
  • Git

下記の資料をGit Cloneしてくること。

やり方

発表資料を取得

GitHubに置いてあります。
Git Cloneで入手します。

git_clone
PS> git clone https://github.com/rafaelhlima/LibOCon_2021_SFCalc.git

Gitが分からない方は下記のように、
Code > Download Zip

でZIPファイルで入手してください。
gitdownload.jpg

Windowsなら右クリック[すべて展開」でZIPファイルを展開します。

動かない?

そのままでは動きません。
下記の3つの作業をする必要があります。

  • マクロを低に
  • LibOCon_2021.py をUser Scriptフォルダに置く
  • インポートするcsvやodsファイルのパスを書き換える

マクロを低に

いきなり取得したフォルダの中のSample_File.odsを開くと下記の警告が出る。

マクロのボタンを押しても全く動かない。

macro.jpg

[ツール] > [オプション] > [LibreOffice] > [セキュリティ]
macro00.jpg

macro01.jpg

現在のマクロセキュリティ設定を低にします。

低のスクショに張り替えること

macro02.jpg

これでSample_File.odsは開くようになりました。

でも、ボタンを押しても下記のエラーがでて動かないんだけど…。

UserScript00.jpg

LibOCon_2021.pyをUser Scriptフォルダに置く

ReadMeを読んでみましょう。

the file LibOCon_2021.py needs to be placed into the LibreOffice user scripts folder in your machine.

On **Windows** machines, the folder is:(if it does not exist, create it)
`%APPDATA%\LibreOffice\4\user\Scripts\python`

要約すると

user script folderという場所に LibOCon_2021.pyを置く必要がある。
Windowsの場合は、
%APPDATA%\LibreOffice\4\user\Scripts\python

無い場合はフォルダを作って入れる。

上記のフォルダに資料のフォルダにあるLibOCon_2021.pyを入れた。

Excecute V1 ボタンでも押してみよう。

よし、動いたぞ!

LoadCSV1 (default) ボタンでエラーが出る

LoadCSV1(default)ボタンを押すと下記のようなエラーが出ます。
Error DOCUMENTOPENERROR
赤線の部分を見ると、「ファイルが無い」と言ってますね。

FileNameがフルパスで指定されています。
/home/rafael/Documents/JobData_v1.csv

僕の環境ではこのファイルがある場所は、
C:\Users\yusuke\git\LibOCon_2021_FS_Calc\JobData_v1.csv

UserScriptフォルダにあるLibOCon_2021.pyを書き換えます。
実際のファイルのある場所を指定します。

DOCUMENTOPENERROR.jpg

下記の場所に行って

%APPDATA%\LibreOffice\4\user\Scripts\python


LibOCon_2021.py を開きます。

下記のように /home/rafael/Documents ところを一気に置換します。

fullpath.jpg

置換が終わったら上書き保存します。

これでLoadCSV1のボタンも別のファイルの別のシートをコピーするボタンも全て動き出します。

Formのボタンを探る

「ツール」 > 「フォーム」 > 「デザインモード」

でフォームのボタンを右クリックできる。

ボタンを右クリック > コントロールのプロパティ を押すと、

実行時の部分にScriptForgeの関数が割り当てられている。

右側の[...]ボタンを押すと割り当てられたアクションが出てくる。

マクロのボタンを押すとマイマクロからLibOCon_2021.pyに書かれた関数を選ぶことができる。

全体像を図式化

大まかに下記のように動いていることが分かった。

LibreOffice -> ScriptForge -> Formボタン

取り合えず動かし方とどうやって動いているかは掴めたと思います。

今後の課題

Unoの読込をかなり簡素化してくれる。
ただ、下記のようなことは分からない。

  • VBAのようにファイルの中に仕込む方法は?
  • 拡張機能の中で使うにはどうする?

VBAのようにファイルの中に仕込むのは、
UbuntuのLibreOfficeならできるようだが、
Windowsだと黒い画面が一瞬出て消える。
多分、ASPOがWinodowsのエディタを指定できていないのかもしれない。

追加

ASPOのOptionsで好きなエディタを指定できるようになりました。

[ツール] > [機能拡張マネージャー] > [オプション]で指定できます。

APSO.jpg

上記の図はWindowsの場合。

今はVBAのようにファイルの中に仕込むことができます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0