0

私は現在、Microsoft Word ドキュメントを自動化してテーブルを引き出して新しいドキュメントに入れる大きなスクリプトを作成しています。しかし、次のドキュメントに進むことができるように、いつドキュメントの最後に到達したかを知る必要があります。

Set objWord         = CreateObject("Word.Application")
Set objNewDoc       = objWord.Documents.Add()
Set objNewSelection = objWord.Selection
Set objDoc = objWord.Documents.Open( C:/Users/blahdoc.doc )
Set objSelection = objWord.Selection

これはスクリプトではありませんが、読み取り用にドキュメントを定義して開いた方法です。必要に応じて、詳細を喜んで挿入します。

同様の質問を探しましたが、該当するものは見つかりませんでした。事前に申し訳ありません;)

4

1 に答える 1

1

実際には、「ドキュメントの最後に到達する」ことを心配する必要はありません。ありがたいことに、テーブルはTablesのプロパティであるコレクションに格納されWord.Documentます。次のように、すべてのテーブルを反復処理できます。

For Each oTable In objNewDoc.Tables
    If Left(oTable.Cell(1, 1).Range.Text, Len(oTable.Cell(1, 1).Range.Text) - 2) = "Some string" Then
        MsgBox "Found one!"
    End If
Next

これをまとめるときに私が遭遇した 1 つの問題は、すべてのセルのテキストに、キャリッジ リターン (ASCII 13) とそれに続く BELL (ASCII 7) の 2 つの文字で構成されるセルの終わりマーカーがあることです。テキストを文字列値と比較できるように、私Leftはそれらを取り除いていました。これは、あなたがやろうとしていることだと私は理解しています。

于 2013-11-01T22:27:58.550 に答える