Line Buffer Overflow…

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

Excelの手作り道具…

今週のお題「手づくり」

 

ExcelVBA(Visual Basic for Application)も、長くやってると、いろんなことが出来るようになります。

もちろん、大がかりなプログラムも作りますが、ちょっとしたニーズにも、ちょちょっとプログラムを書いて、便利に処理出来ることがありますね。

 

関数で出来れば、関数でしますけどね。

でも、判断を伴う場合や、セルを書き換えたり、行や列を操作するような処理は、関数では出来なかったり、面倒になったりすることが、多いです。

 

例えば、データが重複している場合、1つを残して行ごと削除したい場合、10行ちょっとのマクロを組めば、実現できます。

 

まずは、比べる列で、並べ替えます。

これは、手動の方が楽かも知れません。

 

プログラムでは、処理中の行を表す変数を用意して、比べる列の、その行の値と、その次の行の値を比べて、一致すれば次行を行ごと削除、不一致なら飛ばして、変数を1足す、という処理を、「Do Loop」で繰り返せばいいわけです。

 

最近使ったのは、3列にまたがった住所の、一本化。

都道府県」「市区町村」「町名以降」というパターンです。

関数でも出来ますが、別に1列用意して、関数を書き、「形式を選択して貼り付け」で、値化する必要がありますね。

マクロだと、「都道府県」の列に追記が可能です。

 

いつも使っている、資料作成ツールでも、道具的に使っているプログラムがあります。

 

今まで何回か書いてるのは、支店所重用のファイルを、一括で書き換えるプログラム。

支店所長が使うファイルは、80以上もあります。

なので、途中で仕様が変わったり、不具合で修正しなければならない場合、直すのは非常に大変!

修正ミスもあり得るので、正直、完遂出来る自信はありません。

 

そこで、自作の修正用プログラムに、どこをどう直すか、マクロで書いて、実行!

あとは、プログラムがファイルを自動で開け、処理を施して、保護をかけて閉じる、という動作を、ファイル分繰り返します。

 

マクロで書くので、数式や罫線もいじれますし、入力規則、条件付き書式なども、変更が可能です。

 

とにかく、「正確」なのがいいですね。

何十回も同じことを繰り返すのは、パソコンが得意で、人間には難しい作業の一つです。

 

フォルダ単位なので、テストファイルで動作を試すことも可能。

最後には、雛形ファイルも同じように、修正できます。

 

今まで、何度も危機を救ってくれたツールですね。

非常に使える道具です。

 

他にも、全ファイルが「開いているか?」どうかだけを、確かめるプログラムとか。

各ファイルを、追記モードで開くのを試行するプログラムで、数秒で結果が出ます。

 

こちらもメンテナンスなどで、支店所長のファイルを操作しますが、もしファイルが開いてると、上書き保存出来ないので、処理出来ません。

プログラムが途中で止まり、中途半端な処理に終わり、非常にマズい状態になります。

 

ファイルが開いているのがわかれば、未然に防げるわけです。

 

年度の替わり目には、新しいファイルツリーを作るプログラムもあります。

前はファイルをコピーして、支点署名などを書き換えて使っていましたが、次第に他にも独自のデータを書く必要が出てきたので、人力ではとても無理になり。

プログラム化しました。

雛形ファイルを必要分コピーして、必要なデータを書き込み、各支店所のファイルに仕立てます。

 

さらに、前年のデータを引き継ぐプログラムもあります。

同じ支店所のファイルをマッチングして、データを転写します。

支点所長のニーズに応じて、開発しました。

 

まさに「道具感覚」で、処理プログラムを自作して、使っているわけです。

手作りで!

 

職人さんは、必要な道具を自作すると言いますが、正しくその感覚ですね。

必要に迫られて、必要な仕様で作るわけですから、精度は高いですよ。

 

形は見えないですが、Excelでいろんな処理を実現する、手作りの道具が、毎日のように活躍してくれています♪