PythonでExcelプログラミング入門-8
PythonでExcelプログラミング入門
amazon kindle版を出版しました。
2.1 "Hello World"の表示
(4)MsgBox(メッセージボックス)に表示
VBAで最も、ポピュラーなメッセージボックスに「Hello World」を表示させます。ただし、Pythonから直接EXCELのメッセージボックスは開けないようですので、VBAを操作して、メッセージボックスを開きます。ただし、openpyxlからは、実行できないようですので、win32comを用います。
次に、「開発」タブの「マクロ」を選択します。
そうすると、このような画面が出てきますので、マクロ名をtestとして入力し「作成」をクリックします。
そこに、次のようにプログラムを記述します。
プログラムは、次のようになります。
Sub MainとEnd Subの間にMsgBox("Hello World")を入れます。
Sub test()
MsgBox("Hello World")
End Sub
図の三角マークの実行をクリックすると
(「F5」キーでも表示されます。)
マクロが動作することが分かりました。それでは、Pythonからマクロを操作してみましょう。まず、EXCELを”Book11.xlsm”というファイルネームで保存します。保存場所はG:\excel\Book11.xlsm'とします。
# EXCELマクロを操作するためwin32comをインポート
import win32com.client
# Excelを起動します
book11_ap = win32com.client.Dispatch("Excel.Application")
# エクセルを表示します
book11_ap.Visible = 1
# 指定したEXCELのファイルBook11xlsmを開きます
book11_ap.Workbooks.Open(Filename='G:\excel\Book11.xlsm')
# マクロ名testを指定して実行します。
book11_ap.Application.Run('test()')
# マクロ実行完了後、EXCELのファイルBook11xlsmを保存して閉じる
book11_ap.Workbooks(1).Close(SaveChanges=1)
# 終了します。
book11_ap.Application.Quit()
このプログラムを実行すると、EXCELが起動し、マクロが実行されます。これで、Pythonからマクロを操作することができました。今まで作ってきたマクロの資産を継承することができます。
「OK」をクリックすると、EXCELが終了します。