Pergi ke akhir setiap baris dan teks tebal di dalam tanda kurung

Dec 30 2020

Saya perlu mengotomatiskan pemformatan kata-kata tertentu di akhir setiap baris di MS Word. Karena saya tidak dapat merekam makro untuk melakukan pekerjaan karena keterbatasan makro Word, saya harus mempostingnya di sini. Yang saya butuhkan hanyalah melakukan hal berikut: -

  1. Periksa setiap baris untuk awal (
  2. Mulai memilih teks di dalam tanda kurung (termasuk tanda kurung) sampai) ditemukan sebagai akhir kalimat
  3. Format teks menjadi tebal
  4. Lakukan ini sampai akhir file
  5. Pengecualian: Jangan format judul yang sudah dicetak tebal dan bergaris bawah.

Bagaimana saya bisa melakukan itu? Atau tolong perbaiki kode saya karena tidak melakukan apa-apa.

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

Jawaban

1 RichMichaels Dec 30 2020 at 22:12

Anda mungkin tidak memerlukan makro jika Anda tahu bahwa Gaya teks isi dokumen Anda selalu merupakan gaya tertentu selain gaya Judul. Siapkan Find and Replace Anda seperti ini:

Jika kode wildcard sulit untuk dibaca dari klip layar adalah: [(] * [)]

Roy Dec 31 2020 at 13:51

Saya akhirnya berhasil membangun kode ini:

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

Berhasil! :) Terima kasih atas dukungannya!

ZygD Dec 30 2020 at 16:54

MS Word tidak bekerja dengan garis. Kode VBA berikut akan menemukan paragraf yang diakhiri dengan tanda kurung dan dicetak tebal bersama dengan isinya.

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

EDIT:

Contoh penggunaan Find and Replace. Dengan ini, semua teks dalam tanda kurung dicetak tebal (tidak memperhitungkan persyaratan berada di akhir paragraf / baris):

Sub ApplyBoldWithinParentheses()
   With ActiveDocument.Content.Find
      .ClearFormatting
      .Text = "[(]*[)]"
      .Replacement.Font.Bold = True
      .Format = True
      .MatchWildcards = True
      .Execute Replace:=wdReplaceAll
   End With
End Sub