ACCESS 32bitから64bitに変換する方法

32bitから64bitに変換する方法

ACCESSには32bit版と64bit版が存在します。

一般的にバージョンというと、ACCESS2021とかACCESS2019などのOfficeのバージョンを意識されることが多いと思います。

ACCESSはこの2021や2019といったバージョンが変わるとうまく動かないと思われていることが多いのですが、最近はバージョンよりも32bit / 64bitの違いにより動作しないことの方が多いのです。

今回は、ACCESSで作成したデータベースを32bitから64bitに変換する方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

32bitと64bit

Windowsには32bitと64bitが存在します。

bitというのはパソコンがデータを扱う際の単位なのですが、基本は数字が大きい方が処理が早いと思えばよいでしょう。

新しいパソコンですと64bitのものが多くなっていますが、古いパソコンでは32bitが使われていたりします。

OfficeやACCESSなどのソフトウェアについても、32bit版と64bit版があり、最近のACCESSはインストールする際にデフォルトでは64bit版がインストールされるようになっています。

bit数の確認方法

自分のACCESSが32bitか64bitが覚えている方は少ないでしょう。

まずは自分の環境を確認してみましょう。

ACCESSのファイルメニューから「アカウント」を選択します。

さらに表示される、ACCESSのバージョン情報を選択します。

すると、最上部に現在使用しているACCESSのbit数が表示されます。

私の場合は64bitですね。

32bitと64bitの互換性

32bitのACCESSで作成したデータベースを、64bit環境で利用しようとする際、問題なく使えるケースもありますし、一部使えないケースもあります。

使えないケースというのは、ACCESSの機能ではない、Windows APIと呼ばれるWindows側の機能をACCESSから呼び出しているケースです。

これが、32bitと64bitで異なるために、呼び出し方の修正が必要なのです。

ただし、使えない場合もだいたいは以下の2点のコードを修正することで64bit環境で利用できるようになります。

1.DeclareステートメントをDeclare PtrSafeへ修正する

2.Long型変数をLongPtrへ変換する

32bitから64bitへの変換

ACCESSデータベースを32bitから64bitへ変換させる際には、上記の2つを対応しましょう。

DeclareステートメントをDeclare PtrSafeへ修正する

VBAのコード中にDeclareという表現があれば、そのDeclareの後ろにPtrSafeを付けていく、というものです。

詳しくは下記の記事でまとめていますので参照ください。

64ビット対応にDeclareステートメントを修正する

Long型変数をLongPtrへ変換する

64bit環境では整数を扱うために新しいデータ型としてLongLong型(超長整数型)というものが存在します。

自分で変数を宣言する際などにはあまり使わないのですが、WindowsAPIの引数として指定される場合があります。

そのため、32bit環境でLong(長整数型)の引数を指定していると、64bit環境では動作しないことがあるのです。

一方で、すべてLongLong型は32bit環境には存在しないデータ型のため、変数のデータ型をLonglongに変えてしまうと32bitと64bitの混在環境では使用できなくなってしまいます。

そこで便利なのがLongPtrです。

LongPtrは32bitならLong型、64bitならLongLong型を自動的に選択してくれます。

そのため、WindowsAPIなどの引数をLong型で宣言してエラーが出ている箇所について、LongPtr型に置き換えていくことで64bit環境でも動作するようになります。

以上、32bitから64bitに変換する方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。