![見出し画像](https://assets.st-note.com/production/uploads/images/129438984/rectangle_large_type_2_3af0f5d88ad0a962021f3f4588e5496a.png?width=1200)
そして誰も触れなくなった・・・・マクロな話
今日はちょっと怖い話。
<昔、流行ったマクロでのプログラミング>
ExcelやWordなどのMicrosoftOfficeで”マクロ”全盛の頃がありました。
元々はVisualBasic(以下、VB)がプログラミング言語として独自の進化をしていた所に、Office側がこのVBを元にしたVBA(VisualBasicforApplications)として組み込めるように機能追加されたもの。
使える人にとっては、自由にプログラミングできる上に普段使っているOffice製品さえあれば他にソフトを買わなくてもいいので、大流行。
ただ、好事魔多しとはこの事で、作った担当者が現役としてずっといてくれたら問題は無いのですが、このVBAは自由度が高い反面、標準化がしづらく、開発者じゃない他の人がメンテナンスを行うのが難しい代物です。いま、このマクロが残ったまま動かしているエクセル等がOfficeのバージョンアップに伴う動作不具合等で問題になることが少なくないと思われます。
<マクロの呪縛から可能であれば離脱を>
一時期、このマクロ機能を悪用し、メールで添付ファイルを開いた途端にこのマクロが動くエクセル等がウィルスやマルウェアを仕込んでしまうという被害が多発した為、基本的にはMSOfficeのファイルにマクロは組み込まないようになりました。
また、その方が汎用性が高く、後々面倒な事を起こさないようになってきました。
しかし、一定数のマクロ入りの仕組みが現役バリバリで動いているのも事実で、時々、そうしたエクセルの仕組みに出会うと僕はそっとパソコンを閉じる時が少なくありません(笑)。
<プログラムは誰が見ても分かるメンテナンス性が必須>
基本的なこととして、自分ひとりで使うもので無い限り、プログラムはロジックはもちろん、中で使う変数のネーミングルールも含めて、他の誰が見てもわかるようなメンテナンス性を確保しておくのが基本です。
ただ、マクロの仕組みはこの基本を守ってやるには相当な努力と時間が必要。お手軽さがマクロの売りなので、守られてないものが多いんじゃないかな。
プログラムを組む側からするとメンテナンスできない仕組みは最も関わりたくない代物の1つです。
< X-Dayが来る前に別の仕組みへ移行しよう >
ということで、メンテナンスできない仕組みはいずれ破綻します。その時期が来る前にどこかのタイミングで別の仕組みへの移行を考えておく必要があります。
ほうっておくとある日突然、X-Dayはやって来ます(^_^;)。
特にWindowsやOffice製品のバージョンアップやVBAのバージョン問題等がどこかのタイミングで起きるはず。
そうなる前に、できるだけ早く、汎用的な仕組みで代用できるように動いたほうがいいと思います。
この記事が気に入ったらサポートをしてみませんか?