西暦2000年問題とメリッサ
1999年、わたしが勤めていた会社の社内システムでいちばんの関心事は、Y2K(西暦2000年)問題でした。会社のメインフレームは、COBOLでコーディングされていましたが、年を定義(IDENTIFICATION DIVISION)するテーブルは、西暦の下2桁しか保持していませんでした。基幹業務システムの運用を担っていたエンジニアは、テーブルとプログラムの改修作業に追われていました。
幸い!?わたしはオープン系を担当していたので、Y2K問題に直接関与することはありませんでした。しかし、別な問題が降りかかりました。
メリッサ(Melissa)と呼ばれるマクロウイルスの脅威です。
このウイルスは、Ms‐Office Wordのマクロの脆弱性を狙ったウイルスです。電子メールの添付ファイルに、メリッサに感染したWord文書を開くと、自分が使っているOutlookのアドレス帳から、50人の宛先に感染したファイルを添付してメールを送り付けます。
当時、わたしはMicrosoft Exchange Serverを全国の事業拠点に導入して、全従業員にOutlookを使った電子メールの活用を促す立場でした。メリッサの問題は深刻だと思いました。
社内ネットワークとセキュリティを統括するチームからは
Outlookのアドレス帳を使うのをやめて、Windows標準のアドレス帳を使うべきだ。
という意見が出ました。そこで、従業員向けの説明会が行われました。しかし、社員のコンピュータウイルスの脅威に対する警戒感は低く、アドレス帳の全面的な移行をすることは出来ませんでした。会社のITに対する関心事の一丁目一番地は、やはりY2K問題でした。そもそも経営層は、電子メールを業務で利用することに対する懐疑的な見方が根底にありました。
問題があるなら、電子メールなんてやめればいい。電話をすればいいだけのことだ。それよりも、2000年になったら、工場も事務処理も止まると言われている問題の解決を急ぎなさい。
というのが、経営陣の本音だと思いました。マクロとVBAとRPA
ところで、マクロはMicrosoftのOficce製品を利用されている人には、馴染み深い言葉ですが、エンジニアのなかには、マクロとVBA(Visual Basic for Applications)の違いが分かっていない方もいるようです。マクロとVBAはコインの表裏の関係に近いです。マクロはMicrosoft Office製品の操作を自動化するための機能を指す言葉です。VBAはMicrosoftの提供するプログラム言語です。Excelで「マクロの記録」をすれば、自動的にVBAが記録されます。また、マクロを実行したら、VBAが呼び出され、処理を行います。もちろん、手動でVBAを記述して、マクロとして実行することも可能です・・・というより、その方が一般的な使い方です。
自動化の機能ということで、マクロと同じ意味合いで使われるのが、RPA(Robotic Process Automation)です。マクロとRPAは部分集合と全体集合の関係と思えば理解しやすいと思います。RPAはパソコンの作業手順をロボットに記憶させることで、繰り返し行われる業務を自動化することを指します。マクロはMicrosoft Office製品に限定したRPAだと思うのがいいと思います。
では、RPAはマクロでいうところのVBAに相当するプログラム言語はあるのでしょうか!?
これは、あります。ただ、プログラム言語といってもVBAよりも取得がしやすく、基本的にはアクティビティを並べ替えるだけでいいような考慮がされています。ただし、RPAは特定の製品をさしている言葉ではないので、RPAツールによって、取得のしやすさに差があると思います。わたしは、UiPath(UiPath社の提供するRPAツール)しか触ったことはありませんが、それほどの難易度は感じませんでした。
そうすると、RPAを取得したらマクロは不要になるのか!?と、思う方もいると思います。
しかし、マクロはMicrosoftのOficce製品に特化している自動化の機能です。ExcelやOutlookなどOficce製品に限定した自動化であれば、細かな動作を早く作ることができます。RPAが浸透しても、マクロが不要になることは当面ないと思います。