Đây là macro để làm từ Chương và từ Quyển mà mình đang sử dụng.
Diễn giải: Bản chất 2 macro này là tìm kiếm và thay phông (heading 1 đối với quyển và heading 2 đối với phông). Mà mục lục là hoàn toàn do thằng cha word xử lý, nó tìm kiếm các dòng nào sử dụng heading 1 và 2 (cho tới heading thứ n) để làm mục lục.
Macro đối với chương:
Mã:
Sub MarkChapterContent()
'
' MarkChapterContent Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 2")
With Selection.Find
.Text = "Ch" & ChrW(432) & ChrW(417) & "ng ^#"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Macro đối với quyển (nếu có)
Mã:
Sub MarkVolumeContent()
'
' MarkVolumeContent Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles("Heading 1")
With Selection.Find
.Text = "Quy" & ChrW(7875) & "n ^#"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Chú thích:
Bạn có nhìn thấy ở trên có 1 dòng là
Mã:
.Text = "Ch" & ChrW(432) & ChrW(417) & "ng ^#"
Có ý nghĩa là tìm tất cả những từ nào là Chương ... cho tới hết dòng, nôm na là chỉ cần có từ nào tên là Chương thì nó sẽ tìm và thay thế sạch! Cho nên nếu trong truyện chẳng may có thằng nào tên là Chương thì sẽ ăn cám Bạn có thể thay thế biến tấu làm sao cho nó thành duy nhất thì đó là việc của bạn
Còn ai muốn tự mình làm 1 cái macro để replace mà không mò ra charcode của nó (ví dụ như ở trên ư = ChrW(432); wtf of 432???; 432 = charcode ) thì có thể sử dụng 1 phần mềm hơi bị bé nhỏ nằm trong phần đính kèm của mình nhé.