|
分類:[.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
−−−−−−−−−−
些細な事でもご助言頂けますと助かります。
以上、宜しくお願い致します。
|