読者です 読者をやめる 読者になる 読者になる

Line Buffer Overflow…

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

武器…

最近、ダブルパー(4時間残業)だの、ダブルトリプルボギー(6時間残業)だの…。

今日はダブルプラストリプルボギー(5時間残業)でした。 

 

何をしているか。

80を超える支店で使う、Excelファイル群を構築中です。

 

各支店にファイルは一つ。

これに記入してもらい、吸い上げて集計、作表するわけです。

 

ファイルはひな型をコピーして使います。

が、最初のうちは、処理するプログラムに合わせる必要があったり、他人から改善要求が出たりして、支店のファイルの仕様を変えなければならない場合があります。

 

ひな型を直して、ファイルをコピーし直すのは、大変です。

支店名など、固有の値もありますしね。

しかも、この方法が取れるのは、運用前まで。

運用が始まってしまうと、支店のデータが載ってしまって、ファイルの作り直しなぞ、もはや不可能なのです。

 

かといって、大量のファイルを手修正なんて、恐ろしくて出来ません。

80以上ものファイル、しかも各月12シートずつあります。

ミスしないで修正、できます?

僕には、無理です…。

 

じゃあ、おとなしく諦めて、「次の修正まで待って」って、言いますか…!?

 

武器が、あるのです。

こんな時のために。

 

名付けて、

 

「支店ファイル一括変更プログラム」!

 もちろん、ExcelVBAを使います。

 

原理は、指定したフォルダの該当ファイルを片っ端から開け、全シートに処理を施して、上書きして閉じる、というもの。

 

僕が作るのはこのパターンが多くて、ユーザーには何の変哲のないExcelファイルをあてがっておいて、別のプログラムでそれを開いて、何食わぬ顔で処理して返す。

 

マクロやボタンなど含んだファイルをユーザーに与えても、変わった画面やメッセージなどを嫌がって、使ってくれないんです。

人によっては、Excelに対して、親しみどころか恐怖感を持ってたり。

入力用ファイルは、極力、大人しいものがよいのですよ。

 

実際に施す処理ですが…、

普通ならマウス作業で出来る変更内容を、VBAのプログラムにしなければなりません。

罫線一本引くのに、5行のプログラムが要ります。

 

翻訳機能は、ありますけどね。

記録モードにして実際に操作すれば、その通りのプログラムを出力してくれます。

なかなか、便利でしょ。

勉強にも、なりますね♪

 

晴れて処理をVBAで書くと、全ファイル、必ず同じ結果になります。

100ファイルあろうが、1000シートあろうが、ミスなく同じ変更ができるのです♪

工夫すれば、特定のシートだけ変更したり、シートに応じて変更内容を変えたり、かなり自由が利きます。

 

他人や上司の、時には自分自身の無理難題に応えられる、助け船のようなプログラム、なんですよ♪

 

ただし…

場合によっては1セット30分近くかかることがあります。

それでも、全ファイルに手修正するよりは、遥かにマシなんですけど…、

 

「その間、パソコンが占有される!」

 

つまり、他の作業と並行作業が、出来ないのです。

なので、実行中は席を立つ以外は、ぼ~っとしてることが、多いですね。

 

「アイツ、またサボってる…!?」なんて、思われてたり!?

 

いえいえ~、仕事はしてるんですよ~!

 

正確には、「させてる!」ですが。