Office 32bit/64bit問題

以前から Office 64bit とそれまでの Office 32bit で VBA のマクロに互換がないことが知られています。

Office の 32 ビット バージョンと 64 ビット バージョン間の互換性

https://docs.microsoft.com/ja-jp/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

Declare で定義している API の部分や ActiveX コントロール(ocx)が主に影響します。

このため、Office 2016 までは「明示的に選択しない限り、32bit Office がインストールされる」という仕様になっていました。
しかしながら、Office 2019 からは「64bit OSなら、明示的に選択しない限り、64bit Office がインストールされる」という動作に変更となりました。

インストール プロセスを始める前に、明示的に 32 ビット版を選択しなければ、64 ビット版の Office が自動的にインストールされます。

https://support.office.com/ja-jp/article/64-ビット版または-32-ビット版の-office-を選択する-2dee7807-8f95-4d0c-b5fe-6c6f49b8d261#32or64Bit=新しいバージョン

この結果、マクロが動かないといった問い合わせがエンドユーザーから来る、あるいは IT 系部署・担当者に来ることになります。

規模が小さい、自分たちで Office のバージョンを制御できるケース

32bit をインストールし直してもらうようにお願いする・フォローするか、Office 2019 とサポート期間が同じ Office 2016 を当面使うように仕向ければ延命できます。

ただし、次の Office で再燃するので、計画的に 64bit/32bit 両対応を考えた方が良いでしょう。

客先対応が必要なので Office バージョンを制御できないケース

Office 2019 がどのくらいのスピードで普及するかわかりませんが、「動かない!」という問い合わせが来ることになりますので、急いで 64bit 互換対応を考えなければなりません。
(客先次第ですが、32bit のインストール手段の説明に苦労する、納得してくれないなど、難しい可能性があるため)

やっかいなのは ActiveX コントロールを使っているケースです。
64bit 版が存在しない場合がほとんどなので、その代替策を考えて設計・実装することになり、開発期間が延びがちです。

個人的には…

Excel などの VBA はあくまでメイン機能をアシストする立場だと思いますので、Win32API を駆使したり、ActiveX コントロールで画面をリッチにしたりという方面は避けた方が良いと思います。

どうしても高機能なものを開発するのであれば、マクロではなく、アドインの開発を考えるなど、よりモダンな開発環境を使った方が良さそうです。

コメントを残す

メールアドレスが公開されることはありません。