DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Windows8+Office2013でのWord置換え処理で「このコマンドは使用できません。」エラー発生

  • 題名: Windows8+Office2013でのWord置換え処理で「このコマンドは使用できません。」エラー発生
  • 著者: サカモト
  • 日時: 2013/03/10 19:06:33
  • ID: 31389
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[VisualStudio2010,VB.NET,.NET Framework 4.0,Windows8,Office2013]
分類:[.NET]

Windows8+Office2013でのWord置換え処理で「このコマンドは使用できません。」エラー発生


掲題のエラーが発生しており困っています。どなたかOffice2013のWordの置換え処理をご経験された方、Office処理にお詳しい方、ご助言頂けますと幸いで御座います。

【環境】
VisualStudio 2010 VB.NET
.NET Framework 4.0

【処理】
テンプレートとしているWord(doc)、Excel(xls)を読込、中にある置換え文字(【】で挟まれた文字)をシステムのデータで置き換えて、出力する処理を行なっています。

【現象】
Windows7+Office2010環境にて行なうと、docもxlsも正常に処理されるが、Windows8+Office2013環境だと、xlsは正常だが、docは「このコマンドは使用できません。」エラーが発生し、置き換え後の出力ができません。

【参照】
以下を参照しています。
・Microsoft.Office.Core(Office.dll)
 →C:\Windows\assembly\GAC_MSIL\Office\14.0.0.0__<割愛>\Office.dll
  バージョン:2.5.0.0
・Microsoft.Office.Interop.Word(Microsoft.Office.Interop.Word.dll)
 →C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Word.dll
  バージョン:14.0.0.0

【エラー箇所】
以下のメソッドの「Replace:=Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll」部分でエラーとなります。
ちなみにdocAppは
Protected docApp As Object = Nothing
として、Objectとして宣言し、扱っております。

''' <summary>
''' 置換
''' </summary>
''' <param name="oldValue">置換される文字列。</param>
''' <param name="newValue">置換する文字列</param>
''' <remarks></remarks>
Public Sub SearchReplace(ByVal oldValue As String, ByVal newValue As String)
Try
With docApp
.Selection.Find.ClearFormatting()
.Selection.Find.Text = oldValue

.Selection.Find.Replacement.ClearFormatting()
.Selection.Find.Replacement.Text = newValue

.Selection.Find.Execute(Replace:=Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll)
End With

Catch ex As Exception
Throw ex
Finally

End Try

End Sub

−−−−−−−−−−

些細な事でもご助言頂けますと助かります。

以上、宜しくお願い致します。
この投稿はマルチポストです。

●マルチポストされている場所
http://bbs.wankuma.com/index.cgi?mode=al2&namber=65659

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
ご報告いただいたマルチポスト先への投稿は、投稿日時にひらきがあるため、元の投稿者であるサカモトさん以外の人によるいたずらの可能性が高いです。
■No31414に返信(管理人さんの記事)
> ご報告いただいたマルチポスト先への投稿は、投稿日時にひらきがあるため、元の投稿者であるサカモトさん以外の人によるいたずらの可能性が高いです。

チェックが遅くなりましてすいません。
マルチポストしておりません。

このスレッドへの回答があまりないのは、Windows8でOffice2013のWordがターゲットという、まだ希少な環境下だからだと思っております。

些細な事でも分かる方いましたら、ご助言お願い致します。
自己解決です。

原因:ファイルをOPENする際に、読み取り専用で開いていたため。

見て下さいました方、ありがとうございました。
解決済み!
いたずらでないのでしたら、もう一方の投稿先にも解決した旨を記載しておくとよいでしょう。他の回答者が現れた際に、その方の善意を無駄にしてしまうことにもつながりますし。

複数の掲示板に投稿する行為はそうした無駄を発生させてしまうため、控えることがマナーとなっています。以後気を付けてください。
■No31427に返信(しろうさんの記事)
> いたずらでないのでしたら、もう一方の投稿先にも解決した旨を記載しておくとよいでしょう。他の回答者が現れた際に、その方の善意を無駄にしてしまうことにもつながりますし。
>
> 複数の掲示板に投稿する行為はそうした無駄を発生させてしまうため、控えることがマナーとなっています。以後気を付けてください。
>
管理人さんのレスをよく読んでください。マルチポスト報告のリンク先の内容はサカモトさんが投稿されたものではないとの判断です。そのスレへの書込みを増やすのはあまりよくない気がします。掲示板管理者へ依頼しスレの削除をしてもらったほうがよいのではないでしょうか?
■No31428に返信(shuさんの記事)
> 管理人さんのレスをよく読んでください。マルチポスト報告のリンク先の内容はサカモトさんが投稿されたものではないとの判断です。そのスレへの書込みを増やすのはあまりよくない気がします。掲示板管理者へ依頼しスレの削除をしてもらったほうがよいのではないでしょうか?

失礼致しました。
管理人さんのレスを読み返しました。
私の早とちりでした。

サカモトさんは被害者の可能性が高いという状況について、把握致しました。
失礼致しました。

DOBON.NET | プログラミング道 | プログラミング掲示板