Windows 8 搭載ノートPCだった東芝ダイナブック BX/35HWHT(型番:PABX351HSWWT)にプリインストールされているMicrosoft Office Home&Bussiness 2013(PIPC)が64bit版であることに数年間まったく気付かずに、お客様におかしな使い方をしてもらう設定をしていたという話です。
古いマクロ付きExcelファイル
ずいぶん前の話から始まりますが、まだWindows8が主流だった頃にXPから8に買い換えた新規PCでトラブルがありました。
XPからデータを移したファイルの中に、一つだけ8のパソコンでマクロが動かないExcelファイルがあったのです。開始月を選んで12か月分のカレンダーをA4一枚に印刷してくれるというコチラからダウンロードできる万年カレンダーのテンプレートです。
当時からWindows7までの動作対象だったので、VBAのマクロが8で動かないのはしょうがないとしか言いようがなかったです。
とりあえずXPで利用していたOffice XPのディスクでExcel2002だけインストールして、そのマクロファイルだけExcel2002から開く利用方法でその時は済ませました。ダウンロードできる万年カレンダー4.2はExcel2002では動きませんが、利用されていた万年カレンダー4.0の古いファイルは動いていました。
現行のプリインストールOfficeでは厳密に付属PC一台のみの利用と規定されていますが、Office XPの当時は同一ユーザーが利用する2台目のPCにインストールは可能でした。厳密にライセンス的なことをいえばグレーだったかもしれません。
Windows10で動かなくなった
それから年月が経ち、同じPCでWindows8から8.1を経由してWindows10にアップグレードして利用されていました。それでも数か月前まで、Excel2002から例のマクロファイルは利用できていました。
それがWindows10のFall Creators Updateまで上げて、最新のWindows Updateの更新プログラムが全部入った状態では、このマクロファイルがExcel2002でもマクロエラーを吐くようになって使えなくなったと連絡がありました。
最初はこのファイルが壊れただけと考えていましたが、お客様宅でまだ保管してあったXPパソコンから元ファイルを取り出し直してもVBAかActive Xで修正が必要な項目があるとエラーを出します。
検証PCのWindows10バージョン1709にExcel2002を入れて試しても同じエラーが出るのに、検証用Windows7 SP1のExcel2002ではマクロ有効で開きます。どうやらマクロの一部がWindowsの更新プログラムで使えなくなってしまったようです。とっくにサポート終了しているので使えなくなって当然と言えば当然の話です。
実は64bit版Officeだった
説明が長くなりましたが、もう使えませんと言いそうになったところで検証PCの最新版Excel2016で開いてみるとあっさりマクロ有効で開きます。
あいかわらずお客様のExcel2013では開かないので、なんでなんでとよくよく見てみると、このプリインストールOfficeがなんと64bit版だったというオチです。Excelを開いてファイル→アカウント→Excelのバージョン情報 を見ると64bitバージョンでした。
確かに購入時の工場出荷時状態から、Windows8のスタートメニューにあるOfficeのセットアップアイコンから初回セットアップを行ったOfficeそのままの状態です。
32bit版で再インストール
このプリインストールで64bit版のMicrosoft Officeを32bit版に変更するためには、Officeの再インストールが必要です。マイクロソフトアカウントに紐づけしてOffice.comからダウンロードできるのは32bitバージョンのOfficeとなります。
32bit版のExcel2013で、例の万年カレンダーの最終版4.2を開くとあっさりとマクロ有効(互換モード)で開きます。そこから別名保存でマクロ有効ブック(.xlsm)に変換してもばっちり動きました。
いままでの苦労はなんだったんだという感じで、あっけなく解決です。
マクロ互換性なら32bit版Excel
古いマクロ付きExcelファイルを利用するなら、断然32bit版 Offcieを利用すべきという結論でした。
64bit版のWindowsでも、Officeは32bit版が入っているはずだという先入観があったといいますか、まさか64bit版が入っているPCがあるとはこれっぽちも頭になかったです。数年経ったからこそ、ずばっと解決できでよかったという話でした。