各行の終わりに移動し、括弧内に太字のテキストを入力します
MSWordの各行の終わりにある特定の単語の書式設定を自動化する必要があります。Wordマクロの制限により、仕事をするためのマクロを記録できなかったので、ここに投稿する必要があります。私が必要とするのは次のことをすることだけです:-
- (の開始について各行を確認してください
- )が文の終わりとして見つかるまで、括弧内のテキスト(括弧を含む)の選択を開始します
- テキストを太字にフォーマットする
- ファイルの終わりまでこれを行います
- 例外:すでに太字で下線が引かれている見出しはフォーマットしないでください。
どうすればそれができますか?または、まったく何もしていないので、コードを修正してください。
Sub m1()
'
' m1 Macro
'
'
Dim i As Integer
With Selection.Find
For i = 1 To lastRow
.Forward = True
.ClearFormatting
.MatchCase = False
.Wrap = wdFindContinue
.Execute FindText:="("
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Bold = wdToggle
Selection.Font.BoldBi = wdToggle
Next
End With
End Sub
回答
1 RichMichaels
ドキュメントの本文のスタイルが常に見出しスタイル以外の特定の指定されたスタイルであることがわかっている場合は、マクロは必要ない場合があります。次のように検索と置換を設定します。
ワイルドカードコードを画面クリップから読み取るのが難しい場合は、次のようになります。[(] * [)]
Roy
私はついにこのコードを構築することに成功しました:
Sub m1()
Selection.HomeKey Unit:=wdStory
With Selection.Find
Do While .Execute(FindText:="(", Forward:=True, MatchWildcards:=False) = True
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Bold = wdToggle
Selection.Font.BoldBi = wdToggle
Selection.EndKey Unit:=wdLine
Loop
End With
End Sub
うまくいきました!:) 手助けありがとう!
ZygD
MSWordは行では機能しません。次のVBAコードは、括弧で終わる段落を検索し、内容とともに太字にします。
Sub Bold_ending_parentheses()
Dim par As Word.Paragraph
Dim str As String
Dim closes As Byte
Dim opens As Long
For Each par In ActiveDocument.Paragraphs
str = StrReverse(par.Range.Text)
closes = InStr(Left(str, 4), ")")
If closes Then
opens = InStr(str, "(")
If opens Then
With par.Range
.Find.Text = StrReverse(Mid(str, closes, opens - closes + 1))
Do
.Find.Execute
If .Find.Found Then .Font.Bold = True
Loop While .Find.Found
End With
End If
End If
Next
End Sub
編集:
検索と置換の使用例。これを使用すると、括弧内のすべてのテキストが太字になります(段落/行の終わりにあるという要件は考慮されていません)。
Sub ApplyBoldWithinParentheses()
With ActiveDocument.Content.Find
.ClearFormatting
.Text = "[(]*[)]"
.Replacement.Font.Bold = True
.Format = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End Sub