見出し画像

おみそれしました!「0066夜 マクロ名人、降臨」

おおいに反省します。マクロ名人のすご技を間近で見ました。早速本題に入りましょう。

「マクロでできることはマクロでやる」という当たり前

あるグループで郵送作業をすることになり集まりました。送り先の宛名管理はエクセルでしていますが、宛名印刷はマクロ。エクセルのマクロがガッチリ組んであって、印刷用のシートから別シートの情報(住所、氏名)を読み込んで、印刷範囲とグループ指定をして、「プレビュー」か「本番印刷」かを選んで「実行」ボタンをクリック。
印刷された宛名は、郵便番号のズレもなくミリ単位での作り込みがされているのは間違いがありません。操作者(私)は、手の出しようがない完璧な作りです。
「マクロでできることはマクロでやる」という(その人にとっての)当たり前を見せつけられました。

筆者が選んだのは、Pythonプログラム

表計算ソフトのマクロでプログラムを作るとデータとプログラムを一体化して1つのファイルにできるメリットがありますね。エクセル環境だけで利用できるので素晴らしいと思いました。
一方筆者は、巨大ソフトウェアプロバイダに依存するのが嫌で(そもそもその会社のOffice製品を持っていませんから「開発環境」がありません)、別の案件ですが、請求書発行業務用に作ったのは、Pythonプログラムです。
請求書発行用の元データは、やはりエクセルです。CSVでも構わない内容ですが、他の人も元データは参照・編集する可能性を考えての計算式のない「エクセル」になっています。Pythonプログラムで、「顧客リスト・購入情報」と「商品マスタ」というエクセル元データからPandasライブラリで読み込み、当該月の請求書を生成するというものです。
誰かに使ってもらうためには、アイコンをクリックして起動し、「実行」ボタンを準備するなどGUI(グラフィカル・ユーザ・インターフェイス)版プログラムにしなければならないのでしょうが、自ら処理すれば良いのだからと、毎月Powershellから当該ディレクトリに移動して「python invoice.py」を叩いています。
あまり洗練されたコードであるとはお世辞にも言えない代物だとは思いますが、プログラムがプログラムファイル(テキストファイル)として独立していますので、プリントアウトに手書きで注釈をつけておけば、メンテナンスもしやすいです(個人的には)。
そのプロジェクトでは今は誰か代わりになる人はいませんが、しかし、後任の人が引き継ぐこと、保守管理をすることもできるのではないかと思っています。
「食わず嫌い」は重々承知ですが、同じことをエクセルのマクロ、VBAでする気には全くなりません。完璧なマクロの動作を見たことで(コードまで見ていませんが)、今後考えが変わるか分かりませんが、やっぱりどうも某大手企業に「プログラム環境」を依存する気にはならないのです。

2021年3月7日のコメント

「おみそれしました」とか「反省」という言葉から書き始めてみたものの、「やっぱりマクロ・BVAは嫌い」という本音しか書くことができませんでした。
「あの会社に金を払いたくない」ということだけですので、反対の意見の方は説得など試みようとせずにスルーしていただければと思います。
このところ、次の題材を何にするか全く考えておりませんが、きっと明日も何か書きますので、どうぞよろしくお願い致します。

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