Access魔宮の引き継ぎ
引き継ぎの共有フォルダを開いた、その瞬間のことです。嫌な汗が背中を伝っていくのを、はっきりと感じました。そこにあったのは、たった一つのファイルだけです。「売上管理_最新版_絶対消すな.accdb」という名前でした。操作手順が書かれた資料は、どこにもありません。Wordファイルなども、一切用意されていませんでした。システムの全体像を記した構成図も見当たりません。頼みの綱であった前任者は、すでに退職済みです。先月末というタイミングで、すでに会社を去っていました。

異動した初日の出来事です。担当部署のリーダーから指示を受けました。「毎朝このAccessのボタンを押してください。それで売上を更新してください」という内容です。言われた通りにボタンを押してみました。するとマウスポインタが、砂時計の形に変わります。そのまま30分間も、画面がフリーズしてしまいました。タスクマネージャーで強制終了すべきか、激しく葛藤したものです。あるいは待つべきなのか、判断に迷い続けました。冷や汗でマウスが滑り、胃がキリキリと痛みます。ようやく処理完了のメッセージが出ました。その時の疲労感は、今でも忘れることができません。
便利ツールから魔宮へ:会社の命運を握る野良DB
まず、ファイルの中身を慎重に覗いてみました。数万件のデータが詰まったテーブルが、いくつもあります。それらが無造作に転がっている状態でした。これが会社の屋台骨である売上集計を支えています。根底から支えている事実に、強い目眩を覚えました。もしこのファイルが壊れたら、大変なことになります。明日の朝から、営業部への報告業務が止まってしまいます。経理の請求書発行も、完全にストップするでしょう。たった一つの野良データベースが、会社を掴んでいました。なぜ、こんな危険な状態になるまで誰も止めなかったのでしょうか。原因は、極めてシンプルであると言えます。最初はただの「便利なツール」として生み出されました。周囲がそれに甘え続けた、悲しい結果にすぎません。
情報システム部門の管轄外で、ひっそりと育ったツールです。もはや誰も全容を把握できない、巨大な魔宮でした。恐ろしい状態のまま、放置されていたのです。
野良DBの発生パターンとブラックボックス化
野良DBが誕生する背景には、決まったパターンがあります。最初は、Excelの延長線上にすぎませんでした。現場の担当者が、膨大なデータを扱っていたのです。VLOOKUP関数やマクロでは、処理しきれなくなりました。そこで、手元のPCにあったAccessに目をつけたのです。これが、全ての始まりだったと言えます。

Excelのシートが、約50万行を超えたあたりでした。頻繁に画面がフリーズするように、なっていたのです。前任者はAccessの仕様に、希望を見出したのでしょう。Accessの理論上の最大容量は、2GBという上限があります。Accessは、確かに非常に強力なツールです。テーブルを繋ぎ、クエリを組めば集計は高速になります。Excelの何倍もの速度で、作業が終わるのです。フォーム機能を使えば、入力画面も簡単に作れます。前任者は、善意でこの仕組みを作り上げました。周囲の同僚たちも、魔法みたいだと称賛したはずです。当時は、誰もが感謝していたに違いありません。
属人化が招くブラックボックス
しかし、ここには大きな落とし穴がありました。専門知識を持たない人間が作ると、問題が起きます。設計図という概念が、完全に抜け落ちてしまうのです。要件定義も設計書もないまま、作業が進みます。その場しのぎの機能追加が、延々と繰り返されました。データベース設計の基本である正規化は、無視されます。同じような顧客データが、複数のテーブルにあります。動作が遅くなれば、強引なマクロで解決を図ります。根本的な、インデックスの最適化は行われません。結果を一時テーブルに書き出す、力技の手法です。こうして、作った本人にしか分からない関係が生まれます。複雑怪奇な依存関係が、形成されていきました。
そして本人が退職した瞬間、最悪の事態となります。会社に残されるのは、中身が見えない箱だけです。巨大なブラックボックスが、遺されてしまいました。
泥沼クエリとVBA、謎解きの考古学者
絶望していても、明日の業務は容赦なくやってきます。腹を括って、解読作業を始めるしかありません。ナビゲーションウィンドウを、恐る恐る開きました。そこには、100個以上のクエリが並んでいます。どれが本番で使われているのか、全く分かりません。さらに悪いことに、核心部分のVBAが見られません。パスワードがかけられていて、ロックされています。中身を確認することすら、できない状態でした。

クエリ群を一つずつ開き、解読を試みました。しかし、無秩序な命名規則に心が折れかけます。「Q_集計_旧」や「Q_集計_決定版」などが並んでいます。どのクエリがどのテーブルを参照しているのか。これらを、手作業で紐解くのは狂気の沙汰です。仕方なく、SQLビューに切り替えて作業しました。テキストをエディタに貼り付けて、検索を繰り返します。依存関係を一つずつ、紙に書き出していきました。半分以上のクエリが、ゴミであると判明しました。数年間も、一度も使われていなかったのです。その時の徒労感は、言葉では言い表せません。
VBA・Pythonをもっと本格的に学ぶなら
VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。
VBAパスワード回避、ログと監視でシステムの深層解明
VBAのパスワードを、無理に開けるリスクは取れません。代わりに、別の賢明なアプローチを取りました。テーブルの更新ログと、クエリの結果から推測します。裏側で何が起きているのかを、探ることにしました。ボタンを押した時に、どの箇所が更新されるか調べます。タイムスタンプの変化を、外側からじっくり観察しました。まるで未知の古代遺跡を、調査しているようです。考古学者のような日々が、しばらく続いていきました。
野良DB管理の初動
全体像が、ようやくぼんやりと見えてきました。システムが完全に崩壊する前に、手を打つ必要があります。最初に行うべきは、確実なバックアップの確保です。ファイルサーバー上で、単純にコピーを作成します。当たり前の作業ですが、これがないと何も始まりません。かつて、バックアップなしで作業したことがあります。不要なテーブルを消した直後に、エラーが出ました。集計フォームが、全く動かなくなったのです。あの時の、血の気が引いた感覚は忘れられません。二度と冷や汗をかかないよう、自動保存は必須です。

