LoginSignup
0
6

More than 1 year has passed since last update.

Pythonを使ってExcelの操作 PythonからExcelマクロを実行する

Last updated at Posted at 2022-02-19

今回はPythonにpywin32ライブラリを入れてWindows上のPythonからExcelのマクロを実行させてみた。

やったことは次の通り。

###(1) WindowsのPython環境にpywin32ライブラリをインストール
###(2) Excelマクロ有効ブック(xlsm)を用意する
  今回は事前に簡単なマクロを記載したExcelマクロ有効ブック(xlsm)を用意した。
  マクロは次の通り。
   ①メッセージ付きのポップアップウインドウを開く
   ②シートを追加してセルA1に文字を入力

###(3) Pythonで実行するExcel操作
  ①Excelアプリケーションを起動する
  ②Excelウインドウを表示する
  ③マクロ有効ブックを開く
  ④マクロを実行
   1.標準モジュールmodule1のtest1マクロを実行
      (ポップアップウインドウ)
   2.標準モジュールmodule2のtest2マクロを実行
      (シートを追加してセルA1に文字を入力)
  ⑤ファイルを保存してブックを閉じる
  ⑥Excelアプリケーションを終了する

###(4) Pythonコードを書く
###(5) Pythonを実行する

では実際にやってみる。詳細内容は下記の通り。

###■WindowsのPython環境にpywin32ライブラリをインストール

コマンドプロンプトを開きインストールする。

>pip install pywin32

###■Excelマクロが有効なブックを事前に作成しておく

【ファイル名】 excel03.xlsm

icon.png

###■Excelマクロを事前に作成しておく

標準モジュールの配下にモジュールを追加してそれぞれマクロを作成する。

①Module1 test1マクロ(ポップアップウインドウを表示)
module1.png

②Module2 test2マクロ(シートを追加してセルA1に文字列Testを入力)
module2.png

###■Pythonコードを書く

【ファイル名】 excel03.py

import win32com.client                                          #Win32comモジュールを呼び出す

excelapp = win32com.client.Dispatch('Excel.Application')        #Excelアプリケーションを起動する
excelapp.Visible = 1                                                                                       #Excelウインドウを表示する
excelapp.Workbooks.Open(r"C:\Users\ishimatsu\Desktop\excel03.xlsm")  #rを追加してパス名をrawデータとして読み込みマクロ有効ブックを開く
excelapp.Application.Run('Module1.test1')                       #標準モジュールModule1のマクロtest1を実行する
excelapp.Application.Run('Module2.test2')                       #標準モジュールModule2のマクロtest2を実行する
excelapp.Workbooks(1).Close(SaveChanges=1)                      #ファイルを保存してブックを閉じる
excelapp.Application.Quit()                                     #Excelを閉じる

###■Pythonを実行

>python excel03.py

###■実行結果

(1)Excelが起動してポップアップウインドウが表示された
result1.png

OKボタンを押すとブックが閉じるプログラムなので、再度Excelを起動してBookを開く。

(2) シートが追加され、A1に文字列Testが入力された
result2.png

実際にPythonでやってみたかったExcelマクロの操作ができている。

**前の記事 **
Pythonを使ったExcelの操作  PythonでExcelの表を編集する


0
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
6