マイマクロ

記事
IT・テクノロジー

自作のライブラリをインポートする

(マイマクロ直下のマクロから利用する基本設定 )
LibreOfficeには「マイマクロ直下のモジュールのマクロを実行すると、同フォルダ内にある
pythonpath フォルダを検索パスに自動追加する」という機能がある
つまり、マイマクロフォルダ内に pythonpath という名前のフォルダをつくり、
その中に既存のライブラリと名前が重ならない名前のモジュールやパッケージを
入れておけば import できるようになる
※ このパスの自動追加は マイマクロ/サブフォルダ/モジュール.py など
  他のフォルダのマクロから実行したときは発動しない

サブフォルダ内や埋め込みのマクロからインポートする

(アプリ起動時にパスを開通させる)
アプリ起動時のイベントにマイマクロ直下のモジュールのマクロを登録して実行させる
これにより、アプリを終了するまで pythonpath フォルダにパスが通ったままになる
実行するマクロの処理内容は何でもいい
ex) 登録するマクロの例 (マイマクロ/boot.py)
def init(e):
    pass

マイマクロフォルダのパス

Linux, macOS
$HOME/.config/libreoffice/4/user/Scripts/python
Windows
%APPDATA%\LibreOffice\4\user\Scripts\python    
クロスプラットフォーム
import os, uno

ctx = uno.getComponentContext()
ps = ctx.ServiceManager.createInstanceWithContext("com.sun.star.util.PathSubstitution", ctx)

USER_URL = ps.getSubstituteVariableValue("$(user)")
USER_PATH = uno.fileUrlToSystemPath(USER_URL)

マイマクロフォルダのパス = os.path.join(USER_PATH, "Scripts", "python")

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら