【Python】エクセルのマクロを実行する
Pythonからエクセルのマクロを実行するコードです。
Pythonから制御することで既存のVBAコードを活用することができます。
マクロの準備
エクセルファイルに下記のマクロを定義しておきます。
Sub test() MsgBox ("マクロのテスト") End Sub
マクロを実行するPythonのコード
エクセルのマクロを指定して実行するコードです。
ここでは読み取り専用(ReadOnly=1)で開いているため、SaveChanges=1 を指定しても保存されません。
# ---------------------------------------- # モジュールのインポート # ---------------------------------------- import win32com.client # ---------------------------------------- # 変数の設定 # ---------------------------------------- # ファイルパス folder_path = 'C:\\temp\\' macro_file = 'test.xlsm' file_path = folder_path + macro_file # ---------------------------------------- # マクロの実行 # ---------------------------------------- # Excelを起動する app = win32com.client.Dispatch('Excel.Application') # Excel起動時の表示設定 0:非表示 1:表示 app.Visible = 0 # 指定したブックを開く app.Workbooks.Open(Filename=file_path, ReadOnly=1) # マクロ名を指定して実行 app.Application.Run('ThisWorkbook.test') # ブックを保存せずに閉じる app.Workbooks(1).Close(SaveChanges=0) # Excelを終了 app.Application.Quit()
最近のコメント