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