結論:棚卸しはどんな順番で進めるか?
ファイルを複製し、版と 32bit/64bit を確かめてから、7つの項目を数えて一覧にし、最後に使っている人に印を付けてもらいます。
ファイルを
複製する 版と 32bit/64bit を
確かめる 7つの
項目を 数える 使っている
人に 印を 付けてもらう
何を数えればよいか?
テーブル・クエリ・フォーム・レポートの数、VBA の行数、PtrSafe の無い Declare 文の数、リンクテーブルの数の7つです。
| 項目 | 数える理由 |
|---|---|
| テーブル | 移すデータの単位。件数と、つながり(リレーション)も控える |
| クエリ | 集計や締めの決まりが入っている。どこからも使われていない物もある |
| フォーム | 画面の数。よく使う画面から試作する |
| レポート | 帳票の数。お客さまに渡すものかどうかを分ける |
| VBA の行数 | ボタンで動く処理の量。移す手間にいちばん効く |
| PtrSafe の無い Declare 文 | 64bit 版の Office で止まる所 |
| リンクテーブル | 別のファイルやサーバーにつないでいる所。移す範囲が広がる |
Access のデータベースの上限は 2GB、オブジェクトは32,768個、モジュールは1,000個です(Microsoft の仕様)。上限に近いファイルは、移す前にデータの年数を区切る相談をします。
どうやって数えるか?
テーブルとクエリは DAO の一覧から、フォーム・レポート・モジュールは Access の CurrentProject の一覧から数えます。手元の環境では、システムの表 MSysObjects は既定で読めませんでした。
PowerShell から Access を動かして数える書き方の例です(複製したファイルで行います)。
$acc = New-Object -ComObject Access.Application
$acc.OpenCurrentDatabase("C:\work\copy.accdb")
$db = $acc.CurrentDb()
$t = @($db.TableDefs | Where-Object { $_.Name -notlike "MSys*" -and $_.Name -notlike "~*" })
$q = @($db.QueryDefs | Where-Object { $_.Name -notlike "~*" })
"テーブル {0} / クエリ {1}" -f $t.Count, $q.Count
"フォーム {0} / レポート {1} / モジュール {2}" -f $acc.CurrentProject.AllForms.Count, $acc.CurrentProject.AllReports.Count, $acc.CurrentProject.AllModules.Count
$acc.CloseCurrentDatabase(); $acc.Quit()
確認した環境は、Windows 11、Microsoft 365 の Access(バージョン 16.0、64bit)です(2026年10月16日)。VBA の行数は、VBA のプロジェクトへのアクセスを信頼する設定にしてから、モジュールごとの行数を足して数えます。リンクテーブルは、TableDefs の Connect が空でない物です。
数えた結果をどう読むか?
VBA の行数と、同じ形で出すレポートの数が、移す手間を大きく左右します。テーブルの数は多くても、手間はあまり増えません。
| 確かめること | 答え | 向く方式 |
|---|---|---|
| VBA の行数 | 数百行まで | 画面と帳票の移し替えが中心。小さく始めやすい |
| VBA の行数 | 数千行 | 処理ごとに一覧にし、移すものと捨てるものを決める |
| 同じ形で出すレポート | 1〜2種 | 帳票の手間は小さい。クラウドサービスも候補 |
| 同じ形で出すレポート | 5種以上 | 帳票の再現が手間の中心。作り直しが向く |
| PtrSafe の無い Declare 文 | 1つ以上 | 64bit 版で止まる。延命するならここを直す |
| リンクテーブル | 別のファイルやサーバーにつながる | つながり先も棚卸しの範囲に入れる |
この表は料金表ではありません。どこに手間がかかるかの見当をつけるためのものです。延命・乗り換え・作り直しの5年の総額は5年総額の計算機で比べられます。
棚卸しでよくある失敗は?
本番のファイルを直接開いてしまうこと、数えただけで使っている人に確かめないこと、リンク先のファイルを見落とすことの3つです。
本番のファイルを開いて数え、ロックで入力が止まった
共有フォルダーのファイルを開くと、ほかの人の入力とぶつかることがあります。必ず複製したファイルで数えます。
数えただけで、使っている人に確かめなかった
数の多いレポートを全部移そうとしたが、半分は誰も使っていなかった、ということがよくあります。印を付けてもらう工程を省きません。
リンク先のファイルを見落とした
テーブルの数が少ないと思ったら、実データは別の .accdb にリンクしていた、という例があります。TableDefs の Connect を見て、つながり先も数えます。
よくある質問
- 棚卸しは自社でもできる?
- できます。上の7項目を数えるだけなら、Access を開ける人がいれば半日で終わります。読み方に迷ったらご相談ください。
- パスワードのかかった Access でも数えられる?
- パスワードが分かれば数えられます。分からない場合は、作った人や前の保守の会社に確かめるところから始めます。
- .accde や .mde でも数えられる?
- テーブルやレポートの数は数えられますが、VBA のコードは見られません。元の .accdb や .mdb を探します。
古い Access やオフコンを、御社のやり方のまま新しい仕組みへ。
Access のファイル1本、台帳1つからでもお受けします。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。準備は要りません。
無料で相談する出典
- Microsoft サポート「Access の仕様」(2026年10月16日確認)
- Microsoft Learn「Compatibility between the 32-bit and 64-bit versions of Office」(2026年10月16日確認)
変更履歴
| 公開:公開 |