Dim bContinue As Boolean "-rqL
L
gy^^.
Dim regEX As New RegExp p|BoEITL
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 zXbA$
c
)dJx82"
l
Dim LastTitle0String As String, LastTitle0No As Long U: )Gc
Dim LastTitle1String As String, LastTitle1No As Long $ 1m}lXk
Dim LastTitle2String As String, LastTitle2No As Long bUYjmb2g)
Dim LastTitle3String As String, LastTitle3No As Long ^oW{N
Dim LastTitle4String As String, LastTitle4No As Long M[Nv>
Dim LastTitle5String As String, LastTitle5No As Long YJ~mcaw
Dim LastTabelString As String, LastTableNo As Long RU>qj
*e
Dim LastFigureString As String, LastFigureNo As Long K7nyQGS
8 tIy"5
Dim strSeperator As String !*?9n^PaF
9}4~3_gv;M
Sub ConvertWidth(fTEXT As String, rText As String) 59+KOQul6
Selection.Find.ClearFormatting O,NVhU7,
Selection.Find.Replacement.ClearFormatting ',rK\&lL6
Selection.Find.Wrap = wdFindContinue C\dk}A
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText OF-VVIS
DoEvents 47f\
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True YPCitGBl
End Sub ?|\wJrM ]
UG}2q:ST
Sub ClearDomain() k;qWiYMV
With Selection.Find 0y+i?y
9
.ClearFormatting -YrMV
oZl
.Replacement.ClearFormatting ~sq@^<M)s
.Wrap = wdFindContinue h[
<l2fy
Me.txtStatus.Text = "清除所有域代码" dt"&
DoEvents XBO(
*6"E
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False (qz)3Fa
End With Ji6.-[:
End Sub roBb8M|q
,]Xn9W
Private Sub cmdCheck_Click() '6*9pG-
bContinue = True | :id/
Dim NoSeries1(1 To 16) As String j"VDqDDz
Dim NoSeries2(1 To 16) As String E\p"%
Dim NoSeries5(1 To 16) As String 1083p9Uh
Dim NoSeriesRM(1 To 16) As String V\l@_%D[(v
Dim paraTotal As Long, ParaText As String j5]ul!
ji
Dim ttString As String, ttNo As String sc6NON#
4GXS(
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long l/\D0\x2
[8 H:5Ho
Me.txtStatus.Visible = True :)&vf<JL
Me.lbParaType.Visible = True ( 5uSqw&U
Me.cmdCheck.Enabled = False g=,}j]tl
a(ml#-M
9b@yDq3hQ
TNK1E
;BKU
_}k=
Dim ParaType As String, rText As String M* {5> !\
B<a` o&?
Selection.WholeStory cL~YQJYp
Selection.NoProofing = True 8lA,3'z
BL"7_phM,
tm1 = Now dep"$pys>
<td]k%*+
ActiveWindow.View.Type = wdNormalView uv^x
J(wFJg\/
NoSeries1(1) = "一" JO90TP
$
NoSeries1(2) = "二" Htln <N
NoSeries1(3) = "三" k]`-Y E
NoSeries1(4) = "四" >Q?8tGfB
NoSeries1(5) = "五" 4%I[.dBnM
NoSeries1(6) = "六" KeXt"U
NoSeries1(7) = "七" >VX'`5r>uw
NoSeries1(8) = "八" }6=)w@v
NoSeries1(9) = "九" tCar:p4$
NoSeries1(10) = "十" KD H<T4#x
NoSeries1(11) = "十一" MX.?tN#F|H
NoSeries1(12) = "十二" vbZ!NO!H
NoSeries1(13) = "十三" A
r>BL2@
NoSeries1(14) = "十四" 18Ju]U
NoSeries1(15) = "十五" c&
bms)Jwa
NoSeries1(16) = "十六" "^
;h'
evNe6J3
NoSeries2(1) = "㈠" ^Xu4N
"@
NoSeries2(2) = "㈡" ]]3rSXs2}J
NoSeries2(3) = "㈢" LhM$!o?W
NoSeries2(4) = "㈣" (Nv-wU
NoSeries2(5) = "㈤" Nd{U|k3pL
NoSeries2(6) = "㈥" *;~u 5y2b
NoSeries2(7) = "㈦"
X>P|-n#
NoSeries2(8) = "㈧" S kB*w'k
NoSeries2(9) = "㈨" gU NWM^n
NoSeries2(10) = "㈩" {t!7r_hj
0r8Wv,7Bo
NoSeries5(1) = "①" BBv+*jj
NoSeries5(1) = "②" NK(_ &.F
NoSeries5(3) = "③" Chx+p&!
NoSeries5(4) = "④" )
S
/=5Uc
NoSeries5(5) = "⑤" 2% OAQ(
NoSeries5(6) = "⑥" -|>T?
t'K
NoSeries5(7) = "⑦" ,CuWQ'H
NoSeries5(8) = "⑧" #N'9
w .
NoSeries5(9) = "⑨" %H,s~IU
NoSeries5(10) = "⑩" %O<8H7e)V
&ODo7@v`1
bSz7?NAp
NoSeriesRM(1) = "I" \xv(&94U
NoSeriesRM(2) = "II" xgpf2y!{
NoSeriesRM(3) = "III" 6]
kBG?m0
NoSeriesRM(4) = "IV" VxARJ*4=Y
NoSeriesRM(5) = "V" N^@:+,<3
NoSeriesRM(6) = "VI" fFWi
3.
NoSeriesRM(7) = "VII" F[`dX
NoSeriesRM(8) = "VIII" het<#3Bo
NoSeriesRM(9) = "IX" #.$y
NoSeriesRM(10) = "X" ?:-:m'jdU
NoSeriesRM(11) = "XI" _{gqi$Mi
NoSeriesRM(12) = "XII" "Aw)0a[j1
NoSeriesRM(13) = "XIII" As`=K$^Il.
NoSeriesRM(14) = "XIV" AQT_s9"0
NoSeriesRM(15) = "XV" @qj]`}Gx'
NoSeriesRM(16) = "XVI" r\Yh'cRW{
7mM
MVz2
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) CyW|k
Dz
Jmi,;Af'/
If i = vbNo Then =6"5kz10
Exit Sub !\9^|Ef?
End If qMA-#
I0z 7bx
If Me.chkSuper.Value Then P".IW.^kk~
Me.txtStatus.Text = "检查修改所有的上标格式" \g
h |G
pe\Nwq
CheckSuperScript x;\/Xj;
QCE7VV1Rw
End If ={V@Y-5T
gq/Za/!6
If Me.chkStyle.Value Then Ki7t?4Y
E
Me.txtStatus.Text = "设置样式,请稍候...." { I\og
DoEvents (/,l0
CeateOrModifyStyle U V*Ruy-
End If slUi)@b
i1-%#YYF(
6
)P.wW
Y$]zba
ClearDomain )|^8`f
k+w Ji
K7K/P{@9[9
di0@E<@1:
If Me.chkLIST.Value Then w>=N~0@t
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" 8&|
o
0 yq
ConvertListToOrdinary 7v)p\#-
End If w^$C\bCbh
Jww#zEK
`[
U.BVP'
Dim pType As String, trimpTEXT As String 79exZ7|
If Me.chkNum.Value = True Then isQOt *
i
Me.txtStatus.Text = "转换全角数字形式为半角" 1EEcNtpub]
ConvertWidth "1", "1" 8T6N
G!/
DoEvents T<?kH
ConvertWidth "2", "2" :zPK
DoEvents Lhe &
ConvertWidth "3", "3" }u=Oi@~
DoEvents a !%,2|U
ConvertWidth "4", "4" s.Ai_D
DoEvents .9PT)^2
ConvertWidth "5", "5" Fb=uN
DoEvents 3}F>t{FDk
ConvertWidth "6", "6" |iUC\F=-
DoEvents 1gbFl/i6T
ConvertWidth "7", "7" Jou*
e%
DoEvents {\P%J:s#9
ConvertWidth "8", "8" %A=/(%T>
DoEvents &tvp)B?cWk
ConvertWidth "9", "9" x3+{Y
DoEvents $sE=[j'v
ConvertWidth "0", "0" q!@!eC[b
DoEvents 6w,"i#E!
ConvertWidth "a", "a" [|=M<>?[
DoEvents 7bihP@I!
ConvertWidth "b", "b" b/]4#?g
DoEvents vc&+qI+I3
ConvertWidth "c", "c" ,m5i(WL
DoEvents f17E2^(I(}
ConvertWidth "d", "d" J'$NBws
DoEvents }$'_%,
ConvertWidth "e", "e" r9'[7b1l
DoEvents "wTCO1
ConvertWidth "f", "f" /UK]lP^w]!
DoEvents {7z]+ h
ConvertWidth "g", "g" :Ev
gUA\4
DoEvents dS4z Oz"
ConvertWidth "h", "h" .hR
<{P
DoEvents J ~3m7
ConvertWidth "i", "i" z[v4(pO6
DoEvents Y%;X7VxU*
ConvertWidth "j", "j" VN!nef
DoEvents KvPCb%!ZP
ConvertWidth "k", "k" X.k8w\~
DoEvents c {%mi
ConvertWidth "l", "l" zIjfxK
DoEvents }6/M5zF3
ConvertWidth "m", "m" 10*Tk 8
DoEvents ZL\^J8PRK
ConvertWidth "n", "n" fe98Y-e
ConvertWidth "o", "o" Kw"y#Ys]
ConvertWidth "p", "p" 9&AO
ConvertWidth "q", "q" X )tH23
ConvertWidth "r", "r" 'yq
?xlIj
ConvertWidth "s", "s" MK)}z
jw
ConvertWidth "t", "t" 5~@-LXqL
ConvertWidth "u", "u" \&;y:4&l8
ConvertWidth "v", "v" 5)lcgvp
ConvertWidth "w", "w" cK u[4D{
ConvertWidth "x", "x" W/>a 1
ConvertWidth "y", "y" 5P"R'/[PA_
ConvertWidth "z", "z" \GxqE8
ConvertWidth "A", "A" 9n{Y6I
x:
ConvertWidth "B", "B" o
/[7Vo
ConvertWidth "C", "C" Hy&Z0W'l
ConvertWidth "D", "D" ;M4[Liw~O
ConvertWidth "E", "E" Vb\g49\o/
ConvertWidth "F", "F" ]Z8u0YtM)
ConvertWidth "G", "G" OB$Jv<C@
ConvertWidth "H", "H" 3WGE T[3
ConvertWidth "I", "I" 3zD#V3=
ConvertWidth "J", "J" 8Sj<,+XFq
ConvertWidth "K", "K" :VZS7$5
ConvertWidth "L", "L" C|TQf8
ConvertWidth "M", "M" <TtPwUX
ConvertWidth "N", "N" >{tn2Fkg>
ConvertWidth "O", "O" e8^/S^ =&d
ConvertWidth "P", "P" zdRVAcrwQ
ConvertWidth "Q", "Q" wTU$jd1;+
ConvertWidth "R", "R" tjb$MW$('
ConvertWidth "S", "S" #NYnZ^6e
ConvertWidth "T", "T" ]B=*p0~j^n
ConvertWidth "U", "U" T :d+Qz\
ConvertWidth "V", "V" *YvtT(Gt
ConvertWidth "W", "W" u@ #%
SX
ConvertWidth "X", "X" R P<M
ConvertWidth "Y", "Y" LkS t
U)
ConvertWidth "Z", "Z" hQm=9gS
ConvertWidth "^l", "^p" 0lg'QG>
ConvertWidth "(", "(" `v``}8tm
ConvertWidth ")", ")" [07E-TT2U
`y.4FA4"8
End If \]]K{DO
?%hd3zc+f
With ActiveDocument 8:V,>PH
Dim tbl As Table ~rdS#f&R2
For Each tbl In .Tables VPYLDg.'
tbl.Rows.Alignment = wdAlignRowCenter m[v0mXE
tbl.Range.Font.NameFarEast = "楷体" w
a(Y[]V
tbl.Range.Font.NameAscii = "Times New Roman" 9U6$-]J
tbl.Range.Font.Size = 10.5 `D~oY=
Next S*h^7?Bu
Set tbl = Nothing x-CjxU3
End With
*af\U3kx
>,]a>V
)__sw
With ActiveDocument uhfK\.3
r*vh3.Agl
For i = 1 To .TablesOfContents.Count u0&R*YV
.TablesOfContents(i).Delete D!,5j_,j%
Next 9u{[e"
Xpg-rxX
mnK<5KLg1
?j.a
>{
paraTotal = .Paragraphs.Count jsE8=zZs
paraCounter = 1 -(:T&rfTp
|f fHOef
LastTitle0No = 0 B]G2P`sN
LastTitle1No = 0 A&t8C8,
LastTitle2No = 0 = +MF@ 4
LastTitle3No = 0 Za|iU`e\
LastTitle4No = 0 8$_{R!x
LastTableNo = 0 M1-tRF
LastFigureNo = 0 |nx3x
DPxx9lN_rx
Dim Sec As Long mB_?N $K
w)+1^eW
Sec = InputBox("正文从第一节开始?", "节设置", 6) ~
O#\$u
If Sec = 0 Then ;QXg*GNAv$
Exit Sub Cy$~H
End If cLf90|YFp
#C&';HB;y
k = 0 49=pB,H;H
Do While (paraCounter < paraTotal) And bContinue FXJ0
G>F
k = k + 1 Q^2dZXk~
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then hHJvLs>^
Exit Do 5_E8
RAG
End If 9m$"B*&6G
paraCounter = paraCounter + 1 Rh^@1{yr
If k Mod 20 = 0 Then t;w<n"
Me.lbCounter.Caption = paraCounter M11\Di1
DoEvents Bam.B6-
End If !?JZ^/u
Loop vkTu:3Qe
@e3+Gs
?;~E*kzO&
Do While (paraCounter < paraTotal) And bContinue 2{b/*w
q<q IT
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) M^
:JhX{
ShapeHeight = 0 D r(0w{5
ShapeWidth = 0 ?m]vk|>
e3SnC:OWf
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth ojnO69v
{. 9BG&
Select Case ParaType
%ln
kD5
Case "【】表格内容" lOVcXAe}
.Paragraphs(paraCounter).Style = "QLNU表格内容" by
@q g:
Case "章" qSr]d`7@
LastTitle0No = LastTitle0No + 1 q=88
*Y
'新一章开始,复位其下属标题编号 :k1?I'q%
LastTitle1No = 0 J\*uW|=F
LastTitle2No = 0 q x)\{By
LastTitle3No = 0 )v_Wn[Y.H
LastTitle4No = 0 /e>%yq<9B
FJtmRPP[r
k = Val(ttNo) Q/]~`S
If k = 0 Then '非数字编号章节 -\f7qRW^U
If ttNo <> NoSeries1(LastTitle0No) Then (yP1}?
rText = "第" & NoSeries1(LastTitle0No) & ttString VU,G.eLW
Me.ErrMsg.AddItem "章节编号错误:" & ParaText OXrm!'
End If kiM:( =5
Else |hika`35K
If Val(ttNo) <> LastTitle0No Then !VWA4 e!+
rText = "第" & LastTitle0No & ttString Eu(QeST\
Me.ErrMsg.AddItem "章节编号错误:" & ParaText \[3~*eX6
End If . J O3#
v3Vve:}+
End If )mm0PJF~q
gx
Vr1DIkN
'章段落设置 Lf5zHUH
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 <jV,VKL#
.Paragraphs(paraCounter).Style = "QLNU章节" A)]&L`s
.Paragraphs(paraCounter).Range.Select BC.3U.
Selection.EndKey unit:=wdLine ;
oa+Z:;f
tc = Replace(rText, vbCr, "") wkZwtq
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False 0o>C,
`
Case "一级标题" 0QZT<Zs
LastTitle1No = LastTitle1No + 1 uxTgK'3
'新一级标题开始,复位其下属标题编号 5/'Q0]4h
LastTitle2No = 0 pmB
{b
LastTitle3No = 0 b&[".ibN1
LastTitle4No = 0 "ZGP,=?y2
hc
q&`Gun
If ttNo <> NoSeries1(LastTitle1No) Then Li5&^RAo|J
rText = NoSeries1(LastTitle1No) & "、" & ttString 59)w+AW
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText GO"|^W
End If YgcW1}
3Y38lP:>h
,1mL=|na
'一级标题段落设置 格式:一、标题内容 B=d<L^
.Paragraphs(paraCounter).Range.Text = rText 1}\p:`
.Paragraphs(paraCounter).Style = "QLNU一级标题" B3ItZojAuw
.Paragraphs(paraCounter).Range.Select 4u}Cki,vOK
Selection.EndKey unit:=wdLine o@L0ET
tc = Replace(rText, vbCr, "") 9{;L7`<
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False 2QaE&8vW
Case "二级标题" #b;?:.m\=
LastTitle2No = LastTitle2No + 1 o:QL%J{[
'新二级标题开始,复位其下属标题编号 n%F _3`
LastTitle3No = 0 >
IaG
a!4
LastTitle4No = 0 sF!#*Y
s>6h]H
If ttNo <> NoSeries1(LastTitle2No) Then BQPmo1B
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString Vhv'
Z\
ErrMsg.AddItem "二级标题编号错误:" & ParaText ;"Gy5
End If }2;P`s
~7ZZb*].(
'二级标题段落设置 格式:(一)、标题内容 0R)x"4Ww
.Paragraphs(paraCounter).Range.Text = rText N0w?c
5>
.Paragraphs(paraCounter).Style = "QLNU二级标题" cQt&%SVT]E
%9>w|%+;U+
.Paragraphs(paraCounter).Range.Select FM6{%}4
Selection.EndKey unit:=wdLine ,A` |jF
tc = Replace(rText, vbCr, "") z<5 5[~3
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False aDRcVA$*
!j'LZ7
Case "三级标题" mh}D[K=~%
LastTitle3No = LastTitle3No + 1 :
b`N(]
'新三级标题开始,复位其下属标题编号 }
KyoMs
LastTitle4No = 0
nu\
AEFT
Nksm&{=6S
If Val(ttNo) <> LastTitle3No Then <CuUwv
'A
rText = LastTitle3No & ". " & ttString %htI!b+"@
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText >}
2C,8N
~4~r
End If C+**!uYIB
'三级标题段落设置 格式:1. 标题内容 D?_K5a&v,
.Paragraphs(paraCounter).Range.Text = rText KUU{X~w
.Paragraphs(paraCounter).Style = "QLNU三级标题" i,;JI>U
.Paragraphs(paraCounter).Range.Select eB#I-eD
Selection.EndKey unit:=wdLine }lp37,
tc = Replace(rText, vbCr, "") $}su'EIo
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False UnK7&Uo
Case "四级标题" l3Zi]`@r
LastTitle4No = LastTitle4No + 1 LnE/62){N
;iiCay37F
If Val(ttNo) <> LastTitle4No Then [+D]!&