サービス
サービスを探す
プロ人材を探す
仕事を探す
ブログを探す
ドキュメントマクロフォルダにパスを通すことで
内部のマクロを自由にインポートできるようになる
パスを通すマクロを 文書を開いた時 のイベントに登録すれば自動化できる
※ 埋め込みマクロ内のフォルダには必ず __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")