OFFICE2019から64ビット版のインストールがデフォルトに!365も同様 マクロの挙動に注意が必要 明示的に32ビット版をインストールする方法も紹介

スポンサーリンク

先日、何気なくマクロを利用したエクセルファイルを開くと、コンパイルエラーが。

コンパイルエラー

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

スポンサーリンク

知らない間にOffice365が64ビット版になっていた

そういえば最近、Officeをアンインストールして再インストールしました。そのときにOffice365が64ビット版になっていたんですね。

「Microsoft Teams」も復活していました。

Microsoft Teamsが勝手に起動! アンインストールしても再起動するとまた復活する! 自動起動しないように完全に眠ってもらう2つの方法
最近になってまた「Microsoft Teams」のサインイン画面がWindows10の起動時に表示されるようになりました。ずいぶん前に、アンインストールしたはずなのですが、また最近出現し始めました。Microsoft T...

そもそも、MicrosoftはOfficeは32ビットを推奨していたのですが、調べてみるとOffice2019からは明示的に選択をしないと64ビット版がインストールされるようになったようです(それにともない365も64ビット版がデフォルトでインストールされるようになりました)。

Office2016まではデフォルトで32ビット版がインストールされていた

Office2016までは、Microsoftでは32ビット版を推奨していました。

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

64 ビット版または 32 ビット版の Office を選択する(Office 2016)

ところが、「新しいバージョン」(オフィス2019・365)では、デフォルトでは64ビット版がインストールされるように変更されました。

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

64 ビット版または 32 ビット版の Office を選択する 新しいバージョン

古いパソコンではまだまだ32ビット版のWindows10を利用されている方も多いと思いますが、その場合はWindows10に合わせて32ビット版がデフォルトでインストールされます。

ところが、Windows10 64ビット版を利用されている方は、そのままOffice2019または365をインストールすると64ビット版Officeがインストールされます。

超簡単! Windows10 (Pro・Home対応)を32bitから64bitにUSBを用いて無料でクリーンインストールする方法
Windows7の頃はまだ32bitが全盛期でした。ですからWindows10無料アップグレードの際に、32bit版Windows7をアップグレードされた方も多いと思います。32bitからのアップグレードは自動的にWindows10も32...

インストールされているOfficeが64ビット版か32ビット版か確かめる方法

インストールされているOfficeが64ビット版か32ビット版かを確かめる方法は簡単です。

エクセルなどのアプリから「ファイル」「アカウント」「Excel のバージョン情報」をクリックします。

「ファイル」「アカウント」「Excel のバージョン情報」

すると、「エクセルのバージョン情報」が表示され、末尾に「32ビット」または「64ビット」が表示されます。

Microsoft Excel for Office 365 のバージョン情報

明示的に32ビット版Officeをインストールするには

すでに64ビット版Officeがインストールされている場合は、一旦アンインストールする必要があります。その後、再び32ビット版Officeを再インストールします。

Officeのアンインストール中

自分はOffice2019を持っていないのですが、Office365とほぼ同様に選択をすることが可能です。

Office365の場合は、「portal.office.com」にアクセスして、「Officeのインストール」の前に「その他のインストールオプション」をクリックします。

その他のインストールオプション

インストール情報が表示されますので、「バージョン」から必要なビット数を選択してから「Office のインストール」をクリックすればインストールしたいバージョンを選択することができます。

明示的に64ビットと32ビットが選択できる

64ビット版Officeでのトラブルは今のところマクロだけ

今のところ、自分の環境では64ビット版Officeでのトラブルは最初にお伝えした「コンパイルエラー」だけです。

64ビット版ではコンパイルエラーになる

冒頭でもお伝えしたように、エラーメッセージは「このプロジェクトのコードは、64 ビット システムで使用するために更新する必要があります。Declare ステートメントの確認および更新を行い、次にDeclare ステートメントに PtrSafe 属性を設定してください。」でしたから、マクロを下記のように、64ビット版の場合と32ビット版で「#If」関数で条件分岐するだけです。

「VBA7」「Win64」(64ビット版エクセル)のときは、Declareの後に「PtrSafe」を追加し、そうでなければ#Elseで従来のDeclareステートメント(32ビット版)を実行しています。

下図では、#Else以下が赤字になっていますが、32ビット版でも64ビット版でも問題なく動作します。

条件分岐で64ビットと32ビットに対応

Microsoftは今後64ビット版Officeを推奨してくる

今後、MicrosoftはOfficeも64ビット版を推奨してきます。いずれOfficeの32ビット版が消滅する恐れもあります。

64 ビット版を選択する理由
一般に、64 ビット版の Windows を実行しているコンピューターでは、従来の 32 ビット版と比べて、処理能力やメモリなどのリソースがより豊富です。 また、64 ビット アプリケーションは、32 ビット アプリケーションよりも多くのメモリにアクセスできます (最大 1,840 万ペタバイト)。 このため、シナリオに大きなファイルや大きなデータ セットの操作が含まれており、かつ、お使いのコンピューター上で 64 ビット版の Windows が実行されている場合、次のようなケースでは、64 ビット版が適しています。

64 ビット版または 32 ビット版の Office を選択する

上記のサイトでは、64ビット版を利用する際の確認事項がいくつか紹介されています。

今回のマクロのエラーについては下記のように記されていました。

VBA コードで Declare ステートメントを使用する ほとんどの VBA コードは、64 ビット版と 32 ビット版を使用する場合、変更する必要はありません。ただし、ポインターやハンドル用に、Long のような 32 ビット データ型を使用して、Declare ステートメントで Windows API を呼び出す場合は、変更が必要です。 ほとんどの場合、PtrSafe を Declare に追加して、Long を LongPtr に置換すると、Declare ステートメントは 32 ビット版と 64 ビット版の両方に対応します。 ただしこれは、まれなケースで Declare する 64 ビット版 API が存在しない場合は、実行できません。 64 ビット版の Office で実行できるように、変更する必要がある VBA の内容の詳細については、「64 ビット Visual Basic for Applications の概要」を参照してください。

64 ビット版または 32 ビット版の Office を選択する

今後、次のバージョンOffice 2022?が販売されるまでの間に、64ビット版Officeを利用して、過去の資産を少しずつ64ビット版で対応できるように準備をしておく必要があるかもしれません。

スポンサーリンク
Office・Windows
スポンサーリンク
リーダーの独り言

コメント

タイトルとURLをコピーしました