次に、使われていないオブジェクトを隔離します。いきなり削除するのは、まだ非常に怖いと感じました。そこで、オブジェクト名の上に「z_」をつけます。プレフィックスをつけ、ウィンドウの下部に追いやります。これだけでも、作業の視界が劇的にクリアになりました。整理整頓の第一歩として、非常に有効な方法です。
Access DB分割で管理と安定
実務上で、最も効果が大きかった手法を紹介します。それは、テーブルとフォームの分割です。Accessは、データと画面が同居する構造です。これが、特有の脆さを生む大きな原因となります。複数のユーザーが同時にファイルを開くと、問題が起きます。ロックファイルが生成され、不安定になるのです。ネットワークが瞬断すると、ファイルが破損します。これはAccessにとって、致命的な弱点と言えました。これを防ぐため、ファイルを二つに分けます。データを持つファイルと、画面を持つファイルです。この二つを、リンクテーブルという機能で接続しました。
分割による通信の安定化と管理の完了
この分割処理を行った結果、劇的な変化がありました。ネットワークの通信量が、約40%も削減されました。複数人での同時操作時も、安定して動いています。以前のようなフリーズも、劇的に減少しました。最後に、解読結果をWikiなどにドキュメント化します。詳細な仕様を、誰でも見られるように残しました。これでようやく、野良DBを管理下に置くことができました。一つの大きな山を、乗り越えた瞬間です。
Accessの限界、未来への移行プラン
【スクショ:VS Codeの画面。PythonのPandasを使ってAccessのデータをSQL Serverに移行するスクリプトが書かれている。dark theme UI mockup style】
応急処置が終わった後で、冷静に未来を考えます。このままAccessを、延命し続けるべきでしょうか。それとも別の、モダンな技術へ移行するべきでしょうか。Accessは手軽ですが、やはり限界は避けられません。ファイル共有型データベースとしての、弱点があります。データ量が増え続ければ、いつかまた壁にぶつかります。2GBの容量制限に、再び激突することになるでしょう。
根本的な解決には、データと処理の分離が不可欠です。データの保存先を、SQL Serverなどに移行します。クラウド上の、最新のデータベースに移すのも良いでしょう。そして、データの集計処理をPythonに置き換えます。PythonのPandasを使えば、処理は非常に高速です。複雑なクエリで行っていた集計も、数行で書けます。移行によって、業務の安定性は飛躍的に高まります。
移行投資、計り知れない価値
システム移行には、当然ながらコストがかかります。100個のクエリを、Pythonで書き直す作業です。専任の担当者が、約150時間の工数を要すると出ました。しかし、毎朝30分間のフリーズを待つ時間があります。ファイル破損時の、復旧作業にかかるコストも莫大です。それらを考えれば、この投資は確実に回収できます。何より、コードとして記述すれば、管理が容易です。Gitなどの、バージョン管理システムも活用できます。誰がいつ変更したか、完全に追跡可能になります。このメリットは、会社にとって計り知れない価値です。
システム負債の解体と整理
しかし、【スクショ:整理整頓されたクリーンなデスクトップ画面。不要なショートカットが消え、新しいシステムのダッシュボードが開かれている。realistic photo style】
管理されていないブラックボックスは、時限爆弾です。しかし、前任者を責めても何も解決はいたしません。彼らも、その時の最善を尽くそうとしていました。業務を回そうとした結果、負債を抱えたにすぎません。肝心なのは、その負債から目を背けないことです。正面から立ち向かい、解体していく勇気を持ちましょう。それが、今の担当者に求められる役割となります。
業務改善に、魔法のようなツールは存在しません。泥臭い解読作業の積み重ねだけが、解決への道です。地道な整理整頓こそが、属人化の鎖を断ち切ります。マニュアルなしの絶望的な状況からでも、大丈夫です。順序立ててアプローチすれば、必ず道は開けます。未来の担当者に、あの苦しみを感じさせてはいけません。今の私たちが、野良データベースに立ち向かいましょう。
関連リンクとチェックリスト
無料プレゼント
Excel業務を自動化する前に確認するチェックリスト(PDF)
自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。
無料でチェックリストを受け取る¥980 ミニキット
コピペで動かせる3スクリプト+自動化チェックリスト
最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。
ミニキットを見る(¥980)著者はこうして解決の糸口を見つけた
著者も同じ境遇から始まりました。独学でここまで自動化した道のりを参考にしてみてください。
関連書籍
業務効率化関連書籍を、手元で見返せる形にしておきたい場合
業務効率化は、いきなり大きく変えるより、手元の作業を1つずつ減らすほうが続けやすいです。考え方を見返せる本があると、次の一手を選びやすくなります。
学習サービスとアンケート
このスキルを活かしてさらに前へ進むなら
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

