昨日、大きな仕事が峠を越えました。
100近い支店で、Excelに入力されたデータを、ExcelVBA(マクロ)で一気に集計し、数種類の帳票を出力します。
全体としての進捗は、多分「第2ゲート通過!」ぐらいだけど、第3ゲートは各支店の資料の印刷が、第4ゲートは資料の月度繰り越しが出来ればいいので、かなりハードルが下がります。
このシステム(かな?)制作の仕事は、2回目。
前回は突然、作ってくれと言われたので、既存の帳票を取り込んで、処理できるようにするので、精一杯でした。
でも、こうして1年回してみると、自他共にああしたい、こうしたいってのがたくさん出てきて。
それを可能な限り盛り込んだのが、今年版ってわけです。
システム的にも、無理矢理つなげたために、無駄な仕組みが多かったのを、スッキリさせたし。
我ながら、いいのが出来たと思いますよ♪
ExcelVBAを使ったツール類の制作は、もう15年も前から。
勤務指定表の自動作成ツールを作ったのが、全ての始まりです。
交代勤務だったので、それぞれの休みはまちまち。
でも、「この担当とこの担当は、平日は必ず要るよね」ってのがあるので、それがいないと警告表示。
もちろん、印刷も複数の体裁で出てきますし、最終的には、たまった有給を希望通りに乗せる仕組みも、作りました。
それまでは担当課長代理が、「ゴム印」片手に組む仕事。
配置はそれまで通り課長代理がやるものの、手間やミスを削減して、大幅な省力化を実現しました。
社内のパソコン活用コンクールで、優秀賞も取りましたよ♪
2000年頃の話です。
その後、いくつか会社を変わり、いろんなニーズにも出会って、その都度解決すると、自分の力にもなって。
中でも、「望みのファイルをユーザーに選択させて、それを開けて処理して、また閉じる」ってことが出来るようになってから、有用性がグンと広がりました。
利点ですか?
「ユーザーが使うファイルに、余計なもの(マクロ、ボタンなど)を埋め込む必要がない」こと。
ユーザーが使うのは普通のファイルだから、変なメッセージも出ない。
変な?ボタンもありません。
実は、そういう変わったものが出ると、パソコンに慣れてない人は怖がって、使ってくれないんです。
僕らは「エラーが出たら直せばいい」感覚で使えますが、パソコンが苦手な人は、「もし間違って、ソフトはおろか、パソコン自体を壊しちゃったらどうしよう!?」って、ものすごい恐怖感と戦いながら、パソコンを触るんだそうです。
なので、できる限り、入力用ファイルは見慣れたものにしておいた方が、いいわけなんです。
苦労して作っても、結局使ってもらえないのでは、骨折り損のくたびれもうけ、ですから。
(実際、そんな経験もあります)
もちろん、こちらが使う実行ファイルには、思う存分命令文を書くことが出来ます。
ExcelVBAの基本は、昔のBASIC。
子供の頃に打った、いじった、遊んだ言語が、そのまま使えます。
それにExcelって、多くの機能をVBA言語に翻訳する機能があります。
記録モードにして、実際に操作をすれば、その通りのプログラムになります。
勉強にはもってこいです。
「ああ、この機能はこんな設定をすればいいのか!」ってね。
それに、複雑な計算はVBAで書くほかに、Excel本体のセルに数式を埋め込んでおいて、値だけVBAで書いて計算させる、なんてことも出来ます。
こうすると、内部計算した結果を、簡単に表示することが出来ますね。
誰でも使うExcelですが、使い方によってはものすごい応用力があるんですよ。
言語として、開発用プログラム言語として、インターフェースとして、ExcelとExcelVBAは、非常に優秀なんです。
最近では、新設支店の勤怠や手当などを計算したり、各部の売上データを読み取って、作表したりグラフ化したり。
作業データをピボットにして、望みの帳票やグラフを出したり。
100人以上いる部長+支店長のメールアドレスを管理して、簡単に一斉配信出来る(出力したテキストをメール宛先に貼ります)ツールなんてのも、作りました。
こうやって、今までいろんなツールを作ってきました。
でも、全ては「ニーズがあってこそ」、なんです。
「こんなものできないか?」
「こんな集計は可能??」
必要は発明の母と言います。
リクエストがあると、人はそれを満たそうと、努力をする。
それが、自らの力を高めてくれます。
これまで僕を育ててくれたのは、今まで僕に様々はリクエストをしてくれた、数々のクライアント、なのですよ!