文書からテーブルを削除するために文書を繰り返し処理するVBAコードがあります。次のコードは、VBAで正常に動作します:新しいRange.Find方法があるのでMicrosoft Word文書を繰り返してテーブルを検索して置き換えます
Set wrdDoc = ThisDocument
With wrdDoc
For Each tbl In wrdDoc.Tables
tbl.Select
Selection.Delete
Next tbl
End With
残念ながら、私は簡単に、おそらく、C#にこのコードを変換することはできません。私が試した3つの事柄は、それぞれ失敗しています。 (再書き込みVBAコードの)
初の試み:
doc = app.Documents.Open(sourceFolderAndFile); //sourceFolderAndFile opens a standard word document.
var rng = doc.Tables;
Range.Find.Execute(... //NOPE! No Range.Find available for the table collection.
...
誰かが助けてくださいでした:私もこれを試してみました
doc = app.Documents.Open(sourceFolderAndFile); //sourceFolderAndFile opens a standard word document.
var rng = doc.Tables;
foreach(var item in rng)
{
item.Delete; //NOPE! No "Delete" function.
}
:
foreach (var item in doc.Tables)
{
item.Delete; //NOPE! No "Delete" function.
}
私はこれを試してみました私は、C#とWord Interop(Word 2013と2016)を使用して、ドキュメントを繰り返し処理し、テーブルを検索し、次にそれを選択する、削除する、または置き換えるなどの機能を形成しますか?
ありがとうございます!
テキストのような、画像など、他の項目でテーブルを置き換えるためにレンジ(RNG)を使用することができますおそらく、あなたは後方使用する必要がありますループ?これは、コレクションからアイテムを削除するときに通常行うことです。なぜあなたはSetRangeを使用していますか? – Jbjstam
私が知る限り、すべてのテーブルが最初から最後まで見つかるので、逆ループを実行する必要はありません。 SetRangeに関しては、それは(私が言うことができる限り)テーブルを選択し、それを削除する最良の方法です。より良い選択肢があれば、私はすべての耳です:) – Bill