Excel VBAとSQL Server Expressで同時編集に強いマクロブックを作る構想
この記事は、完成済みの納品事例ではなく、Excel VBAの業務ツールを複数人で使いやすくするための技術検証・構想段階の整理です。
Excelマクロ付きブックは、現場の業務改善では今でも強力です。一方で、ブックの中に業務データを持たせたまま複数人で使うと、ファイル共有の競合や古い画面からの上書きが起きやすくなります。
そこで、Excelは入力画面・操作画面として使い、データはSQL Server Expressに集約する構成を考えます。さらにrowversionを使うことで、同じデータを複数のExcelブックで開いたときの更新競合を検出できるようにします。
Excelを画面、SQL Server Expressを共通データベース、rowversionを同時編集チェックとして使う構想です。Excelマクロブック単体で起きやすい問題
Excelブックを業務ツールとして使う場合、最初は1つのファイルだけで完結できるため、導入しやすいです。
ただし、利用者が増えたり、同じデータを複数人で編集したりすると、次の問題が出やすくなります。
・誰が最新データを持っているのか分かりにくい・共有ブックや共有フォルダ上のExcelファイルで競合が起きる
・古い状態で開いていた人が、あとから保存して上書きしてしまう
・データ量が増えると検索、集計、履歴管理が重くなる
・ブックが壊れたときの影響範囲が大きい
Excelは入力や確認の画面としては使いやすい一方で、複数人が同じデータを扱う基盤としては限界があります。
Excelを画面、SQL Serverをデータ基盤に分けるこの構想では、役割を次のように分
0