Word.Selectionを使用して最初に試しましたが、一度に1行ずつコピーして貼り付ける方法を見つけられませんでした。 Word.Selectionを使用することは可能かもしれません。
私が考えたのは、一度に1つのセルをコピーすることですが、Rangeプロパティはテーブルのセル構造を保持しています。私はWordモデルを調べて、行の終わりとして区別するために、すべての行の後にある種の終了文字があるかどうかを調べようとしました。そのような文字がありますが、それはすべての細胞のためです。この文字を見つけるには、オフィスのボタン(ホームの他に)をクリックし、単語オプションをクリックし、ディスプレイ上のの部分をクリックして、常にこのフォーマットマークを画面に表示します。、すべてのフォーマットマークが表示されます。これは、ワードドキュメント内の印刷できない文字をすべて表示します。これはあなたが見ることができるシンボルです。
この記号はセルの構造情報を保持し、露出したANSI文字は13 + 7です。13は段落記号、7は「セルの終わり」のマーカーです。これは、ファイル内のセル構造管理を指すさらなる情報を保持します。 Word 2007では、これら2つの文字が1つの文字として表示されるので、セルの範囲からこの文字を削除する必要があります。
私はマスターテーブルから必要なすべてのセルを保持するためのリストを作成しました。次のコードは、目的がフォーマットされたテキストを得ることであった
Microsoft.Office.Interop.Word.Table table = b.Range.Tables[1];
table.ID = b.Name;
for (int colCounter = 1; colCounter <= masterTable.Columns.Count; colCounter++)
{
Microsoft.Office.Interop.Word.Range sourceRange = masterTable.Cell(1, colCounter).Range;
Microsoft.Office.Interop.Word.Range targetRange = table.Cell(1, colCounter).Range;
object oCharacter = Microsoft.Office.Interop.Word.WdUnits.wdCharacter;
object negOne = -1;
sourceRange.MoveEnd(oCharacter, negOne);
targetRange.MoveEnd(oCharacter, negOne);
targetRange.FormattedText = sourceRange.FormattedText;
}
レンジからの最後の文字を削除し、各セル範囲から文字を除去することにより、その後
List<Microsoft.Office.Interop.Word.Cell> masterTableCells=new List<Microsoft.Office.Interop.Word.Cell>();
、我々はそれを指し示すことができます特定のセルの構造であり、テーブル全体ではありません。
フォーマットされたテキストプロパティのみを使用してループを実行しようとすると、テーブルの破損エラーが発生します。お役に立てれば。
table.Cell()を使用できないと言うと、Range.Textは試したコードを持っていて動作しません。 MSによると、これは書式設定でさえできます。初心者のためにこのリンクをチェックしてください。http://msdn.microsoft.com/en-us/library/aa537149%28v=office.11%29.aspx – MethodMan
私が持っているマスターテーブルのフォーマットを確実にする必要があります。私はそれがRange.Textでできるとは思わない。 – gizgok
あなたは素晴らしい例を提供するリンクを見たことがあります。 – MethodMan