【Microsoft Excel VBA】64ビット(bit)版でエラーが出たときの対応例


Excel VBA のツール開発を依頼され、要件確認のためにサンプルをご提供した時のことです。

ツールを開いたら、こんなエラー・メッセージがでてしまいました。

**************
<エラーメッセージ>
「このプロジェクトのコードは、64bitシステムで使用するために更新する必要があります。Declareステートメントお確認および更新を行い、次にDeclareステートメントにPtrSafe属性を設定してください」
**************

おおっと、いきなりエラーとは(汗 大焦りです。

そのときのエラーの原因と、対応について書きました。

エラー・メッセージの原因は?

調査をしたところ、Excel 32 ビット(bit)版で開発したVBAツールを、Excel 64 ビット(bit)版で実行した際に発生したエラーでした。

この案件は、別の方が要件をヒアリングしており、そのヒアリングした情報に「抜け」があったのです。

忘れがちですが、Microsoft Excel には、「32 ビット(bit)版」と「64 ビット(bit)版」が存在します。

ではまず、どのようにバージョンを確認するか簡単にご説明しますね。

Microsoft Excel のバージョン確認方法

Microsoft Excel(Office) 365 および、Excel 2019・2016 の方を対象にしています。

Excel を開いた状態で、[ファイル] メニューをクリックします。

次に、[アカウント]メニューをクリックします。

[Excel のバージョン情報]をボタンをクリックします。

バージョン情報の画面が表示されて、32 ビットか、64 ビットかも確認できます。

古いバージョンのExcel でバージョンを確認する方法

もし、上記で説明したバージョンより、古いバージョンのExcel をお使いの場合は、外部サイトですが、こちらのサイトが参考になるので、対象の方は参考にしてくださいね。

<参考>Microsoft Excel バージョン確認方法

エラー・メッセージの対応方法

インストール時に明示的に選択しない限り、Office 2016 のバージョンまでは、32ビット(bit)版が、office 365、2019では、64 ビット(bit)版が自動インストールされます。

一般的にまだ、64 ビット(bit)版だと、いろいろと不都合があり、通常は32 ビット(bit)版を推奨されますが、最新バージョンで64 ビット(bit)版が自動インストールされるので、今後、 64 ビット(bit)版 の利用者が増えることでしょう。

そうなると、過去バージョンでは、ほとんど32 ビット(bit)版で、Excel VBAツールが作成されていると思われるので、今回のようなエラーにより使えなくなる可能性があります。

今回のような自体に対応するには、 Excel VBA で開発されているファイルの場合、ピンポイントで対応するのは、なかなか難しい場合があり、結局のところ、「 64 ビット(bit)版 に対処するためのコードを書き加えること」が、王道の対応策になります。

今回は、ちょっと具体的でなくて、すみませんm(__)m

多種多様な環境がこれからもどんどん増えますから、あらゆる環境に対応できるよう、知識を増やなければ、と、Excel VBA 開発エンジニアとして、とても勉強になった事例でした。

事前にお客様環境をしっかりヒアリングすることがなにより大切ですが、32 ビット(bit)、64 ビット(bit)、両方の環境が必要なのであれば、それらの開発環境を準備し、1つ1つ確認しながら対応する、このように対応することで、問題も起きにくくなります!

お客様にも喜んでもらえます!
実際わたしが、そうでした!(^ν^)
The following two tabs change content below.

KomatsuAsami

これまでIT関連企業、システム開発プロジェクトに多数参画し、事務~プログラミングまで幅広く経験。現在、ExcelVBAによるツール開発をメインに従事。