ブックの参照

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

新規ブック

xw.Book()

xw.books.add()

保存されていないブック

xw.Book('Book1')

xw.books['Book1']

(完全な)名前でブックを指定

xw.Book(r'C:/path/to/file.xlsx')

xw.books.open(r'C:/path/to/file.xlsx')

注釈

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 を使用することになるでしょう。