ドキュメントマクロ

記事
IT・テクノロジー

ドキュメントマクロのインポート

ドキュメントマクロフォルダにパスを通すことで
内部のマクロを自由にインポートできるようになる
パスを通すマクロを 文書を開いた時 のイベントに登録すれば自動化できる
※ 埋め込みマクロ内のフォルダには必ず __init__.py を配置すること
    中身は空でいい
    これがないとパッケージとして機能しないのでインポート時にエラーになる
パスを通すマクロの例
import os, sys, uno

def setup_document_macros(event=None):
    """ドキュメント内に埋め込まれたマクロフォルダにパスを通す。

    Args:
        event: 文書を開いた時のイベント。手動実行も可能
    """
    doc = XSCRIPTCONTEXT.getDocument()
    file_path = uno.fileUrlToSystemPath(doc.URL)

    document_macro_path = os.path.join(file_path, "Scripts", "python")

    if document_macro_path not in sys.path:
        sys.path.append(document_macro_path)
※ 未保存の新規ファイルだとパスを取得できないので
  ファイルを一度保存してから実行する必要がある

マクロのイベント登録


パスの自動追加機能

ない

ドキュメントマクロフォルダのパス

ドキュメントのフルパス/Scripts/python
from pathlib import Path
import uno

ブック = XSCRIPTCONTEXT.getDocument()
ブック_PATH = Path(uno.fileUrlToSystemPath(ブック.URL))

ドキュメントマクロフォルダのパス = str(ブック_PATH / "Scripts" / "python")

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す