Line Buffer Overflow…

書くことが多過ぎるとき、バッファーとしてこちらに書きます。不定期更新です。

半自動…

仕事で、ExcelVBA、いわゆる「マクロ」で、ファイル出力を自動化したりなんかしています。

 

今日も、「各支店が別の部署に提出したファイルを見に行って、片っ端からファイルを開けて、データを入手して集計、まとめ表を出力する」ってのを作って、運用したわけです。

 

あっ、もちろん“別の部署”には公認済ですよ。
実は同じデータを別々の経路で入手するので、検算になります。
かえって、重宝がられてるんですよ。

 

その部署とも値を合わせるんですが、時には上の方から、「この支店はこの値にしろ!」って命令が下る場合があります。


通常、マクロでは計算・集計によって正しい値を算出して、表に書き込むんですが、ある特定の支店だけを、別のルールで処理するようなプログラムって、実はかなり面倒。

 

処理対象がその支店かを判定しなければなりませんし、仮に数式を修正するなら、膨大な数の支店ファイルを、変更しなければなりません。

まぁ、過去には100近い支店ファイルX12ヶ月分のシートを、一括で書き換えるプログラムも作りましたが、制作に時間がかかる…

 

なので、取った措置は…

 

「マクロ運転後、手動で値を書き換える」

そう、「半自動」です。

 

人間にも得意・不得意があるように、マクロにも、得手不得手があります。

人間なら飽きてしまい、ミスも連発するのが、

「繰り返し処理」

マクロなど、プログラムの最も得意とするところです。

 

何百回、何千回、時にはループの中のループまで、マクロは正確にこなします。

「こうなるまでは延々と繰り返す」なんてことも出来ますし、値を変えながら、他は同条件で繰り返すなんてのも、得意技です。

 

逆に、グラフィカルな選択が必要な処理や、ある特定の条件の時だけ…ってのが大量にある場合は、もちろんマクロにもできますが、処理が複雑になってしまい、プログラムを書くのに時間がかかります。

1回しかしない処理だったら、果たしてマクロにするのが得策?って疑問も湧きます。

 

今回の値の変更も、マクロにできないこともないんですけど、やっぱり複雑になりそうだったので、敢えてマクロにはやらさない選択をしました。

 

何でもかんでも、マクロ化すればいいってわけじゃあ、ないのです。

 

とは言え、だんだんそういう処理が増えていって…、

今ではマクロ処理後、14件も手動で処理を施すことに。

 

…正直、マクロ化を考えたりしてます。。。