見出し画像

VBA・VBSでExcel操作をオススメする理由

事務の現場での業務自動化が急務として今盛んにRPAやらローコード、ノーコードの話題が出ています。しかし、経理や給与計算といった事務の現場でこれらを導入するには障害があるだけでなく、中には悪質な事例もあるため、ここでまとめておこうと思います。

RPAでExcel操作

昔よりだいぶマシになったとは言え、各種RPAツールで、Excelの操作をするに当たって、いわゆる「マウス操作を記録した操作の再現」をよく見かけます。
完全に画像認識や画面のXYの座標認識で、操作を模倣してるやり方でRPAを組んでるケースが非常に多く見受けられます。

しかしこれ、非常に誤作動や誤認識が多く、確実性がVBAやVBSに遥かに劣る上に「動作が非常に遅い」。直接ExcelのVBAのように命令を送ってるならばともかく、遅くて不確実、そんなものに年間何十万円も払うというのは、少なくとも事務の現場で求められてる「正確性と速さ」からはかけ離れたソリューションです。

マクロの記録で作ったほうが早くね?っていう話にしかなりません。そのRPA本当に必要ですか?

PythonでExcel操作

最近、やたらとTwitter上などで「駆け出しエンジニア」やらスクール出ていきなりフリーランスな方々の間で、「PythonでExcel業務を自動化」というツイートを目にする事がある。

さらに言えばそれで案件下さいといった内容も。個人的にはこれは「全くオススメ出来ない」というか、「そもそも出来ない」と断言しておく。

理由は簡単で、日本の情シスと現場の管理に於いて「Pythonを別途インストールして使わせる」なんてまず許さない。しかもその内容がExcel操作に限るものならば尚更、VBAやVBS使えという話にしかなりません(わざわざPythonでやらせる理由が無い)。

個別にPython環境インストールする手間、脆弱性監視の為の仕事も増え、やってることがVBAの下位互換。

更に言えば利用してるライブラリによってはExcelファイルが壊れたりします(公式のライブラリじゃないのだから当然)。壊れるだけじゃなく、ライブラリによって書き方が異なるので、継続性(引き継ぎ)にも問題が生じる。これらライブラリはアプリケーションからExcelファイルを読み書きするのが目的のものであって、Excelの業務を自動化する為のものではありません。よって、レイアウトの破壊なども普通に起きます。

Pythonの学習コストはVBSよりも高いというのも付け加えておく。資料の豊富さもVBAとは比較にならないほど少ない。

こういった現場の一般常識をすっ飛ばして、自分がPythonエンジニアになりたいからといって、Excel操作というわかりやすいネタでお仕事頂戴は、かなりオカシナ話でしかありません。

最低でもコーポレートの現場で修行くらい積んでから事務自動化のフリーランスはやっていただきたいもの。

VBSでExcel操作

上記でわざわざ、RPAやらPythonの話題を出してるのには、動作が遅いであったり不確実であったり、そもそもPythonという別環境用意するという事へのアンチテーゼというだけでなく

「これらはExcel業務自動化で重要なテーブルの操作」が出来ないという点。

テーブルやPowerQueryは現代事務職の人間ならば身につけて置かなければならない必修科目です。が、これらのRPAツールやPythonライブラリの多くはテーブルの操作が全く出来ないばかりか、場合によっては書式を破壊します(基本、セルの読み書き程度しか出来ない為)

さらに言えば、そこそこの作業についてはPower Queryでほぼ自動化が実現できるので、PythonがどうとかRPAがどうとか、出番自体がありません。これ知らない人がちょっと多すぎ(もうだいぶ前に実装された機能であるにも関わらず、中級で勉強やめちゃう人多いからね)

VBAやVBSはExcelを操作するメソッドとしてこれらテーブルやPower Queryにももちろん対応してる。殆どの操作を実現できるわけで、アレが無いコレが装備されていないと、RPAやらPythonで無理くり事務の自動化をするのは正直、愚の骨頂かなと。

もともとVBAやVBSは事務方向けに作られた優しいBasicをベースとした言語であり、割とローコード。ガッツリ書くこともできるけれど、問題なのは、勉強はしたくない⇒業務は自動化したいは、都合が良すぎるだけじゃなく、将来あなた自身が会社から不要と言われるのではないかと。

事務方が事務だけやってればいい時代はもう終わってます。ので、VBA・VBSからまず始めましょう。

詳細や応用編はこちら


この記事が気に入ったらサポートをしてみませんか?