Dim bContinue As Boolean 6EeK5XLf,
wX!>&
Gc.
Dim regEX As New RegExp ek3,ss3
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 ;YK{[$F
g=)djXW
Dim LastTitle0String As String, LastTitle0No As Long ehCZhi~
Dim LastTitle1String As String, LastTitle1No As Long 4`mF
6%UC
Dim LastTitle2String As String, LastTitle2No As Long Hg}@2n)/
Dim LastTitle3String As String, LastTitle3No As Long =u^{Jvl[
Dim LastTitle4String As String, LastTitle4No As Long +G
qV9x 8
Dim LastTitle5String As String, LastTitle5No As Long d/4k F
Dim LastTabelString As String, LastTableNo As Long v%6mH6V
Dim LastFigureString As String, LastFigureNo As Long tf+5@Zf]4
'7Aj0U(
Dim strSeperator As String g9$P J:
IFg(Ze~
Sub ConvertWidth(fTEXT As String, rText As String) uY~xHV_-
Selection.Find.ClearFormatting kbF+aS
Selection.Find.Replacement.ClearFormatting Jm(sx'qPx
Selection.Find.Wrap = wdFindContinue Wk"\aoX"E
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText c3NUJ~>=y
DoEvents YPY'[j(p`n
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True )5(Ko<"
End Sub OG&X7>'3I{
~^u#Q\KE"
Sub ClearDomain() UPI'O %
With Selection.Find `LID*uD;_
.ClearFormatting x\m?* 5p
.Replacement.ClearFormatting }*ZOD1j
.Wrap = wdFindContinue LG
qg0(
Me.txtStatus.Text = "清除所有域代码" oA1d8*i^E
DoEvents -P5M(Rt
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False D>~S-]
End With xf?6_=
End Sub !gfz4f&
9uL="z$\
Private Sub cmdCheck_Click() qr~=
S
bContinue = True mI$3[ #+
Dim NoSeries1(1 To 16) As String O]nZr
Dim NoSeries2(1 To 16) As String 82bOiN15
Dim NoSeries5(1 To 16) As String cqyrao3;
Dim NoSeriesRM(1 To 16) As String &InMI#0mV
Dim paraTotal As Long, ParaText As String %G%D[ i]
Dim ttString As String, ttNo As String jdF~0#vH
gU^2;C
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long Gap\~
Z@L
8aSH0dX
Me.txtStatus.Visible = True )K+Tvx3(m
Me.lbParaType.Visible = True "ccP,#Y
Me.cmdCheck.Enabled = False kj4t![o+
7Vd"AVn}g
z2GT
9
M9aVE)*!I
@aC2]
Dim ParaType As String, rText As String kroO~(\
V9"?}cR/W;
Selection.WholeStory qAF.i^
Selection.NoProofing = True oy)'w
b~
Z}
8m]I
tm1 = Now 5U3b&0
itg
PG
ActiveWindow.View.Type = wdNormalView ^8#;>+7R
-#ta/*TT:
NoSeries1(1) = "一" *ydU3LG7
NoSeries1(2) = "二" a &89K
NoSeries1(3) = "三" HAi'0%"
NoSeries1(4) = "四" BVt)~HZ
NoSeries1(5) = "五"
qU) pBA
NoSeries1(6) = "六" Ehv*E
NoSeries1(7) = "七" MiX*PqNTM
NoSeries1(8) = "八" jcT
NoSeries1(9) = "九" :$#";t|
NoSeries1(10) = "十" =h{jF7
NoSeries1(11) = "十一" @9wug!,
NoSeries1(12) = "十二" I>jDM
NoSeries1(13) = "十三" wv eej@zs
NoSeries1(14) = "十四" Gpauy=4f
NoSeries1(15) = "十五" @6roW\'$
NoSeries1(16) = "十六" J:q:g*Wi
6_w;dnVA
NoSeries2(1) = "㈠" [7:(e/&
NoSeries2(2) = "㈡" o|v_+<zD!
NoSeries2(3) = "㈢" ~e)`D nJ
NoSeries2(4) = "㈣" 3~%wA(|A
NoSeries2(5) = "㈤" gZ^NdDBO
NoSeries2(6) = "㈥" =n}+p>\s
NoSeries2(7) = "㈦" ,X2CV INb}
NoSeries2(8) = "㈧" >,v,4,c
NoSeries2(9) = "㈨" %Z"I=;=nxI
NoSeries2(10) = "㈩" 3]iBX`Ni
l{7q(
NoSeries5(1) = "①" Yc*Ex-s
NoSeries5(1) = "②" Ao:<aX,=
NoSeries5(3) = "③" 9Fkzt=(E~
NoSeries5(4) = "④" ?oc#$fcQ~
NoSeries5(5) = "⑤" qrj:H4#VB
NoSeries5(6) = "⑥" *
@QC:1k
NoSeries5(7) = "⑦" >**7ck
NoSeries5(8) = "⑧" fs=W(~"
NoSeries5(9) = "⑨" ?5> Ep:{+/
NoSeries5(10) = "⑩" |Ir&C[QS{y
{'QA0K
Y_}DF.>I P
NoSeriesRM(1) = "I" laQM*FLg
NoSeriesRM(2) = "II" Z\`i~
NoSeriesRM(3) = "III" QE.a2
}
NoSeriesRM(4) = "IV" 5V^+;eO
NoSeriesRM(5) = "V" 5ecAev^1-
NoSeriesRM(6) = "VI" PJCRvs|X
NoSeriesRM(7) = "VII" =nmvG%.hd
NoSeriesRM(8) = "VIII" }4; \sY
NoSeriesRM(9) = "IX" i8tH0w/(M
NoSeriesRM(10) = "X" Vf'r6Rf
NoSeriesRM(11) = "XI" o$=D`B
NoSeriesRM(12) = "XII" 3%JPJuNVw
NoSeriesRM(13) = "XIII" v/Z!Wp1LV
NoSeriesRM(14) = "XIV" XA$Z7_gu3
NoSeriesRM(15) = "XV" 2bB&/Uumsd
NoSeriesRM(16) = "XVI" UUlrfur~
@\=%M^bx
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) Q0}Sju+HX
XSu9C zx&I
If i = vbNo Then f_&bwfbo
Exit Sub wd/"! A4(
End If -I'@4\<
+])St3h
If Me.chkSuper.Value Then h zh%ML3L
Me.txtStatus.Text = "检查修改所有的上标格式" }h6N.vz
#hOAG_a,
CheckSuperScript d4h,
+OU
B[]v[q<
End If &4%j
zuR F6?un
If Me.chkStyle.Value Then 5DHFxym'
Me.txtStatus.Text = "设置样式,请稍候...." 5Z`9L|3d
DoEvents B@Ae2_;
CeateOrModifyStyle P7||d@VW,
End If w<3g1n7R
YXR%{GUP[
^E5[~C*o3
q0oNR
Avn"
ClearDomain Z5vpo$l
<]u~;e57
<R6$ kom`
M]+FTz
If Me.chkLIST.Value Then Rr#vv
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" B^z3u=ll
DKjkO5R\
ConvertListToOrdinary p&:(D=pIu
End If pm*6&,
Z?vbe}pUM
Mpm#a0f
Dim pType As String, trimpTEXT As String d `z),A=
If Me.chkNum.Value = True Then 0 ;b%
@_E
Me.txtStatus.Text = "转换全角数字形式为半角" ZkyH<Aa
ConvertWidth "1", "1" BtSl%(w
DoEvents m|RA@sY%`
ConvertWidth "2", "2" N*C"+2
DoEvents X\I"%6$
ConvertWidth "3", "3" "v"w ER?
DoEvents n
2k&yL+a
ConvertWidth "4", "4" Uv(T
HxVh
DoEvents \9*,[mvC
ConvertWidth "5", "5" y8$TU;
DoEvents H'L~8>
ConvertWidth "6", "6" 7,sslf2%K
DoEvents O~r.sJ}
ConvertWidth "7", "7" r&G=}ZMO
DoEvents (5SN=6O
ConvertWidth "8", "8" w2!5Cb2
DoEvents 7yU<!p?(
ConvertWidth "9", "9" v$O%U[e<
DoEvents *
7ki$f!
ConvertWidth "0", "0" nJ.<yrzi
DoEvents A&$oiLc
ConvertWidth "a", "a" *}t,:N;i
DoEvents S}=euY'i
ConvertWidth "b", "b" H)s$0Xd
DoEvents 6o_t;cpT
ConvertWidth "c", "c" `X
wFH#_
DoEvents 8H>: C(h
ConvertWidth "d", "d"
+,xl_,Z6
DoEvents (Ut)APM
ConvertWidth "e", "e" Kw%n;GFl'
DoEvents _$+lyea
ConvertWidth "f", "f" ]#C;)Vy
DoEvents a8#6}`|C?
ConvertWidth "g", "g" )$* T>.JA
DoEvents f?iQ0wv)
ConvertWidth "h", "h" qc*z`Wz:
DoEvents RtrESwtR
ConvertWidth "i", "i" uqhNi!;
DoEvents 9`/\|t|V
ConvertWidth "j", "j" -NG`mfu
DoEvents OZ*V7o
ConvertWidth "k", "k" \X=?+|
9
DoEvents ![wV}.}
ConvertWidth "l", "l" ; 7`y##
DoEvents "]%.%$
ConvertWidth "m", "m" #1:&uC1vj
DoEvents "Q:m0P
xb
ConvertWidth "n", "n" Yy4?|wVl
ConvertWidth "o", "o" uZe|%xK$y
ConvertWidth "p", "p" *Ge2
P3
ConvertWidth "q", "q" xZ*.@Pkr
ConvertWidth "r", "r" VQr)VU=jb
ConvertWidth "s", "s" ?lh
`>v
ConvertWidth "t", "t" tFvc~zz9
ConvertWidth "u", "u" ddDl~&}o
ConvertWidth "v", "v" L}bS"=B[&W
ConvertWidth "w", "w" /
M(A
kNy
ConvertWidth "x", "x" *}Al0\q0M
ConvertWidth "y", "y" <c[+60p"
ConvertWidth "z", "z" UIUCj8QJg
ConvertWidth "A", "A" AwhXCq|k
ConvertWidth "B", "B" ,&II4;F
ConvertWidth "C", "C" D Hkmn
ConvertWidth "D", "D" 'V reO52
ConvertWidth "E", "E" hhTM-D1Ehs
ConvertWidth "F", "F" z@lUaMm:F
ConvertWidth "G", "G" zCdQI
ConvertWidth "H", "H" &></l| hY
ConvertWidth "I", "I" fIo7R-XP
ConvertWidth "J", "J" 1D42+cy
ConvertWidth "K", "K" Z7<N<
ConvertWidth "L", "L" c
xhS*"Ph
ConvertWidth "M", "M" k!gft'iU
ConvertWidth "N", "N" TS
Q/{=r
ConvertWidth "O", "O" GW_@hYIqD
ConvertWidth "P", "P" $Ik\^:-
ConvertWidth "Q", "Q" :nuMakZZ
ConvertWidth "R", "R" P"`OuN
ConvertWidth "S", "S" -q9`Btz
ConvertWidth "T", "T" wG1A]OJl1
ConvertWidth "U", "U" \0'7p-T6
ConvertWidth "V", "V" o(,u"c/Or
ConvertWidth "W", "W" F d:A^]
ConvertWidth "X", "X" =?U"#a
ConvertWidth "Y", "Y" {L[n\h.4.
ConvertWidth "Z", "Z" sv<U$M~)X
ConvertWidth "^l", "^p" MtYi8"+<e.
ConvertWidth "(", "(" x[Xj[O
ConvertWidth ")", ")" Rc2| o.'y
-kp!.c
End If |O
XufV?I
A$K>:Tt>
With ActiveDocument RO-ABFEi(
Dim tbl As Table S7cxEOfAu
For Each tbl In .Tables r-#23iT.~
tbl.Rows.Alignment = wdAlignRowCenter 6m_whGosi
tbl.Range.Font.NameFarEast = "楷体" 26fbBt8nP
tbl.Range.Font.NameAscii = "Times New Roman" gDP\u<2!
tbl.Range.Font.Size = 10.5 VU1;ZJE
Next CU3[{a
Set tbl = Nothing Cd:ofv/3
End With O`nrXC{
rrGsam\.
`!?SA<a:
With ActiveDocument V9:h4]
fmD
U
For i = 1 To .TablesOfContents.Count )q?z"F|
.TablesOfContents(i).Delete Sri,sZv
Next 5>J{JW|
:NL.#!>/
<<@vy{*Hg
CD\k.
paraTotal = .Paragraphs.Count ^<0u~u)%T
paraCounter = 1 ?UAB}CjY
BJgg-z{Y
LastTitle0No = 0 rz c}2I
LastTitle1No = 0 /n=
%# {
LastTitle2No = 0 [KIK}
:
LastTitle3No = 0 _ri1RK,
LastTitle4No = 0 4%Q8>mEvT
LastTableNo = 0 l4oI5)w
LastFigureNo = 0 ;~Eb Q
Fg8i}
>w
Dim Sec As Long V j\1HQ
@D!KFJ
Sec = InputBox("正文从第一节开始?", "节设置", 6) ^c1%$@H
If Sec = 0 Then &8R %W"<K
Exit Sub Jsi [,|G
End If \29a@
6
H\tz"<*``
k = 0 $9v:(:!Bm
Do While (paraCounter < paraTotal) And bContinue }(AgXvRq
k = k + 1 zi~_[l-
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then T<*i($
[
Exit Do xU/Eu;m
End If ;eznONNF
paraCounter = paraCounter + 1
B;A^5~b
If k Mod 20 = 0 Then ;m{*iKL6{
Me.lbCounter.Caption = paraCounter $O*rxQ}
DoEvents Xp<RGp7E
End If 5}3Q}o#
Loop a9=,P
Z~}=q
#t
/.fd
Do While (paraCounter < paraTotal) And bContinue m2[q*k]AtS
30 VvZb
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) 9Ny{2m=Ye
ShapeHeight = 0 =F2e*?a3
ShapeWidth = 0 >W,1s
g:/l5~b
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth -DwqoWZ
.aWEXJ
Select Case ParaType V\8vJ3.YV
Case "【】表格内容" )Yvf9dl
.Paragraphs(paraCounter).Style = "QLNU表格内容" ,bRvj8"M
Case "章" .YquOCc(
LastTitle0No = LastTitle0No + 1 .W{\wkn
'新一章开始,复位其下属标题编号 k;v23
LastTitle1No = 0 j%R}
LastTitle2No = 0 .@#i
LastTitle3No = 0 FHVZ/ e
LastTitle4No = 0 7<V(lX.{
[\NyBc
k = Val(ttNo) o/EA%q1
If k = 0 Then '非数字编号章节 j[!'l,I
If ttNo <> NoSeries1(LastTitle0No) Then Km2ppGLNn
rText = "第" & NoSeries1(LastTitle0No) & ttString 0 r=:l/Pz
Me.ErrMsg.AddItem "章节编号错误:" & ParaText pqPhtWi%PJ
End If
s8T}ah!
Else 7bioLE
If Val(ttNo) <> LastTitle0No Then ~8AcW?4Z
rText = "第" & LastTitle0No & ttString * iW>i^
Me.ErrMsg.AddItem "章节编号错误:" & ParaText %\?2W8Qv_J
End If MF/359r)Et
B JDe1W3;'
End If 3R%'<MV|
`X8AM=
'章段落设置 tp2CMJc{L
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 $\>GQ~k
.Paragraphs(paraCounter).Style = "QLNU章节" (KaP=t}
.Paragraphs(paraCounter).Range.Select 7Wg0-{yK4
Selection.EndKey unit:=wdLine _K{hq<g
tc = Replace(rText, vbCr, "") GH2D5HVN
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False *9}2Bmojv
Case "一级标题" -R
4t
LastTitle1No = LastTitle1No + 1 #z{9:o7[-
'新一级标题开始,复位其下属标题编号 -[?q?w!?
LastTitle2No = 0 bq3G3oAyG
LastTitle3No = 0 mBgMu@zt)
LastTitle4No = 0 :.B};;N
s$e0;C!D
If ttNo <> NoSeries1(LastTitle1No) Then wXf_2qB9
rText = NoSeries1(LastTitle1No) & "、" & ttString +D|y))fE
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText 4CO:*qG)o
End If p(UUH3%W
0}]k>ndT
Hw8`/'M=%5
'一级标题段落设置 格式:一、标题内容 3IHya=qN
.Paragraphs(paraCounter).Range.Text = rText 7-81,ADv(
.Paragraphs(paraCounter).Style = "QLNU一级标题" mT\!LpX
.Paragraphs(paraCounter).Range.Select kK nz
F
Selection.EndKey unit:=wdLine }YHoWYR
tc = Replace(rText, vbCr, "") E<;C@B
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False O#Ab1
FQn
Case "二级标题" Ex35
LastTitle2No = LastTitle2No + 1 ;wCp j9hir
'新二级标题开始,复位其下属标题编号 IH?.s
k
LastTitle3No = 0 #"%=7(
LastTitle4No = 0 E!J;bX5
kBd #=J
If ttNo <> NoSeries1(LastTitle2No) Then
R*I{?+
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString 9 aT#7B
ErrMsg.AddItem "二级标题编号错误:" & ParaText uUb[Dqn
End If $-9m8}U(Y
<\c5
'二级标题段落设置 格式:(一)、标题内容 UahFs
.Paragraphs(paraCounter).Range.Text = rText 5DKR1z:
.Paragraphs(paraCounter).Style = "QLNU二级标题" (NUwkAOM}
CN0&uyu#4
.Paragraphs(paraCounter).Range.Select v/6QE;BY&Q
Selection.EndKey unit:=wdLine
C,:3z
tc = Replace(rText, vbCr, "") S2/c2
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False ;3NA,JA#Y
dE2(PQb*P
Case "三级标题"
#LEK?]y
LastTitle3No = LastTitle3No + 1 5S:#I5Wa
'新三级标题开始,复位其下属标题编号 dV#h~
LastTitle4No = 0 @qH{;
GbG!vo
If Val(ttNo) <> LastTitle3No Then lqe;lWC0Z
rText = LastTitle3No & ". " & ttString +.MHI
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText s<x2*yVUA
}~$zdgMT
End If n\aG@X%oq
'三级标题段落设置 格式:1. 标题内容 :M(%sv</
.Paragraphs(paraCounter).Range.Text = rText {zhN>n_
.Paragraphs(paraCounter).Style = "QLNU三级标题" 31-%IkX+k
.Paragraphs(paraCounter).Range.Select <