こんにちは。最近環境構築に足を引っ張られているたきもとです。
先日はvagrantやcentOSを使った環境構築に失敗して、出版社にまで問い合わせちゃいました。
その時の記事はこちら。
[PHP]エラー表示設定をphp.iniで。vagrant centOS 出版社 と戦った話 | たきもとけんご.com
今回はマクロが走らなくて困った、という話です。
原因はexcel 64bit 特有の問題で、いわゆる 制限事項 に引っかかったことです。
動作環境は次の通り。
//OS
windows8.1
64bit
RAM = 8GB
//Office
excel 2016 64bit
マクロを含むexcelを立ち上げたらエラーが出現
.xlsmを立ち上げると上の画像のようなエラーが。
「はこのマシンでは利用できないため、オブジェクト を読み込めませんでした。」
参りましたね。
主語がないエラーって。
excel 64bit は制限事項が多い
解決策を探してみるとあっさり発見。
次のブログ様にお世話になりました。
「はこのマシンでは利用できないため、オブジェクト を読み込めませんでした。」~64bit版Excelで不可解なエラーに遭遇した | ぼちぼち書くブログ
直接の原因は
–ComCtlが64bit版ではサポートされていない
ことです。
とはいえ、そもそもexcel 32bit/64bit の違いはなんなのか知りたかったので、ここではoffice 32bit/64bit 版の違いを紹介します。
Office 32bit/64bit の違い
参考にしたのは次のページ。
64 ビット版の Office にはいくつかの制限事項がありますが、以下の場合に適しています。
- 複雑な計算、多くのピボットテーブル、外部データベースへの接続、PowerPivot、PowerMap、または PowerView が含まれるエンタープライズ規模の Excel ブックなど、非常に大きなデータ セットを操作する場合。 64 ビット版の Office ではパフォーマンスが向上することがあります。
- PowerPoint で非常に大きな画像、ビデオ、またはアニメーションを操作する場合。 64 ビット版の Office は、このような複雑なスライド セットを扱うのに適していることがあります。
- 非常に大きな Word 文書を操作する場合。 64 ビット版の Office は、サイズの大きな表、グラフィックなどのオブジェクトが含まれる Word 文書を扱うのに適していることがあります。
- Project で 2 GB を超えるファイルを操作している場合。特に、プロジェクトに多くのサブプロジェクトが含まれる場合。
- 既に使用している 64 ビット版の Office を保持したい場合。 32 ビット版と 64 ビット版の Office プログラムは両立しないため、同一のコンピューターに両方をインストールすることはできません。
- アドインやドキュメントレベルのカスタマイズなど、社内 Office ソリューションを開発している場合。
- 組織で、Office アプリケーションにハードウェアのデータ実行防止 (DEP) を適用する必要がある場合。 DEP は、一部の組織でセキュリティを強化するために使用する、ハードウェアとソフトウェアのテクノロジのセットです。
上記のいずれの状況も該当しない場合、通常は、32 ビット版の Office が適しています。
注 32 ビット版の Office は、32 ビット版と 64 ビット版両方の Windows で問題なく動作します。
引用: Microsoft Office の 32 ビット版と 64 ビット版を選択する | MS Office 公式ページ
今回の直接の原因となった箇所についても注意書きがありました。
それがこちら。
64 ビット版の Office の制限事項
場合によっては、64 ビット版の Office はパフォーマンスが向上することがありますが、次の制限事項があります。
ActiveX コントロールのライブラリである ComCtl コントロールを使用するソリューションは動作しません。
(以下省略)
引用: 64 ビット版の Office の制限事項 | MS Office 公式ページ
いわゆるフツーの使い方をするなら32bit版でも64bit版でも気にしなくてOKです。
ただ、VBAを走らせてどうこうする人にとっては上述した黄色線の箇所が気になるところ。
客先でどうしても64bit版 officeで動作させなければならないような状況でない限り、
–Office 32bit版を使った方が良い
という結論です。
環境構築に無駄な時間を割きたくないですよね。
1台のPCに 32bit/64bit 両方のOfficeを入れてこの問題を回避しよう、と考えましたが、ダメでした。
注意書きにある通りですね。
だから私は、
-Office 64bit版 をアンインストール
-Office 32bit版 をインストール
しました。
ちなみに、PC購入後にMS Officeを初めて使った時、プロダクトキーを打ち込んでいれば今回はその必要はありません。
プロダクトキーなしで再インストール可能です。
office 64bit をアンインストールして, 32bit版を再インストールする方法
先述した通り、1台のPCに 32bit/64bit 両方のOfficeを入れることはできません。
そこで、
-Office 64bit版をアンインストール
-Office 32bit版をインストール
します。
Office アンインストール
コントロール パネル\プログラム\プログラムと機能
Microsoft Office Home and Buisiness Premium -ja-jp をアンインストール
*Officeのバージョンは人によって異なります
アンインストール後、一度再起動が必要です。
32bit版 Office インストール
MS アカウントにサインイン
サービスとサブスクリプション
Office 365設定
Office Home and Buisiness Premium (←これは人によって異なるかも)
追加のインストールオプション
Office -32ビット(推奨) をインストール
まとめ
買ったPCが64ibt OSだからといって、Officeまで64bit版をインストールすると痛い目に遭う
はじめて64bit OSのPCを買って調子に乗っていました。
まさかOfficeまで 32bit/64bit の区別があるなんて知りませんでした。
先日の記事([PHP]エラー表示設定をphp.iniで。vagrant centOS 出版社 と戦った話)でもそうですが、環境構築って大切ですね。
従来の環境と同じようにプログラムを走らせたいのなら、PCは変えても環境は変えてはいけませんね。
良い勉強になりました。
お世話になったサイト様/ブログ様
助かりました。ありがとうございました。
「はこのマシンでは利用できないため、オブジェクト を読み込めませんでした。」~64bit版Excelで不可解なエラーに遭遇した | ぼちぼち書くブログ