システムタイトル:
 ・データベース定義からのテーブル定義書の自動生成

業種:
 ・金融

システム概要:
 ・金融業のシステムで、テーブルの数が膨大で年に一度テーブル定義書を3週間ほど掛け、会議室を借り切って、チェック&納品をしていた。しかし、費用対効果もモチベーションも低くかった。
 ・システムはIBM大型汎用機上のもので、定義をいったん汎用機上でテキスト化し、ExportしたものをPC側で加工する予定であったが、調べると汎用機のDBにODBC経由で接続できることが分かった。運用サイドに確認すると、サーバーと同様、設定さえすればPCサイドのプログラムから汎用機上のDB2に接続できる、とのことであった。
 ・出力フォーマットはExcelであったため、Excelで組むことにした。

システム構成:
 ・IBM大型汎用機上のDB2
 ・クライアントアプリ Excel2000
 ・DBへはODBCドライバを経由

留意点:
 ・当初文字化けに苦しんだ。結局はODBCドライバの設定が肝であったが、DB2のODBC設定は分かりやすかった。
 ・クライアントアプリからのDB接続は優先度が高く、汎用機に大きな負荷をかけることが分かった。よって、データを結合して取得するのではなく、必要なテーブルをローカルにコピーし、ローカルで結合処理をした。ローカルのコピー先はAccessといした。
 ・汎用機とPCでは文字コードが異なる。汎用機上でのテーブルID順になるよう、ソート前後に処理を加えた。

その他:
 ・このツールにより、作業時間が出力を含め2時間程度まで短縮することができた。人件費にして100万円以上の節減効果があった。
システムタイトル:
 ・部品表からの製品の質量の管理

業種:
 ・製造業

システム概要:
 ・サーバー上にある部品表データベースを元に、使った部品で製品の質量を計算するシステム。
  メニューはAccess、帳票はExcelで作成する方針が決まっていた。

システム構成:
 ・全体像は不明。
 ・DBはAS/400上のDB2。
 ・Access97/Excel97

留意点:
 ・例えば、表示内容を設定するプロパティがText/Captionなど、オブジェクトによって異なることがある。オブジェクトのプロパティによる違いを吸収するような仕組みを考えて実装した。(対象は、確かリストボックス系のものだったと記憶している。)

その他:
 ・部署によってはExcelのバージョンが2000であった。Excelのシート上のオブジェクトが97と2000では非互換であることは検証して分かった。
 ・遅くまで残業が不可で、遅くとも19時には職場を出された。そういう状態で、品質を確保するために必要な期間を見積もって出していたが、3分の2程度に削られた。その時点で作業範囲からすると品質確保は難しい旨伝えたが、最終的にクレームが出たとのこと。マネジメントの重要性を実感した。
 ・Accessは業務で使うのは初めてであったが、ExcelVBAからの応用で、何とか乗り切れた。
システムタイトル:
 ・放送枠の管理

業種:
 ・広告代理店

システム概要:
 ・地上波、CATVなどで、放送局が放送枠を売りに出すことがある。その枠をめぐっては
  放送局-放送枠買付会社-放送枠割当会社-放送媒体所有社
  という関係があり、それぞれの間で情報交換はExcelのデータをメールでやりとりしていた。野球放送の延長などで放送時間が延びたり、大事故が起こり放送自体がなくなったりと、変更は頻繁に起こっていた。つまり、通常の進行管理よりも外的要因による変更が発生しやすく、変更への対応が人海戦術で行われていた。業務の効率化が急務とされていた。
 ・システム化にあたっては、現状Excelの機能(ソート、セルへの色塗り、オートフィルタなど)を活用し、業務として色なども意味のあるものにしていたので、それを最大限守りたいとのことで、Excelをフロントとし、会社全体でデータを一元化するためにデータベースにデータを集約することとした。

システム構成:
 ・クライアント/サーバー形式とし、サーバー側はDB、クライアント側はExcelで構築したアプリケーションとする。
 ・DBサーバー Windows系(既存のモノ)/DBMS SQL Server 2000(既存で余っていたモノ)
 ・クライアント Windows XP(途中からSP2にも対応)
 ・アプリケーション Excel 2000(途中から2003にも対応)

留意点:
 ・同じ情報を複数の人が更新しようとする場合があるので、一人が使っていると使用中フラグを立てて、使用中フラグが立ったレコードを含むデータを検索したらメッセージと共に閲覧モードにしかならないようにした。
 ・アプリケーションの更新時、Excelをメールで送付し更新してもらうようにしても更新が期待できないので、起動ツールを開発し、サーバーから常に最新アプリをコピーするようにした。併せてOfficeのセキュリティレベルが高くても注意メッセージなしでVBAの利用を可とした。
 ・ユーザーの役割によって、不用意な内容を表示しないようにした。

その他:
 ・途中から可能な限りクラスモジュールを使うように書き換えた。
 ・Excel2003とそれより前とで、いろいろな違いを痛感させられた。
 ・このプロジェクト参画前から十分にVBAは使えているつもりだったが、このプロジェクトでは新たに学ぶことは多かった。この経験がこのブログを書くきっかけとなった。
 ・後付だが、進行管理って結構ニーズが多いんだな、と知った。
 ・これをソリューション化して提供、なども企てております。