Wordマクロの「閲覧モード」によるエラーについて
本日は、Word 2013マクロを扱う処理で遭遇したエラーについて記述します。
先日、Office 2013リリース以前に作成したVB.NETプログラムの、2013/2016での動作確認を行いました。
このプログラムは以下を行います。
1. VB.NETからWordマクロファイルを開く
※このファイルはアプリケーションフォルダ下に保持
2. VB.NETから同Wordファイルのマクロを起動
3. マクロにより同Wordファイル上に文字列データ出力
4. 3.をユーザ指定の場所へ別名保存
本プログラムのインストーラを作成し、インストールして確認します。
すると、Word 2013のみ、上記3.で、以下のエラーが発生してしまいました。
エラー番号:4605
メッセージ:「このコマンドは使用できません。」
少しだけ悩みましたが、調べた結果、原因はWordオプション内の「閲覧モード」の設定だと分かりました。
Word2013からは、オプションの「基本設定」の中に
「電子メールの添付ファイルや編集できないファイルを閲覧表示で開く」
という項目があります。
確認環境では、Word2013のみ、このチェックがデフォルトでONになっていました(クリックで拡大)。
ちなみに2016ではデフォルトでOFFになっています。
試しに、このチェックをONにし、読み取り専用状態のWordファイルを開いてみます。
すると確かに、文字入力等が不可の「閲覧モード」で表示されてしまいます。
【通常の場合】
先述のプログラムのエラーは、以下により発生していました。
1. 作成プログラムをインストール
2. WordマクロファイルはProgram Filesフォルダ下に格納される
3. 通常Program Filesフォルダ下は読み取り専用
4. プログラム実行
5. 3.によりWordマクロファイルが「閲覧モード」で開かれる
6. そこに文字列データ出力でエラー発生
そのため、以下のように修正しました。
・Program Filesフォルダ下のWordマクロファイルを直接開くのを止める
・プログラム実行時、同ファイルをユーザのローカルフォルダにコピー
・そのファイルに対し処理を行う
Word2013/2016のデフォルト設定の差異の理由は不明ですが、改めてバージョンごとの確認は大事だと感じた次第です。
以上
【株式会社 エム・システム】 本 社 :〒124-0023 東京都葛飾区東新小岩8-5-5 5F TEL : 03-5671-2360 / FAX : 03-5671-2361 盛岡事業所 :〒020-0022 岩手県盛岡市大通3-2-8 3F TEL : 019-656-1530 / FAX : 019-656-1531 E-mail : info@msystm.co.jp URL : http://msystm.co.jp/ : http://msystm.co.jp/excel_top.html ブログ : http://d.hatena.ne.jp/msystem/ Facebook : http://www.facebook.com/msysteminc