Home » Python » xlwingsの使い方 » xlwingsではExcel VBA的なコードでもSheetを取得できる

xlwingsではExcel VBA的なコードでもSheetを取得できる

動作検証バージョン:Windows 10 + Python 3.7.3 + xlwings 0.15.5

OpenPyXLで最後・右端のシートを取得するコードについて記事を書きました。

xlwingsでも、似たコードでシートを取得できます。

[スポンサードリンク]

xlwingsで最後・右端のシートを取得する

Cドライブのtempフォルダーに、複数のワークシートが存在するfoo.xlsxファイルを用意しておいて、以下のスクリプトを実行すれば、最後尾のシート名が出力されます。

import xlwings

wb = xlwings.Book('C:\\temp\\foo.xlsx')
ws = wb.sheets[-1]
print(ws.name)

xlwingsではExcel VBA的なコードでSheetを取得できる

上記コードの検証中に、xlwingsの場合、Excel VBA的なコードでもSheetオブジェクトを取得できることに気がつきました。

import xlwings

wb = xlwings.Book('C:\\temp\\foo.xlsx')
ws = wb.sheets(1)
print(ws.name)

上記のスクリプトを実行すると、先頭のシート名が出力されます。

Python的なコードで先頭シートを取得するのは、
  ws = wb.sheets[0]
であるのに対し、Excel VBA的なコードの場合は
  ws = wb.sheets(1)
である点には注意が必要です。

Excel VBAで、Sheets(0)やSheets(-1)では実行時エラーが発生するのと同様、xlwingsでsheets(0)やsheets(-1)で例外が発生します。

xlwingsではExcel VBA的に書けるに過ぎない

上記のとおり、
  ws = wb.sheets(1)
で先頭のsheetを取得できますが、これはExcel VBA的に書けるようにxlwingsが実装されているに過ぎません。

Excel VBAの場合は、Sheets(1)をSheets.Item(1)と書くこともできますけれど、xlwingsの場合、
  ws = wb.sheets.Item(1)
  ws = wb.sheets.item(1)
いずれもAttributeErrorが発生します。

最終更新日時:2019-04-26 10:07

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsではExcel VBA的なコードでもSheetを取得できる

「xlwingsの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.