Home > コンピュータ > LibreOffice > マクロ

ベクトルドロー・レベルゼロ

LibreOfficeでマクロを使う

広告

新規作成日 2017-11-22
最終更新日

マクロとは

アプリケーションで、特定の操作や手順をプログラムとして保存し、呼び出すことで、特定の操作や手順を実行する機能のことです。

Windowsアプリケーションでは、Windows向けのプログラム開発環境にライブラリが提供されていることから、VBAやC#が使われていることが多いです。複数のOS上で提供されるクロス・プラットフォーム環境のアプリケーションでは、そのライブラリが利用できないことから、独自の言語が使われています。

LibreOfficeでは、ツールメニューの中に、マクロの項目があり、マクロの管理を見ると、記述する言語に「LibreOffice Basic」、「BeanShell」、「Javascript」、「Python」が利用できることがわかります。

LibreOfficeのマクロで利用できる言語

LibreOfficeでは、マクロ環境にLibreOffice_Basic(StarBasic)が使われています。そして、他の開発言語からLibreOfficeを操作できるAPIも提供されています。

マクロを利用することで、複数の操作が必要な作業を、マクロを実行するだけで処理することができます。これにより、作業の軽減と間違いを低減することが可能になります。さらに、作業に習熟していない人に、作業を移譲することも可能になります。

一方で、マクロの作成には、手間と時間がかかりますが、実際にマクロを使用して処理する作業は、マクロを使う人とは別の人が行うことから、マクロを作成する人の作業と能力を軽視する人もいます。他人が利用するマクロを作成する場合は、マクロを作成する人が、職場でどのような立ち位置を取るかをよく考えマクロを公開するか、秘匿するかを判断することが大切になります。

実行環境

私は、ja-jpロケールのWindows 10 64 bit環境で、64 bit版のLibreOffceを使用しています。私が、他の環境で作業することは、まず、ありません。

LibreOfficeは、Apache OpenOffice から、分岐したプロジェクトです。LibreOfficeは、Apache OpenOfficeから、独立して開発されており、時間がたつに連れ、API、機能、およびユーザー・インターフェイスは、それほど類似しなって行くものと思われます。

そのため、このサイトで紹介するマクロが、Apache OpenOfficeで、動作しない可能性があります。

StarBasicとVBA

LibreOfficeとApache OpenOfficeのマクロは、StarBasicから進化しています。Microsoftが、提供するVBAとは、異なるものであることに注意してください。

LibreOfficeとApache OpenOfficeでは、Microsoft Officeから移行するユーザーの利便性を考え、互換性に対する配慮がされています。しかし、基本的には、LibreOfficeとApache OpenOfficeのマクロは、Microsoft OfficeのVBAとは、異なるものであること考える必要があります。

このため、StarBasicとVBAは、個別に理解する必要があります。

VBA互換モード

初期設定の状態では、Microsoft Officeで作成したVBAマクロは動作しない場合があります。

LibreOfficeでVBAマクロを実行する状況には、大きくは、次の2つの場合が考えられます。Microsoft Officeで作成したドキュメントにマクロが含まれている場合、LibreOfficeで作成した文書に、VBAスタイルでマクロを記述しようとする場合です。

LibreOfficeで作成した文書に、VBAスタイルでマクロを記述しようとする場合には、コンパイラオプションを指定しないと実行することができません。

マクロを使用する前に行って置いたほうが良い設定

LibreOffice Basicのコンパイラ・オプション

LibreOfficeで、マクロを作成する際に、利用が推奨されるコンパイラ・オプションを紹介します。

コンパイラ・オプションは、モジュールごとに指定できます。

LibreOffice Basicの情報

LibreOfficeとApache OpenOfficeのマクロは、StarBasicから進化しています。Microsoftが、提供するVBAとは、異なるものであることに注意してください。

LibreOfficeのマクロのドキュメントとインターネット上の情報

LibreOfficeでマクロを使おうとすると、情報がどこにあるか探すところから大変な思いをします。

そして、誰でも最初は、情報の存在するインターネット上のURLを集めるところから始めることになります。 わたしも、例に漏れず、インターネット上のURLを集めるところから始めました。 検索エンジンだけでは、効率的に探すことが難しいところに注意が必要です。

LibreOfficeのドキュメントの作成は、あまり力が入っていないようなので、マクロ開発の情報は、OpenOfficeのドキュメントも合わせて探す必要があります。

予備知識

マクロプログラミングを始める前に、知っておいたほうがいいと思われる予備知識的な内容

  1. LibreOfficeで、ドキュメントの中に存在するマクロの内容を確認する

    ドキュメントの中にあるコードの内容を確認する

  2. LibreOffice Basic Helpを利用する

    LibreOffice BasicのコマンドやAPIで不明な機能は、LibreOffice Basicのヘルプ・サイトから、確認する必要があります。

マクロを作成する

LibreOffice Basicの基礎知識

  • LibreOffice Basicの基礎知識

    LibreOffice Basicを使ってマクロを記述する際にあらかじめ知っておいたほうよいと思われることを中心に確認していきます。

  • LibreOffice Basicのデータ型

    ほとんどの場合、使用するデータ型は限られているので、特に意識する必要もありません。たまに、参照する必要があるときがあります。意図した結果が得られない場合は、確認してみましょう。

  • 変数を明示的に宣言する

    Basic では、変数を使う際、予め宣言する必要はありません。しかし、使用する変数を宣言するとコードが見やすくなると言われています。

  • LibreOffice Basicの演算子

開発者コミュニティ

外部アプリケーションからLibreOfficeを操作する

LibreOfficeは、「Java」,「C#」,「C++」,「Python」から操作できる仕組みが用意されています。これらの言語を使える場合は、マクロからではなく、これらの言語から自動化する方法も選択できるようです。

LibreOfficeのSDKをダウンロードして、インストールする。

外部アプリケーションからLibreOfficeを操作するためには、SDKをダウンロードして、インストールします。そして、その中にあるライブラリを使用してプログラムを作成します。

サンプルプログラム

LibreOffice Witer マクロを作成する

Writerで使用するマクロは、主に文書の入力作業の軽減と推敲の支援を目的に作成します。

「カーソル位置」、「選択範囲」を変更するマクロは、主に文書の入力時に使用します。何度も同じことを繰り返す複数の操作で行う入力作業をマクロで行うことで、作業時間と作業負荷を軽減します。

「検索で一致した範囲」を変更するマクロは、主に完成した文書に使用します。見出しのスタイルの変更や用語の統一、スペルミスの修正などを行う際に使用します。

LibreOffice Calcをマクロで操作する

Officeアプリケーションのマクロの情報は、表計算ソフトについての情報が最も多いです。

LibreOffice Calcも同様に、インターネット上のマクロに関する情報は、Calcのものが多く紹介されています。

そのため、LibreOfficeマクロの使い方の情報を調べるには、Calcのマクロの情報から集めたほうが、集めやすいです。

このエントリーをはてなブックマークに追加