034 PyVISAとxlwingsのパッケージを使ってExcelから測定機器をコントロールする

2022/04/10

その他/雑談

t f B! P L

本ブログでは,026 PyVISAとExcelファイルで測定機器をコントロールするから,033 測定機器をコントロールするためのExcelファイルの読み書き時間まで,PyVISAパッケージを使って測定機器をコントロールするために,Pythonopenpyxlパッケージを使ってExcelファイルを読み書きする方法を紹介してきました.

一方,ExcelVBA(Visual Basic for Application)でマクロを作成し,測定機器をコントロールする方法もあります(そのようなトレーニングコースは今でも募集されています).

両者は,SCPIコマンドを使って測定機器をコントロールするのは同じですが,SCPIコマンドを送受信するのが,
    PyVISAパッケージを使ったPythonスクリプト
    ExcelVBAマクロ
という根本的な違いがあります.

確かに,ExcelVBAマクロで測定機器をコントロールする方法だと,PythonC#などの開発環境を前もってインストールする必要はなく,Excelを開いて,そのままVBAマクロを作成すれば良く,Excelシートボタンを配置して,そのボタンを押下すれば,作成したVBAマクロが実行され,測定機器をコントロールし,測定機器から取得したデータを,Excelシートに出力することができます.

但し,作成するVBAマクロが数十行に収まる程度であれば良いのですが,そのうち,だんだんと行数が増えてくることになります.VBAマクロは本来,Excelの操作を自動化するために開発されたものであって,測定機器をコントロールするなどのシステム用途への開発は想定されていません(全く向いていません).

ExcelVBAで測定機器をコントロールするマクロを作ってしまうと,作ったマクロを使うぶんには良いのですが,マクロメンテナンス(不具合に対処する,機能を変更する etc.,)する段階になると,いきなり問題が表面化します.

一般的に,個人やグループが社内で作成したExcelVBAマクロを,別の人やグループが引き継げなくなってしまう(VBAマクロの内部処理を解読できない)ケースは,色々な職場で発生しています(いわゆるExcelマクロ地獄です).VBAマクロを作った本人でされ,時間が経つと,自らメンテナンスできなくなってしまうことも,珍しくありません.

よって,本ブログでは,
    ExcelのVBAを使って測定機器をコントロールするマクロを作成すべきでない
と心底思っています(ExcelVBAだけは避けるべきです).

次の投稿で紹介する,xlwingsパッケージを使えば,ExcelからPythonスクリプトを実行することができます.すると,xlwingsPyVISAパッケージを使えば,ExcelVBAマクロと同じように,Excelから測定機器をコントロールするPythonスクリプトを作ることができるようになります.
(Excelのボタンを押下すると,Excelシートのデータを読み込んで,測定機器をコントロールし,測定機器から得たデータを,Excelシートに書き込むようなことができるようになります)

これであれば,測定機器をSCPIコマンドでコントロールする処理部分は,Pythonスクリプトで作成するので,たとえ処理部分が数十行を超えるようになったとしても,ExcelVBAマクロよりも,格段にメンテナンスし易い,実用的なシステムを作ることができます.


このブログを検索

アーカイブ

自己紹介

C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.

QooQ