2016-08-25 5 views
0

私は、単語文書に下線を引いた単語を見つけ出し、それらをhtmlタグに変換するマクロを作成することができるかどうかを探していました。私はそれを行うためにマクロを記録しようとしましたが、すべての単語にタグを追加するだけです。VBA Wordで下線を引いた単語を見つけて追加する

Dim myWords()  As String 
Dim i    As Long 
Dim myDoc   As Document: Set myDoc = ActiveDocument ' Change as needed 
Dim aRange   As Range: Set aRange = myDoc.Content 
Dim sRanges   As StoryRanges: Set sRanges = myDoc.StoryRanges 
Dim ArrayCounter As Long: ArrayCounter = 0 ' counter for items added to the array 
Dim Sentence  As Range 
Dim w    As Variant 

Application.ScreenUpdating = False 
ReDim myWords(aRange.Words.Count) ' set a array as large as the 
            ' number of words in the doc 

For Each Sentence In myDoc.StoryRanges 
    For Each w In Sentence.Words 
     If w.Font.Underline <> wdUnderlineNone Then 
      myDoc.Sentence.Range.InsertBefore "<u>" 
      myDoc.Sentence.Range.InsertAfter "</u>" 
     End If 

答えて

1

さて、このコードはfamiliarになります:私はまた、私が使用しようとしたコードの一部を提供します!

ここでは、下線が引かれた単語の周りにタグを追加する必要があります。下線プロパティを削除してから、タグを追加する必要があります。それ以外の場合、wordは新しく導入されたタグを新しい単語として扱い、処理を繰り返します。

Sub ChangeUnderLineToHTML() 
    Dim myDoc   As Document: Set myDoc = ActiveDocument ' Change as needed 
    Dim aRange   As Range: Set aRange = myDoc.Content ' Change as needed 
    Dim sRanges   As Variant: Set sRanges = myDoc.StoryRanges 
    Dim sentence  As Object 
    Dim w    As Object 

    For Each sentence In sRanges 
     For Each w In sentence.Words 
      If w.Font.Underline <> wdUnderlineNone Then 
       w.Font.Underline = wdUnderlineNone 
       w.Text = "<u>" & w.Text & "</u>" 
      End If 
     Next w 
    Next sentence 

    'Clean Up 
    Set myDoc = Nothing 
    Set aRange = Nothing 
    Set sRanges = Nothing 
    Set w = Nothing 
    Set sentence = Nothing 
End Sub 
+0

ありがとうございました!これはすばらしい結果でしたが、ステートメントに下線が引かれていなくても、すべての単語にタグを付けました。しかし、私はそれを修正する方法を知っている必要があります。再度、感謝します! –

関連する問題