マクロ/Pythonガイド/はじめに

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Macros/Python Guide/Introduction and the translation is 100% complete.


Return to Index

Other languages:
English • ‎español • ‎français • ‎italiano • ‎русский • ‎日本語


はじめに

PyUNOとは

LibreOfficeでは、いくつかのインタープリタ言語でマクロを書くことができますが、その中の一つがPythonです。PyUNOは、Pythonを使ってLibreOfficeのAPI(Application Programming Interface)にアクセスするためのコンポーネントです。

インストール

Ubuntu 18.04 LTSなどのオペレーティングシステムでは、追加のOSパッケージをインストールする必要があります。パッケージは Ubuntuでは、libreoffice-script-provider-pythonと呼ばれ、scriptproviderforpython.rdb (XMLメタデータ) や pythonscript.py (Pythonインフラストラクチャ) などのファイルが含まれています。

  • Ubuntu 18.04以上の場合
sudo apt install libreoffice-script-provider-python

Pythonマクロが利用可能かをテストする

Writerで文書を新規作成します。メニューから ツール ▸ マクロ ▸ マクロを実行... を選択すると「マクロセレクタ−」ダイアログが開きます。ライブラリセクションからLibreOfficeのマクロ ▸ HelloWorldを選択、マクロ名セクションからHelloWorldPythonを選択して、実行ボタンをクリックします。

この結果が表示されれば、システムはPythonマクロが実行できます。

テスト用Pythonマクロ

マクロはどこに保存されますか?

ユーザープロファイルフォルダー/ユーザーのみが利用できるマクロ

GNU/Linux
/home/USER/.config/libreoffice/4/user/Scripts/python
Windows
%APPDATA%\LibreOffice\4\user\Scripts\python
OSX
~/Library/Application Support/LibreOffice/4/user/Scripts/python/

LibreOfficeのディレクトリ/すべてのユーザーが利用できるマクロ

  • GNU/Linux
    • /usr/lib/libreoffice/share/Scripts/python/

このパスはデフォルトです。カスタムインストールした場合は異なります。フォルダーが存在しない場合は、大文字に注意をして作成する必要があります。

ドキュメント内

  • ODFファイルは、実際にはzipファイルなので通常のzipファイルを展開するように、このファイルを展開できます。ルートに、
    Scripts/python/
    フォルダーを作成し、Pythonファイル
    mymacros.py
    をその中にコピーします。
  • ご覧ください。
 myfile
 |   ...
 ├── META-INF
 │   └── manifest.xml
 ├── Scripts
 │   └── python
 │       └── mymacros.py
 ...
  • META-INFフォルダー内のmanifest.xmlファイルを編集し、閉じタグ</manifest:manifest>の直前に行を追加します。
 <manifest:file-entry manifest:full-path="Scripts/python/mymacros.py" manifest:media-type="" />
 <manifest:file-entry manifest:full-path="Scripts/python/" manifest:media-type="application/binary" />
 <manifest:file-entry manifest:full-path="Scripts/" manifest:media-type="application/binary" />
  • 最終的には以下のようなファイルになります。
   <?xml version="1.0" encoding="UTF-8"?>
   <manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0">
    <manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.spreadsheet"/>
    <manifest:file-entry manifest:full-path="Thumbnails/thumbnail.png" manifest:media-type="image/png"/>
    <manifest:file-entry manifest:full-path="settings.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="manifest.rdf" manifest:media-type="application/rdf+xml"/>
    <manifest:file-entry manifest:full-path="Configurations2/" manifest:media-type="application/vnd.sun.xml.ui.configuration"/>
    <manifest:file-entry manifest:full-path="meta.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="styles.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="Scripts/python/mymacros.py" manifest:media-type="" />
    <manifest:file-entry manifest:full-path="Scripts/python/" manifest:media-type="application/binary" />
    <manifest:file-entry manifest:full-path="Scripts/" manifest:media-type="application/binary" />
   </manifest:manifest>
  • 再度、zipでフォルダーを圧縮してください。注意: ひとつ上のフォルダーをzip圧縮するのではなく、フォルダーの中身をzip圧縮してください。


Return to Index