橋平礼の電験三種合格講座

過去50年分以上の電験三種の問題を解いて分かった、電験三種は今も昔も変わりません。過去問を解きながら合格を目指しましょう。

MENU

PythonでExcelプログラミング入門-8

PythonExcelプログラミング入門

amazon kindleを出版しました。


2.1 "Hello World"の表示
(4)MsgBox(メッセージボックス)に表示

 VBAで最も、ポピュラーなメッセージボックスに「Hello World」を表示させます。ただし、Pythonから直接EXCELのメッセージボックスは開けないようですので、VBAを操作して、メッセージボックスを開きます。ただし、openpyxlからは、実行できないようですので、win32comを用います。

 次に、「開発」タブの「マクロ」を選択します。

f:id:GO-AHEAD:20201120150323p:plain

そうすると、このような画面が出てきますので、マクロ名をtestとして入力し「作成」をクリックします。

f:id:GO-AHEAD:20201120150356p:plain

そこに、次のようにプログラムを記述します。

f:id:GO-AHEAD:20201120150425p:plain

 

プログラムは、次のようになります。
Sub MainとEnd Subの間にMsgBox("Hello World")を入れます。

Sub test()

MsgBox("Hello World")

End Sub

図の三角マークの実行をクリックすると

f:id:GO-AHEAD:20201120150606p:plain


(「F5」キーでも表示されます。)

f:id:GO-AHEAD:20201120150622p:plain



マクロが動作することが分かりました。それでは、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からマクロを操作することができました。今まで作ってきたマクロの資産を継承することができます。

f:id:GO-AHEAD:20201120150721p:plain



「OK」をクリックすると、EXCELが終了します。