2011-07-06 10 views
0

数分の実験を経て、私は自分の質問に答えました(下記参照)。 SOが2日間で私に電話をしてくれたらその答えを受け入れるよ。.NET経由のWordとのやりとり


私はMATLABの.NET機能を使用してWord文書を作成しています。私はテーブルを作成し、左側の2つのセルを左側の列にマージしたいと思います。これまでのところ私は、テーブルを作成することができます。

NET.addAssembly('microsoft.office.interop.word');   %# Register Word assembly 
wordApp = Microsoft.Office.Interop.Word.ApplicationClass; %# Create an instance of Word 
wordDoc = wordApp.Documents;        %# Get the object that handles documents 
newDoc = wordDoc.Add;          %# Add a new document 
wordApp.Visible = 1;          %# Make Word visible 
selection = wordApp.Selection;       %# Get the selection object to manage selected area 
table = newDoc.Tables.Add(selection.Range, 3, 5);   %# Create a table 
table.Style = 'Table Grid';        %# Add grid lines 

私はselection.MoveDownメソッドを呼び出して、トラブルを抱えています。この方法でMETHODSVIEWを実行すると、次の入力パラメータを示します。

  • Microsoft.Office.Word.Selectionこの
  • System.Objectの単位
  • System.Objectのは
を拡張カウントのSystem.Object

Selection.MoveDown documentation on MSDNは、ユニットパラメータがMicrosoft.Office.Interop.Word.WdUnits.wdCellのMATLABで見つかったWdUnits列挙型であることを示しています。

私の問題は、Extendパラメータに必要なWdMovementType列挙が見つからないということです。私はwdExtend値を使用したいが、私はそれを見つけることができません。 MSDNによれば、Microsoft.Office.Interop.Word.WdMovementTypeにあるはずです。 誰でもwdExtendの場所を教えていただけますか?

それはすなわちMicrosoft.Office.Interop.Word.WdMovementTypeになっていますどこWdMovementTypeが実際に住んでいるん

EDIT。今度はMoveDownメソッドを実行しようとするとエラーが発生します:

 
>> selection.MoveDown(Microsoft.Office.Interop.Word.WdUnits.wdCell, 1, Microsoft.Office.Interop.Word.WdMovementType.wdExtend); 
??? Message: Bad parameter 
Source: Microsoft Word 
HelpLink: C:\Program Files (x86)\Microsoft Office\Office12\1033\WDMAIN11.CHM#36888 

このメソッドを正しく呼び出す方法はありますか?

EDIT

はMoveDownへの呼び出しは、ユニットのwdLine値を使用する必要があります。

 
>> selection.MoveDown(Microsoft.Office.Interop.Word.WdUnits.wdLine, 1, Microsoft.Office.Interop.Word.WdMovementType.wdExtend); 
+0

実行しているMatlabのバージョンは? –

+0

MoveDownを呼び出すために使用している正確な構文と正確なエラーメッセージは何ですか? –

+0

@Andrew Janke - 私はR2011aを使用しています。上記の質問に私が使用しているMoveDown構文とその結果のエラーメッセージを追加しました。 –

答えて

3

私は次のようにしてWの列挙をチェックしましたORDアセンブリ:

 
>> word = NET.addAssembly('microsoft.office.interop.word'); 
>> word.Enums 

結果が含ま:

'Microsoft.Office.Interop.Word.WdMovementType' 

をので、私はそれがMATLABのタブ補完に表示されていなかったにもかかわらず、それにアクセスしてみたいと思いました。不思議なことに、それにアクセスした後に今すぐ表示されます!私はそれがずっとそこにあったと思う。

1

を私はあなたがそれらをダウンロードすることができます は、Word 2010用の最新の1つのアセンブリをダウンロードすることをお勧めからmicrosoft.com How to: Install Office Primary Interop Assemblies

+0

あなたは何を意味するのか分かりません。私はWordアセンブリを持っています(質問のコード例の最初の行を見てください)。問題は、その中にWdMovementType列挙を見つけることができないことです。別のアセンブリが必要ですか? –

+0

あなたにはどのバージョンのアセンブリがありますか? Word 2010の最新のものをダウンロードすることをお勧めします。 – VMAtm