ブックの参照#
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']
Note that you usually should use App
as a context manager as this will make sure that the Excel instance is closed and cleaned up again properly:
with xw.App() as app:
book = app.books['Book1']
xw.Book |
xw.books |
|
---|---|---|
新規ブック |
|
|
保存されていないブック |
|
|
(完全な)名前でブックを指定 |
|
|
注釈
Windowsでファイル パスを指定するには、文字列の先頭に r
を付加したraw文字列か、二重バックスラッシュを使用( C:\\path\\to\\file.xlsx
)するようにしてください。
ExcelからPython (RunPython)#
VBA上で RunPython
を使用する場合、呼び出し元のブックを参照するには xw.Book.caller()
を使用します。詳細は "RunPython" でPythonを呼び出す をご覧ください。 Debugging のセクションを読めば、PythonのスクリプトファイルとExcelファイルを都度変更せずに、PythonとExcelでスクリプトを相互に呼び出す方法を理解できます。
ユーザー定義関数(User Defined Functions, UDFs)#
RunPython
とは異なり、UDFの場合は xw.Book.caller()
は必要ではありません。詳細は ユーザー定義関数 (UDFs) をご覧ください。通常は、UDFを呼び出しているrangeオブジェクトを表す引数 caller
を使用することになるでしょう。