コラム|古いシステム
Accessの移行でつまずく6つの場所と手順。64ビット版・マクロのブロックへの対処(続編)
Access 2021からの移行を担当する総務・事務の方へ。新しいパソコンでAccessが止まるのは、版・ビット数・ファイルの入手経路が変わったときです。Microsoftの公式資料から、つまずきやすい6つの場所と、試しのパソコンで確かめる手順を紹介します。
- Office LTSC 2021(Access 2021を含む)は、2026年10月13日(米国時間)にサポートが終わりました。
- 新しいOfficeは既定で64ビット版です。古いVBA・部品・.accdeが止まることがあります。
- Microsoft 365に移ると、ネットで受け取ったファイルのマクロが既定でブロックされます。
- 試しのパソコン1台で、コンパイル→参照→リンク→帳票の照合の順に確かめます。
- 最後の確認表は、そのまま移行の記録に使えます。
Accessの移行でつまずく6つの場所
Microsoftの公式資料をたどると、新しいパソコンでAccessが止まりやすい場所は6つに整理できます。ビット数、参照設定と部品、ファイル形式、リンクテーブル、マクロのブロック、外部のツールからの接続です。
以前、「Access 2021のサポートが終了。古い社内データベースはどうする?」で、版の確認から試しのパソコンでの照合までの5つの工程を書きました。今回はその続きとして、4つ目(替え先を選ぶ)と5つ目(照合する)の工程で起きる「止まり方」と直し方を掘り下げます。
前提として、Office LTSC 2021の終了後は、技術サポート・不具合の修正・セキュリティ更新が出ません。Microsoftが法人向けに勧める移行先は、Office LTSC 2024です(Microsoft 終了告知)。
今出ている症状から探せるよう、症状ごとに読む手順をまとめました。手順の名前を押すと、その手順へ移ります。上から順に進める場合は、手順1から読んでください。
範囲:Access 2021から、Office LTSC 2024またはMicrosoft 365へ移す場合。
| 出ている症状 | 止まっている場所 | 確かめる場所 | 直し方の要点 | 読む手順 |
|---|---|---|---|---|
| Declare文でエラーになる(PtrSafeがない) | ビット数(32/64) | [ファイル]→[アカウント] | PtrSafe・LongPtrで書き直す | 手順1 版とビット数を記録 手順2 コンパイル |
| 参照に「MISSING」と出る、画面の部品が動かない | 参照設定と部品 | VBEの[ツール]→[参照設定] | 正しいファイルを選び直す、不要なら外す | 手順3 参照設定と部品 |
| .accde・.mdeが動かない、97形式が開けない | ファイル形式 | 拡張子と、作った版 | 元の.accdbから作り直す、形式を変換する | 手順1 版とビット数を記録 手順4 古い形式と廃止機能 |
| リンクテーブルが「失敗」になる、データが見えない | リンクテーブル | [リンク テーブル マネージャー] | すべて「成功」まで再リンク | 手順5 リンクテーブル |
| 「SECURITY RISK」のバーが出て、有効化のボタンがない | マクロのブロック | ファイルのプロパティ | [ブロックの解除] | 手順6 マクロのブロック |
| Excelなどから「Provider cannot be found」 | 外部からの接続 | Officeの入れ方と版、エンジンの有無 | Officeの版とRuntimeの組み合わせを確かめる | 「日本の中小企業でどう活かすか」の節 |
出所:Microsoft Learn・Microsoft Supportの各ページ(記事末の出典を参照)。
新しいパソコンで止まる仕組み
ファイルが壊れていなくても、Accessは止まることがあります。版を替えると、ビット数、セキュリティの既定、読み込める部品と形式という、Office側の前提が変わるためです。
ビット数:Office 2019とMicrosoft 365からは、何も指定しなければ64ビット版が入ります。64ビット版では、ポインターとハンドル(Windowsの部品を指し示す番号)が64ビットになります。
そのため、Windowsの機能を呼び出すDeclare文(外部の命令を使うための宣言)には、PtrSafeという印が必須です。番号を入れる型はLongPtrに替えます。LongPtrは、32ビット版ではLong、64ビット版ではLongLongになる型です。PtrSafeのないDeclare文を64ビット版で動かすと、PtrSafeがないことを示すエラーになります(Microsoft Learn)。
部品:64ビット版のOfficeは、32ビットの部品(.ocx・.dll)を読み込めません。MSComCtl・MSComCt2を含む32ビットのActiveXコントロール(画面に置く部品)も、64ビット版とは互換がありません。32ビット版と64ビット版を、同じパソコンに並べて入れることもできません(Microsoft Learn)。
マクロのブロック:インターネットから入手したファイルには、Windowsがネット由来の印(Mark of the Web)を付けます。印の中の区分(ZoneId)が3(インターネット)だと、Officeはマクロを止めます。2(信頼済みサイト)なら止めません。Office LTSC 2021や2019などの買い切り版は、この既定の変更の対象外です。2021で動いていたファイルがMicrosoft 365で止まることがあるのは、このためです(Microsoft Learn)。
ファイル形式:Access 2013で、Access 97形式を読み込む部品が外されました。97形式のファイルは、新しい版では直接開けません(Microsoft Support)。
移行の手順とつまずく点の直し方
手順 1版とビット数と元のファイルを記録する
移行の前(まだ何も起きていない)。.accde・.mdeが新しいパソコンで動かない
最初に、今の版と32/64ビット、元の.accdbがあるかを書き留めます。
Accessを開き、[ファイル]→[アカウント]で版とビット数を確かめます。移行前と移行後の両方を記録します。
.accde・.mde(中身を編集できない形にした配布用のファイル)は、作ったときのビット数に縛られます。32ビット版で作ったものは64ビット版で動かず、逆も同じです。移行先の版で再コンパイルすれば使えます(Microsoft Support)。作り直すには元の.accdbが要ります。
手順 2試しのパソコンでコンパイルする
Declare文の行でコンパイルエラーになる。PtrSafeがないと言われる
移行先の版を入れた1台で、コンパイルを実行してエラーの場所を探します。
VBE(VBAを編集する画面)で、[デバッグ]→[<プロジェクト名> のコンパイル]を選びます(Microsoft Learn)。コンパイルは、実行前にコードを点検して変換する作業です。エラーが出た行から、直す場所をたどれます。
Declare文で止まったら、公式の書き方で直します。#If VBA7 Then は、新しいVBAかどうかで書き分ける命令です。
Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
#Else
Declare Function GetActiveWindow Lib "user32" () As Long
#End If
公式ページにある GetActiveWindow の書き換え例を、同じページの #If VBA7 の書き分けに当てはめたものです。ページ上では、この書き分けの終わりの行は「#EndIf」と表記されています(Microsoft Learn)。
手順 3参照設定と部品を確かめる
参照設定に「MISSING」と出る。日付の選択などの画面の部品が動かない
「MISSING」の参照を選び直し、64ビットの代わりがない部品がないかを見ます。
参照設定(VBAが使う部品の一覧)にある部品が見つからないと、「MISSING」と表示されます。[参照設定]でMISSINGの項目を選び、[参照]で正しいファイルを指定してOKを押します。不要な参照はチェックを外します。ただし、VBAとAccess本体の参照は外せません(Microsoft Learn)。
64ビットの代わりがない部品に頼っている場合について、公式はそれを32ビット版を選ぶ理由に挙げています。64ビット版から32ビット版に替えるときは、先にアンインストールが必要です(Microsoft Support)。
手順 4古い形式と廃止された機能を確かめる
Access 97の.mdbが開けない。ADP・ピボットテーブルが使えない
.mdbの形式と、新しい版で使えない機能を先に洗い出します。
Access 97の.mdbは、2013以降では直接.accdbにできません。Access 2003で2002-2003形式に変換してから、新しい版で.accdbに保存します。2000・2002-2003形式は、2007〜2016で開いて.accdbに保存します(Microsoft Support)。どちらも、元の.mdbは控えとして残します(Microsoft Support)。
ADPとピボットテーブル・ピボットグラフは、2013で廃止されました(Microsoft Support)。.accdbは、レプリケーション(複数のファイルの中身を同期する機能)とユーザー単位のセキュリティに対応しません(Microsoft Support)。これらに頼るファイルは、作り直すか、ExcelやSQL Serverに移すかの判断が要ります。
手順 5リンクテーブルをつなぎ直す
リンクテーブル マネージャーで「失敗」になる。テーブルを開くとデータが見えない
データ側のファイルとのつながりを、すべて「成功」になるまでつなぎ直します。
分割したデータベースでは、画面側(フロントエンド)がデータ側(バックエンド)のファイルを参照しています。[外部データ]→[リンク テーブル マネージャー]でデータソースを更新し、「失敗」になったものを再リンクします。すべて「成功」になるまで繰り返します(Microsoft Support)。
バックエンドの場所は、Zのようなドライブ文字ではなく、UNCパス(\\サーバー名\共有名 の形)で指定します(Microsoft Support)。パソコンごとにドライブの割り当てが違っても、つながりが保てます。
手順 6マクロのブロックに対処する
黄色や赤の「SECURITY RISK」のバーが出て、[コンテンツの有効化]ボタンがない
「SECURITY RISK」のバーが出たら、ファイル単位でブロックを解除します。
このバーには「コンテンツの有効化」ボタンがありません。ファイルを右クリックし、[プロパティ]→[全般]→[ブロックの解除]を選びます。PowerShellのUnblock-Fileでも解除できます。印が付いているかは、次の方法で確かめられます(Microsoft Learn)。
手順 7帳票1本で照合する
動くようにはなったが、数字が前と同じか自信がない
月次の帳票を1本、今の版と移行先で出して、数字が合うかを比べます。
照合の前に最適化と修復をかけるなら、直前にバックアップを取ります。修復のとき、壊れたテーブルのデータが一部切り捨てられることがあるためです。データベースを排他(自分だけが開いている状態)で開き、[ファイル]→[情報]→[データベースの最適化/修復]を選びます。修復しきれなかった内容は、MSysCompactErrorsテーブルに記録されます(Microsoft Support)。
帳票の数字が合えば、データと計算の両方を引き継げたと判断する材料になります。
英国・豪州・米国の公的機関の方針と比べる
手順6で出てきた「マクロをどこまで許すか」を、海外の公的機関の方針と比べます。英国と豪州は、マクロ(Officeの中で動く小さなプログラム)を「使う人と場所に絞る」方針です。米国は、古いシステムの刷新計画に工程と片付けまでそろっているかを問うています。
範囲:各国の公的機関が公開した指針・報告書。日本の行は、日本でも使われるMicrosoft製品の既定と、当サイトの前回の記事です。
| 国・発表元・時期 | マクロの既定の扱い | 信頼できる場所の扱い | 古いシステムの刷新で求めること |
|---|---|---|---|
| 英国 NCSC(国家サイバーセキュリティセンター)「Macro Security for Microsoft Office」2019年2月21日公開、2023年10月11日見直し | 使わない組織は全面的に無効にする。必要なアプリだけで許可する(Excelだけ使うなら、Accessなどは無効) | 実行は信頼できる場所(信頼できる管理者だけが書き込める共有フォルダーなど)に限る | この指針では扱っていない |
| 豪州 ASD(通信電子局)Essential Eight(基本の8対策)の「マクロの制限」 | 業務上の必要がない利用者は無効にする。インターネット由来のファイルのマクロはブロックする | 今回の取材では、本文で確かめられなかった | この項目では扱っていない |
| 米国 GAO(政府説明責任局)GAO-25-107795、2025年7月17日 | この報告では扱っていない | この報告では扱っていない | 刷新計画に、工程の区切り・作業内容・旧システムの処分をそろえる |
| 日本で使われる製品の既定(Microsoftの公式の情報)と、当サイトの前回の記事(2026年10月30日) | Microsoft 365 Appsはインターネット由来のファイルのマクロを既定でブロックする。買い切り版は対象外 | Microsoftは「最小限に」とし、ネットワーク上の場所は推奨していない | LTSC 2021は終了。法人向けの推奨移行先はLTSC 2024(2029年10月10日まで)。前回の記事で5つの工程を示した |
出所:英国NCSC/豪州ASD(cyber.gov.au)/米国GAO-25-107795/Microsoft Learn。日本の公的機関による同様の指針は、今回の取材では確認していません。
英国NCSCは、デジタル署名(作った人を証明する電子の印)でマクロを許可する方式にも注意を促しています。この設定では、有効な署名があるマクロならどれでも実行を選べてしまい、特定の発行元だけに絞れないためです。
米国GAOは、連邦政府の古いシステム69件を調べ、最も刷新が必要な11件(10機関)を特定しました。11件のうち8件が古いプログラム言語を使い、7件が既知の脆弱性(守りの穴)を抱えていました。4件はサポート切れの機器やソフトで動いていました。
刷新計画があったのは、11件のうち9件です。ただし、工程の区切り・作業内容・旧システムの処分の3つがそろっていたのは、その9件のうち3件でした。2019年に挙げた10件のうち、2025年2月までに刷新を終えたのも3件です(GAO-25-107795)。
日本の中小企業でどう活かすか
取り入れやすいのは、英国の「必要なアプリだけ許可し、動かす場所を限る」考え方と、米国の「計画に工程の区切りと片付けまで書く」考え方です。
Microsoft 365 Appsでは、マクロのブロックが段階的に既定になりました。Current Channelは2022年7月27日、Monthly Enterprise Channelは2022年10月11日、Semi-Annual Enterprise Channelは2023年1月10日からです(Microsoft Learn)。買い切り版は対象外だったため、2021からの移行で初めてこのブロックに出会う会社があります。
そのまま使えるのは、NCSCの「必要なアプリだけ許可する」と「実行は限った場所から」の2点です。例えば、Accessだけで受注台帳を回しているなら、信頼できる場所を1フォルダーに絞ります。NCSCは管理者だけが書き込める共有フォルダーを例に挙げていますが、Microsoftはネットワーク上の場所を推奨していません。専任の管理者がいない会社では、Accessを使うパソコンの中の1フォルダーに絞るほうが無難と見ています。ネットで受け取ったファイルは、送り主と中身を確かめてから[ブロックの解除]をします。
合わないのは「マクロを原則無効」にする運用です。VBAで日々の業務を回している会社では、その日から仕事が止まります。全面禁止ではなく、使うアプリとフォルダーを段階的に絞るほうが、多くの中小企業の実情に合うと見ています。
GAOが挙げた3つの要素は、中小企業の移行メモにも使えます。工程の区切り(いつ試しのパソコンで確かめ、いつ本番を替えるか)と、作業内容(誰が何をするか)を書きます。旧システムの処分として、古いパソコンと古いファイルをいつ片付けるかまで書いておきます。
Excelや集計ツールが、ACE(Accessのデータベースエンジン)とODBC・OLEDB(外からデータを読む仕組み)でAccessのデータを読んでいることもあります。クイック実行版(Microsoft 365などで使われる入れ方)のOfficeは分離された環境で動くため、外のアプリから読めず「Provider cannot be found」で止まることがあります。Microsoft 365 Apps for EnterpriseのVersion 2009以降では、外から使えるよう改められています(Microsoft Learn)。
外部のツール向けのAccess Database Engine 2016 再頒布可能パッケージは、2025年10月14日にサポートが終わりました。Microsoftが勧める代わりは、Microsoft 365 Access Runtimeです(Microsoft Download Center)。Engine 2016はMicrosoft 365 Appsと同じ版番号16.0のため、併用は推奨されていません(Microsoft Learn)。Runtimeは、同じパソコンにクイック実行版のOfficeがあると、その構成に合わせて入ります(Microsoft Support)。
マクロのブロックは、ExcelやWordも対象です。社内でマクロの扱いを決めておくと、取引先のセキュリティチェックシートに答えるときの材料にもなります。
現場で見ていること
データの受け渡しの仕組みに携わっていると、Access本体より、Accessを読みに行くExcelや集計の仕組みのほうが見落とされやすいと感じます。Accessを開いて動けば、移行は終わったように見えるためです。移行の前に「このファイルを誰が・何から読んでいるか」を書き出すと、止まる場所を先に見つけやすくなります。
今後の展開
次の分かれ目は2029年10月です。それまでに「本体を替え続けるか、データを移すか」を決める材料をそろえておくと、期限の直前に急がずに済みます。
半年以内:終了後の期間をしのぐ
根拠:Office LTSC 2021のサポートは終了済みで、不具合の修正もセキュリティ更新も出ません(Microsoft 終了告知)。
見立て:移行がまだの会社は、試しのパソコンでの確認と並行して、前回の記事で書いた当座の対策を続けるのが現実的と見ています。Accessを使うパソコンで、外部のメール・Web閲覧・USBメモリを控える対策です。
1〜2年:接続と移行の道具が替わる
根拠:再頒布可能パッケージ2016のサポートは終わり、MicrosoftはMicrosoft 365 Access Runtimeを勧めています(Microsoft Download Center)。
見立て:Excelや集計ツールからの接続は、Runtimeを使う形に移っていく可能性があると見ています。RuntimeはOfficeの構成に合わせて入るため、手順1で記録した版とビット数が選び直しの手がかりになります。
根拠:Microsoftは、AccessからSQL Server(会社向けのデータベース)へ移す手順書を、2026年10月19日にも更新しました。順番は、評価→データ型の確認→変換→同期→データの移行→結果の確認→アプリの手直しと、隔離した試験環境での試験です(Microsoft Learn)。
見立て:手順書が更新され続けていることから、データを移す道は今後も公式の手順で選べる状態が続くと見ています。手順書の最初の工程は評価なので、今回の確認表がその準備にもなります。
その先:2029年10月の判断
根拠:Office LTSC 2024の期限は2029年10月10日です(Microsoft Learn)。LTSC 2021は2021年9月に始まり、2026年10月に終わりました。LTSC 2024も、2024年9月の開始からおよそ5年で終わる設定です。
- A:LTSC 2024で本体だけ替える場合 約3年後に、また同じ判断が来ます。今のうちにファイルの中身を資料にしておくと、次の判断が早くなります。
- B:Microsoft 365に移る場合 版の終了日に合わせて買い替える判断は減ると見ています。一方で、ネットから受け取ったファイルのマクロは既定でブロックされるので、ファイルの受け渡しの決まりが要ります。
どちらを選んでも、データが増えたり、同時に使う人が増えたりしたら、SQL Serverへの移行を考える時期と見ています。
見ておくべき兆し
- Microsoftのライフサイクルのページで、終了日や告知が更新されるか
- SQL Serverへの移行の手順書が、また更新されるか
- 取引先のセキュリティチェックシートで、マクロの設定を聞かれるようになるか
- 米国GAOが議会に示した、大きな機関に刷新計画の作成を求めることの検討が動くか。2026年2月時点では立法の動きがなく、「Open」(未対応)です。GAOは、計画が不十分なままだと費用の超過・遅れ・失敗の可能性が高まるとしています(GAO-25-107795)
今日からできること
- 版とビット数を記録する
Accessを開き、[ファイル]→[アカウント]で版と32ビット/64ビットを書き写します。移行の前とあとの両方で記録します。 - 元の.accdbがあるか確かめ、丸ごとコピーする
.accdeしかなければ作り直せません。作った人や保守業者に元のファイルの有無を確かめ、日付つきのフォルダーにコピーします。 - このファイルを読んでいる仕組みを書き出す
Accessのデータを取り込んでいるExcelや集計ツールがないかを、使っている人に聞いて下の表に書きます。 - 試しのパソコン1台で、コンパイルとリンクを確かめる
[デバッグ]→[コンパイル]を実行し、[参照設定]に「MISSING」がないか見ます。[リンク テーブル マネージャー]で、すべて「成功」になるまでつなぎ直します。 - 月次の帳票を1本照合する
今の版と移行先で同じ帳票を出し、合計の数字が合うかを比べます。確かめた日も書いておきます。
| 確かめる項目 | 書く内容 |
|---|---|
| ファイル名・置き場所 | UNCパス(\\サーバー名\共有名\…)で書く |
| 移行前の版・ビット数 | 例:Access LTSC 2021/32ビット |
| 移行後の版・ビット数 | 例:Microsoft 365/64ビット |
| 元の.accdbの有無 | あり(保管場所)/なし(確かめた相手) |
| コンパイルの結果 | エラーなし/エラーの出た行と直し方 |
| MISSINGの参照と対処 | 参照名/選び直した・外した |
| 使っているActiveX部品 | 例:MSComCtl/64ビット版での可否 |
| .accdeの作り直し | 要/不要/作り直した日 |
| ファイル形式 | .accdb/.mdb(97形式か)/廃止された機能を使っているか |
| リンクテーブル | すべて「成功」になったか |
| マクロのブロック | ファイルの受け取り方/ブロックの解除の要否/信頼できる場所(フォルダー名) |
| このファイルを読む外部ツール | Excel等の名前と接続方法(ODBC/OLEDB) |
| 照合した帳票 | 帳票名/数字が合ったか |
| 確認日・確認者・次に見直す日 | 次の見直しは2029年10月より前に置く |
DXプランニングで受けられるサービス
古いシステムの保守・改修では、Accessファイルの中身を調べて構成図・処理の一覧・手順書にまとめる作業と、新しいパソコンや仕組みへの移行を任せられます。中身の調査と資料づくりは30,000円〜で、その後に改修をご依頼いただいた場合は改修の代金に充当します。データだけを新しい仕組みへ移す場合は、データの取り扱いで、移したあとの件数と中身の照合まで行います。
まとめ
新しいパソコンでAccessが止まりやすい場所は、ビット数・参照と部品・形式・リンク・マクロのブロック・外部からの接続の6つです。試しのパソコン1台で、コンパイル→参照→リンク→帳票の照合の順に確かめます。まず今の仕組みと照合し、確かめてから切り替える。DXプランニングはこの順番を守ります。確かめた結果は確認表に残し、2029年10月の次の判断に使います。
出典
- Microsoft Learn「Office LTSC 2021」ライフサイクル(リンク)/終了告知(2026-04-22、リンク)
- Microsoft Learn「Office LTSC 2024」ライフサイクル(リンク)
- Microsoft Learn「64-bit Visual Basic for Applications overview」(2024-02-01更新、リンク)
- Microsoft Learn「Compatibility between the 32-bit and 64-bit versions of Office」(2024-12-18更新、リンク)
- Microsoft Learn「Macros from the internet are blocked by default in Office」(2026-07-17、リンク)
- Microsoft Learn「Can't find project or library」(2024-02-01更新、リンク)/「Debug menu」(リンク)
- Microsoft Learn「ODBC・OLEDBを外部から使えない問題」(2026-06-19更新、アーカイブ扱い、リンク)
- Microsoft Learn「Migration guide: Access to SQL Server」(2026-10-19更新、リンク)
- Microsoft Support「64ビット版と32ビット版の選び方」(日付表示なし、リンク)/「信頼できる場所の追加」(リンク)
- Microsoft Support「Access 2013の廃止された機能」(リンク)/「.accdb形式への変換」(リンク)/「ファイル形式の選び方」(リンク)
- Microsoft Support「最適化と修復」(リンク)/「データベースの分割」(リンク)/「リンクテーブルの管理」(リンク)/「Microsoft 365 Access Runtime」(リンク)
- Microsoft Download Center「Access Database Engine 2016 再頒布可能パッケージ」(公開日 2025-11-18、リンク)
- 英国 NCSC「Macro Security for Microsoft Office」(2019-02-21公開、2023-10-11見直し、リンク)
- 豪州 ASD「Restricting Microsoft Office macros」(cyber.gov.au/blueprint.asd.gov.au)
- 米国 GAO「GAO-25-107795」(2025-07-17、リンク)
- DXプランニング「Access 2021のサポートが終了。古い社内データベースはどうする?」(2026-10-30、リンク)/「取引先からセキュリティチェックシートが届いたら、中小企業がまずやること」(2026-10-29、リンク)
まずは無料でご相談ください
対応できるかの確認・お見積りまでは無料です。その場で契約を求めることはありません。通常、2日以内(土日を含む)にお返事します。