2017-02-13 2 views
0

Wordファイルにある特定の値を検索して返すスクリプトを作成しました。 Ex。スクリプトは、 "([(*)(])"のパラメタでWord文書(Interop.Word)のすべての値を探しています。これは正常に動作します。VBnetは、見つかった値がWordのテーブルの一部であるかどうかをチェックします。

私の問題は、見つかった各値がWordファイルのテーブルの一部であるかどうかを特定することです。目的は、値がWordのテーブルに存在する場合、値が見つかった特定の行を削除することです。

見つかった値がWordのテーブルの一部であるかどうかを確認することはできますか?

ありがとうございます!

答えて

0

テーブルをループしてテキストに変換してテキストを検索することができます。

の文書Word.Documentであることを考慮すると、自動化しています。

Sub FindInTables() 
    Dim oDocument As Document 
    Dim oRange As range 

    Set oDocument = Application.ActiveDocument 
    Set oRange = oDocument.range 

    With oRange.find 
     Do While .Execute(FindText:="bla", Forward:=True, MatchWildcards:=True) 

      If oRange.Tables.Count > 0 Then 
       oRange.Rows.Delete 
      End If 

      oRange.Collapse wdCollapseEnd 
     Loop 
    End With 
End Sub 

基本的に、あなたはあなたを介して検索する範囲で見つけるのオブジェクトを使用して、あなたがチェック:あなたは何の問題VB.NETに、このVBAコードの変換を持たないはず

For each wtable as Word.Table in doc.Tables 

Dim str as string 

Str = wtable.ConvertToText(Separator:=vbTab, _ 
    NestedTables:=False).Text 

If str.Contains("search text") 
    Msgbox("found") 
End if 

Next 
0

テーブル内にあるかどうかを判断するために見つかった範囲内のテーブルの量。その場合は、見つかった範囲の.Rowsコレクションで.Deleteを呼び出します。

関連する問題