このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【Python】Excelマクロを実行する方法を紹介

2024年5月22日

今回はPythonからExcelマクロを実行する方法を紹介をします。

Pythonで実行するためにはpywin32もしくはxlwingsライブラリを利用します。

また、この方法を使用するには、Excelがコンピューターにインストールされている必要があります。

pywin32ライブラリでExcelマクロを実行

import win32com.client

# Excelアプリケーションを起動する
excel = win32com.client.Dispatch('Excel.Application')

# エクセルを表示する設定(0にすれば非表示で実行される)
excel.Visible = 1

# マクロブックを開く
excel.Workbooks.Open(Filename=r'マクロブックのパス')

# マクロを実行する
excel.Application.Run('プロシージャ名')

# ブックを保存して閉じる
excel.Workbooks(1).Close(SaveChanges=1)

# 必要に応じてExcelアプリケーションを終了する
excel.Application.Quit()

pywin32ライブラリでExcelマクロを実行するためにはこのようなコードを書きます。

Sub プロシージャ名()
    MsgBox "成功"
End Sub
pywin32ライブラリでExcel VBAを実行

マクロブックにこのようなプロシージャ名を用意しておき、Pythonのプログラムを実行すると、このようにメッセージボックスが表示されます。

# マクロを実行する
excel.Application.Run('プロシージャ名()')

マクロを実行しているのはApplication.Runメソッドで、この引数にプロシージャ名を指定して実行します。

xlwingsライブラリでExcel VBAを実行

import xlwings as xw

# Excelアプリケーションを起動する
excel = xw.App(visible=True)

# マクロブックを開く
wb = excel.books.open(r'マクロブックのパス')

# マクロを実行する
macro= wb.macro('プロシージャ名')
macro()

# ブックを保存して閉じる
wb.save()
wb.close()

# 必要に応じてExcelアプリケーションを終了する
excel.quit()

xlwingsライブラリでExcelマクロを実行するためにはこのようなコードを書きます。

# マクロを実行する
macro= wb.macro('プロシージャ名')
macro()

マクロを実行しているのはこの箇所で、一旦wb.macroメソッドを実行し、その後にmacro()を実行します。

Python

Posted by やろまい