私は自分のドキュメントから特定のフォーマットのすべてのテキストを含む新しいドキュメントを作成する方法を探しています。指定した色でフォーマットされたすべてのテキストを検索
私がこれまでに書いたものについては、以下を参照してください、私はここにこだわっ:
- 文書の末尾に到達したとき、私は私のループを阻止する方法を教えてくださいまたは静的なループを避けるためにコードに知性を追加する方法は、「すべての文書をスキャンする」ことですか?シンディさんの素敵な先端へ
Option Explicit
Sub Macro1()
Dim objWord As Application
Dim objDoc As Document
Dim objSelection As Selection
Dim mArray() As String
Dim i As Long
Dim doc As Word.Document
For i = 1 To 100
ReDim Preserve mArray(i)
With Selection.Find
.ClearFormatting
.Font.Color = wdColorBlue
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = True
.Execute
End With
mArray(i) = Selection.Text
Next
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
For i = 1 To 100
objSelection.TypeText (mArray(i))
Next
End Sub
'For i = 1 To ThisDocument.Words.Count - 1'を使ってドキュメント内のすべての単語をループすることができます。' ThisDocument.Words(i) 'で単語にアクセスできます – gizlmo
現在、探しているものと同じくらい多くの検索をしたいのですが、どれくらいの出現があるかを調べることができれば、あなたの方法にはいいですよ、ありがとう。 –
Wordでの検索の使用例はたくさんありますが、見つからなかったとは思えません。Find.Executeはブール値を返します。検索が成功するとTrueを返します。ブール変数を宣言し、それをTrueまたはFalseに設定し、Findを実行するDo-loopでFind.Executeが成功したかどうかをテストします。そうだったら、続けてください。そうでなければ、ループは終了する。あなたのコードにすでにある 'wdFindStop'は、Wordが文書の先頭で再び始まるのを防ぎます。 –