ブックの参照#
PythonからExcel#
xw.Book
を使えば、最も簡単にブックに接続できます: xw.Book
は接続先のブックを開いているかどうかを全てのExcelインスタンスに対して確認し、もし複数のExcelインスタンスが接続先のブックを同時に開いていればエラーを返します。アクティブなExcelインスタンスのブックに接続するには、 xw.books
を使います(コメント部分は特定のインスタンスを参照する方法):
>>> app = xw.App() # or something like xw.apps[10559] for existing apps, get the available PIDs via xw.apps.keys()
>>> app.books['Book1']
注意: App
はコンテキスト マネージャーで使用するようにしてください。これにより、確実かつ適切にExcelインスタンスを閉じてクリーンアップできます。
with xw.App() as app:
book = app.books['Book1']
xw.Book |
xw.books |
|
---|---|---|
新規ブック |
|
|
保存されていないブック |
|
|
(完全な)名前でブックを指定 |
|
|
注釈
Windowsでファイル パスを指定するには、文字列の先頭に r
を付加したraw文字列か、二重バックスラッシュを使用( C:\\path\\to\\file.xlsx
)するようにしてください。
ExcelからPython (RunPython)#
To reference the calling book when using RunPython
in VBA, use xw.Book.caller()
, see
"RunPython" でPythonを呼び出す.
Check out the section about デバッグ to see how you can call a script from both sides, Python and Excel, without
the need to constantly change between xw.Book.caller()
and one of the methods explained above.
ユーザー定義関数(User Defined Functions, UDFs)#
RunPython
とは異なり、UDFの場合は xw.Book.caller()
は必要ではありません。詳細は ユーザー定義関数 (UDFs) をご覧ください。通常は、UDFを呼び出しているrangeオブジェクトを表す引数 caller
を使用することになるでしょう。