最近、ダブルパー(4時間残業)だの、ダブルトリプルボギー(6時間残業)だの…。
今日はダブルプラストリプルボギー(5時間残業)でした。
何をしているか。
80を超える支店で使う、Excelファイル群を構築中です。
各支店にファイルは一つ。
これに記入してもらい、吸い上げて集計、作表するわけです。
ファイルはひな型をコピーして使います。
が、最初のうちは、処理するプログラムに合わせる必要があったり、他人から改善要求が出たりして、支店のファイルの仕様を変えなければならない場合があります。
ひな型を直して、ファイルをコピーし直すのは、大変です。
支店名など、固有の値もありますしね。
しかも、この方法が取れるのは、運用前まで。
運用が始まってしまうと、支店のデータが載ってしまって、ファイルの作り直しなぞ、もはや不可能なのです。
かといって、大量のファイルを手修正なんて、恐ろしくて出来ません。
80以上ものファイル、しかも各月12シートずつあります。
ミスしないで修正、できます?
僕には、無理です…。
じゃあ、おとなしく諦めて、「次の修正まで待って」って、言いますか…!?
武器が、あるのです。
こんな時のために。
名付けて、
「支店ファイル一括変更プログラム」!
もちろん、ExcelVBAを使います。
原理は、指定したフォルダの該当ファイルを片っ端から開け、全シートに処理を施して、上書きして閉じる、というもの。
僕が作るのはこのパターンが多くて、ユーザーには何の変哲のないExcelファイルをあてがっておいて、別のプログラムでそれを開いて、何食わぬ顔で処理して返す。
マクロやボタンなど含んだファイルをユーザーに与えても、変わった画面やメッセージなどを嫌がって、使ってくれないんです。
人によっては、Excelに対して、親しみどころか恐怖感を持ってたり。
入力用ファイルは、極力、大人しいものがよいのですよ。
実際に施す処理ですが…、
普通ならマウス作業で出来る変更内容を、VBAのプログラムにしなければなりません。
罫線一本引くのに、5行のプログラムが要ります。
翻訳機能は、ありますけどね。
記録モードにして実際に操作すれば、その通りのプログラムを出力してくれます。
なかなか、便利でしょ。
勉強にも、なりますね♪
晴れて処理をVBAで書くと、全ファイル、必ず同じ結果になります。
100ファイルあろうが、1000シートあろうが、ミスなく同じ変更ができるのです♪
工夫すれば、特定のシートだけ変更したり、シートに応じて変更内容を変えたり、かなり自由が利きます。
他人や上司の、時には自分自身の無理難題に応えられる、助け船のようなプログラム、なんですよ♪
ただし…
場合によっては1セット30分近くかかることがあります。
それでも、全ファイルに手修正するよりは、遥かにマシなんですけど…、
「その間、パソコンが占有される!」
つまり、他の作業と並行作業が、出来ないのです。
なので、実行中は席を立つ以外は、ぼ~っとしてることが、多いですね。
「アイツ、またサボってる…!?」なんて、思われてたり!?
いえいえ~、仕事はしてるんですよ~!
正確には、「させてる!」ですが。