|
本帖最后由 413191246se 于 2018-6-2 15:36 编辑
* 自动编号,无需人工检查。
* 第一章/第1章,汉字/数字类型任选。
* 默认全文查找:第一章/第一条,也可自定义:第一节/课/题/部分/阶段/自然段/律师事务所。
* 选定第一章,右键快捷菜单“选择相似的文本”可设置格式(想省墨可不加粗/或设为仿宋)。
* 程序速度较慢,运行期间请勿动键盘和鼠标。*
* 本宏<全文>查找《第一章》,如果想查找<选定区域>中的《第一章》,请应用20楼代码。
*
- Sub 第一章()
- Dim i&, j$, k$, m$, n&
- k = MsgBox("<是>:第一章 <否>:第一条 <取消>:自定义", 3 + 48)
- If k = vbYes Then
- j = "章"
- ElseIf k = vbNo Then
- j = "条"
- Else
- j = InputBox("请输入量词!" & vbCr & "(比如:第一节的<节>,第一部分的<部分>)", "第一章/第一条", "节")
- If j = "" Then End
- End If
- m = MsgBox("<是>:第一" & j & " <否>:第1" & j & " <取消>:放弃", 3 + 48, "请选择编号类型!")
- If m = vbYes Then
- n = 2
- ElseIf m = vbNo Then
- n = 1
- Else
- End
- End If
- With Selection
- .HomeKey unit:=wdStory
- With .Find
- .ClearFormatting
- .Replacement.Text = ""
- Do While .Execute("^13第[一二三四五六七八九十0-90-9百零〇○Oo千]{1,}" & j, , , 1, , , 1)
- With .Parent
- If Not .Information(12) Then
- .MoveStart 1, 1
- .Expand 4
- With .Find
- .Execute " ", , , 0, , , , , , "", 2
- .Execute " ", , , 0, , , , , , "", 2
- .Execute "^t", , , 0, , , , , , "", 2
- End With
- .Characters(InStr(.Text, j) + Len(j) - 1).InsertAfter Text:=Chr(-24159)
- If j = "条" Then
- If .Text Like "*[!。:;,、!?…—.:;,!?]?" Then .Characters.Last.InsertBefore Text:="。"
- .MoveEnd 1, -(Len(.Text) - InStr(.Text, j))
- With .Font
- .NameFarEast = "黑体"
- .NameAscii = "Times New Roman"
- .Bold = True
- End With
- Else
- .Style = wdStyleSubtitle
- If Len(j) > 1 Then .Font.Size = 18
- .Font.NameFarEast = "黑体"
- With .ParagraphFormat
- .SpaceBefore = 24
- .SpaceAfter = 24
- End With
- If .Text Like "*[。:;,、!?…—.:;,!?]?" Then .Characters.Last.Previous.Delete
- If .Text Like "* ???" Then .Characters.Last.Previous.InsertBefore Text:=Chr(-24159)
- .MoveEnd 1, -(Len(.Text) - (InStr(.Text, j) + Len(j) - 1))
- End If
- .MoveStart 1, 1
- .MoveEnd 1, -Len(j)
- i = i + 1
- .Text = i
- If n = 2 Then
- .Delete
- .Fields.Add Range:=.Range, Text:="= " & i & " \* CHINESENUM3"
- .Paragraphs(1).Range.Fields.Unlink
- End If
- Else
- .Tables(1).Range.Next.Select
- If Asc(.Text) <> 13 Then .InsertParagraphBefore
- .Characters(1).Font.Size = 4
- End If
- .EndKey 5
- End With
- Loop
- End With
- End With
- End Sub
复制代码
|
|