PyAutoGuiでVBAのユーザーフォームのGUIテストを自動化する!

みなさん,こんにちは。
シンノユウキ(shinno1993)です。

今回から何回かに分けて,PythonのGUI自動化ライブラリ:PyAutoGuiを活用して,VBAのユーザーフォームのGUIテストを自動化する方法を紹介します.具体的な方法を含め,自動化するためのコツなども紹介できたらなと思います.

正直,「誰得?」な部分もありますが,「俺得!」な内容になればいいかなと思っています.なので,若干説明が少ない部分もあるかと思いますが,その点はご了承ください.

初回の今回はユーザーフォームのテストについてと,なぜPyAutoGuiを使うのか,それを使うメリットはなんなのかを紹介したいと思います.

では行きましょう!

VBAユーザーフォームのテストは面倒…

今はスマホアプリやWebアプリなどが全盛の時代.VBAはおろか,Windowsのフォームアプリなども少なくなってきました.実際,私もVBAなどを活用したアプリケーションよりも,スマホアプリやWebアプリの方を多く活用しています.

しかし,残念ながらVBAなどを活用したアプリケーションは存在しますし,ニーズがあるのも確かです.であれば,そういったアプリケーションは開発されることになります.

ただ,VBA,特にユーザーフォームを活用したアプリケーションの開発は面倒です.その理由には多くありますが,GUIテストの面倒さもその一つになるかもしれません.他のWebアプリやWindowsフォームアプリなどの場合はテスト自動化ツールなどが存在しますが,VBAの場合は存在しませんので.

そこで,それをPythonのライブラリ:PyAutoGuiでやってみよう!と思いたって書き始めたのが本連載です.

なぜPyAutoGui?

なぜPyAutoGUIを使うのか.

別にこれを活用しなくても,他に便利なツールがあれば,それを使っても良いでしょう.今流行のRPAのようなものを活用するともっと簡単かもしれません.

PyAutoGui以外,たとえば,VBAでWin32APIを活用して,座標をクリックしたりキーを押したりすることもできます.これを活用したのが以下の記事です:

VBAだけでできますので,Pythonのインストールなども不要で手軽です.

ただし,この場合だと自動化したスクリプトと,クリックやキーを押した際に実行されるスクリプトとは同時に行えません.またExcelの画面への反映も自動化が終了した後になるため,ユーザーフォームを2重・3重に開くような処理には向かないのです.

また,PowerShellのUIAutomationというものもありますが,こちらは私が上手く使いこなせなかったので断念しました.

とまぁこういった理由があって,PyAutoGuiを選んだというわけなのです.

PyAutoGuiの良い点

全て無料で使える!

無料というのは非常に大きいでしょう.各種RPAツールなどは,活用しようとすると非常に高価になる場合があります.その点,PyAutoGuiならばPythonもライブラリも無料で使うことができます.

Pythonで書ける!

同じ処理を書くのなら,VBAで書くよりは,できればPythonで書きたい.VBAが悪いといっているわけではないんのですが,Pythonはシンプルに楽に書けるので,個人的に好きなのです.

画像認識機能も使える!

最も大きな点は画像認識が使えるという所です.予め,Pythonの方で画像を追加しておけば,その画像の座標をクリックするといった処理も可能です.VBAでWin32APIを活用した場合は,この画像認識機能が使えません.後々で紹介していきますが,これが使えるのと使えないのとでは大きな違いがあります.

まとめ

今回はVBAのユーザーフォームのGUIテスト自動化のためにPyAutoGuiを活用するメリットなどを紹介しました.次回以降,実際にユーザーフォームを使いながら少しずつGUIテストの自動化に進んでいきたいと思います.

連載目次

  1. PyAutoGuiでVBAのユーザーフォームのGUIテストを自動化する!現在のページ
  2. PyAutoGUIを始める第一歩と基本的な使い方を紹介します
  3. PyAutoGUIでユーザーフォームの 簡単なGUIテストをやってみる
  4. PyAutoGUIでユーザーフォームのテキストボックスを操作する方法
  5. PyAutoGUIでユーザーフォームのコンボボックスを操作する方法
  6. PyAutoGUIでユーザーフォームのチェックボックスのチェックを全て外す方法|画像認識の活用
  7. PyAutoGUIでユーザーフォームのテストデータをExcelファイルから読み取る方法
  8. PythonファイルをEXEファイル化する「Pyinstaller」の使い方を紹介します
タイトルとURLをコピーしました