やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

LibreOfficeを学習したい

 特にマクロ。

発端

 座席表を作りたい。シェル版はもう作った。今度は実際の生徒を入力できるツールが欲しい。

要件概要

  1. クラス名簿を入力する
  2. 名前の読み順に自動でソートして出席番号を割り振ってくれる
  3. さらに「席替え」ボタンで座席表を作ってくれる

 他にも以下のような機能があると嬉しい。

  • 「漢字」から「読み」を自動で推測し入力して欲しい
  • 「性別」があれば男女で色分けしたい
  • 席替えの配置にはいくつかの変数を適用させたい
    • 出席番号順(A. 左上から右下へ B. 右上から下左へ)
    • ランダム
    • 男女交互
    • 男女分別

なぜLibreOffice calcか

  • シェル版では動的に名前の変更や席替えができない
    • JavaScriptで実装することになる
      • WebAppを作る?
  • LibreOffice calcも勉強してみたい
    • 名前データを手作業でTSVに整形するときにもっと自動化したかったが、知識がなくてできなかった
  • なら先にLibreOffice calcを学習して座席表ツールを作ろう
    • 応用範囲も広そう

1. LibreOfficeソフトウェア一覧

アプリ 概要
Base データベース
Calc 表計算
Draw フローチャート等の図形描画。
Impress プレゼン用スライド。
Math 数学の公式や方程式。
Writer 文書。

1. インストール

sudo apt -y install libreoffice libreoffice-l10n-ja libreoffice-help-ja

f:id:ytyaru:20200920092614p:plain f:id:ytyaru:20200920093316p:plain

 バージョンは6.1.5.2だった。

 libreoffice-script-provider-pythonはインストール済みになっていた。

$ apt search  libreoffice-script-provider-python
libreoffice-script-provider-python/testing,now 1:6.1.5-3+rpi1+deb10u6+rpt1 all [インストール済み、自動]
  Python script support provider for LibreOffice scripting framework

2. マクロ

 マクロとは、calcを操作する簡易言語のこと。これを使って作業を自動化できる。

言語

 使用できるマクロ言語は4種。

 確認方法は以下。

  1. LibreOffice calc を起動する
  2. メニュー→ツールマクロマクロの管理をマウスオーバーする

f:id:ytyaru:20200920092840p:plain f:id:ytyaru:20200920092956p:plain

3. SDK

 今回は対象外。calcを使わず、プログラミング言語からcalcを操作するためのライブラリ。Java, C++

4. セキュリティ

 マクロを実行できるようセキュリティを下げる。

  1. LibreOffice calc を起動する
  2. メニュー→ツールオプションをクリックする
  3. ダイアログの左にあるツリーからLibreOfficeセキュリティをクリックする
  4. ダイアログの右にあるマクロセキュリティボタンをクリックする
  5. セキュリティレベルタブ内のラジオボタンをクリックする
  6. OKボタンをクリックする

 これでマクロ実行時、信頼されていないソースからのマクロでも、確認ダイアログが表示される。そのときマクロの有効化ボタンをクリックすればマクロが実行できるようになる。

所感

 Calcを使うことしか考えていなかったが、最初にBaseを使ってみたい。SQLite3と連携したい。

情報源

LibreOfficeについて

対象環境

$ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux