Accessファイルの容量が大きい?最適化でファイルサイズを軽くする方法

Access

こんにちは、なかぜんです。
Accessを使っていると、こんなお悩みありませんか?

「ファイルサイズがどんどん大きくなって、開くのも重い…」
「まだデータはそんなに入っていないのに、なぜ?」

実はこれ、Accessではよくある悩みなんです。でもご安心ください!
この記事では、Access初心者~中級者向けに、ファイルサイズを抑えるための最適化方法をやさしく解説します。VBAを使った自動化テクニックもご紹介しますよ!

Accessファイルが肥大化する原因

不要なデータの蓄積

テーブルの削除やレコードの更新を繰り返すと、Accessの内部に「ゴミデータ」がたまり、サイズが膨らみます。

一時オブジェクトの残留

フォームやレポートのプレビュー、クエリの実行などでも、一時的な情報が残ってしまいます。

基本の対策:手動で「最適化」

Accessには「データベースの最適化/修復」という便利な機能があります。

手動の手順

  1. Accessファイルを閉じる
  2. Access本体を起動し、メニュー → 「データベース」ー「データベースの最適化/修復」を選択

これだけで、ファイルサイズがグッと軽くなることがあります。

VBAで自動最適化する方法

毎回手動は面倒…という方のために、VBAで自動化する方法もあります。

VBAコード例(別ファイルで最適化)

Public Sub 最適化実行()
    Dim strSource As String
    Dim strTemp As String
    strSource = CurrentDb.Name
    strTemp = Left(strSource, Len(strSource) - 6) & "_temp.accdb"

    DBEngine.CompactDatabase strSource, strTemp
    Kill strSource
    Name strTemp As strSource
    MsgBox "最適化が完了しました!", vbInformation
End Sub

ポイント解説:
このコードは、現在のDBを一時ファイルにコンパクト化し、元のファイルと入れ替える仕組みです。Access自身を閉じてから、別のMDBでこの処理を行うのが安全です。

よくある注意点

  • 共有中はNG: 複数人が同時に使っているときに実行するとエラーになります。
  • 事前バックアップ推奨: 万一に備えて、バックアップを取ってから実行しましょう。
  • 起動DBから実行: 自分自身のファイルを最適化するには、別のAccessファイルから処理を呼び出す必要があります。

中級者向けの応用テクニック

起動専用ファイルを使って自動最適化

AccessファイルA(業務本体)をAccessファイルB(起動用)から起動し、終了時にB側で最適化を実行する構成にすることで、業務に支障なく自動で最適化できます。

定期最適化バッチ

WindowsタスクスケジューラとVBAを組み合わせて、週1回などの自動最適化も可能です。

まとめ:定期的な最適化で快適なAccessライフを!

Accessファイルのサイズが大きくなる原因と、その対処法(手動・自動)の両方を学びましたね。
特に業務用のAccessファイルでは、安定性と軽さを保つためにも「最適化」はとても大事です。

ぜひ、今回ご紹介した手法を取り入れて、「軽くて快適なAccessライフ」を目指してみてください!

次のステップ:こんな記事もおすすめ!

それではまた、次回の記事でお会いしましょう。
Access大好きブロガーのなかぜんでした!