「win32com python ブック名」
といった検索キーワードでアクセスがありました。
Pythonの外部ライブラリpywin32・win32com.clientを使って、Excelのブック名を取得するコードを調べていらしたのでしょう。
アクティブなExcelブック名を取得する
Excelのブックが1つ開かれている状態で、以下のスクリプトを実行すると、そのブック名が出力されます。
xl_app = win32.GetObject(Class='Excel.Application')
print(xl_app.ActiveWorkbook.Name)
Excel VBAではない、Access VBA・Word VBA・PowerPoint VBAなどの場合、以下のコードでアクティブなExcelブック名がイミディエイトウィンドウに出力されます。
Dim xl_app As Object Set xl_app = GetObject(Class:="Excel.Application") Debug.Print xl_app.ActiveWorkbook.Name
win32com.clientのコードは、このVBAのコードに相当します。
Excelライブラリが公開しているプロパティを、Pythonのwin32com.client経由で利用するか、VBAから使用するかの違いです。
もちろんExcel VBAであれば、
Debug.Print ActiveWorkbook.Name
だけで済みます。
開かれている全ブック名を取得する
複数のExcelブックが開かれている状態で、以下のスクリプトを実行すると、全ブック名が出力されます。
xl_app = win32.GetObject(Class='Excel.Application')
for xl_book in xl_app.Workbooks:print(xl_book.Name)
VBAからの場合、以下のようなコードで全ブック名がイミディエイトウィンドウに出力されます。
Dim xl_app As Object Set xl_app = GetObject(Class:="Excel.Application") Dim xl_book As Object For Each xl_book In xl_app.Workbooks Debug.Print xl_book.Name Next
もちろん、Pythonのwin32com.clientを経由して取得するか、VBAから取得するかの違いです。
こちらもExcel VBAであれば、
Dim xl_book As Workbook For Each xl_book In Workbooks Debug.Print xl_book.Name Next
で済みます。
Home » Python » pywin32・win32comの使い方 » pywin32・win32comを使ってExcelのブック名を取得するには