Dim bContinue As Boolean !.q9:|oc
V2M4g
Dim regEX As New RegExp %*wE
zvt*
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 yNn=r;FZQ
CR%h$+dzy
Dim LastTitle0String As String, LastTitle0No As Long !E_|Zp]up
Dim LastTitle1String As String, LastTitle1No As Long &zJ*afi)
Dim LastTitle2String As String, LastTitle2No As Long %7w8M{I R3
Dim LastTitle3String As String, LastTitle3No As Long +zq"dj_
Dim LastTitle4String As String, LastTitle4No As Long @:#J^CsM+'
Dim LastTitle5String As String, LastTitle5No As Long $p&eS_f
Dim LastTabelString As String, LastTableNo As Long aNNRw(0/
Dim LastFigureString As String, LastFigureNo As Long D!/ 4u0m
+`>E_+Mp
Dim strSeperator As String U1pE2o-
xpo^\E?2
Sub ConvertWidth(fTEXT As String, rText As String) wU<j=lY?f
Selection.Find.ClearFormatting b4bd^nrqV
Selection.Find.Replacement.ClearFormatting ksuePMIK
Selection.Find.Wrap = wdFindContinue Dj'?12Onu=
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText V45adDiZ
DoEvents @G=7A;-pv0
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True W*#5Sk
End Sub {;& U5<NO
_>kc:
Sub ClearDomain() ->.9[|lIg
With Selection.Find vNuws_
.ClearFormatting DI2e%`$
.Replacement.ClearFormatting o$Nhx_F
.Wrap = wdFindContinue 6NhGTLI
Me.txtStatus.Text = "清除所有域代码" &GJVFr~z
DoEvents g1"ZpD
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False aX6}:"R2C
End With c$L1aZ
o
End Sub :yJ
([
ID!S}D
Private Sub cmdCheck_Click() VKX|0~
bContinue = True #\n*Qg4p
Dim NoSeries1(1 To 16) As String _@[W[=|H
Dim NoSeries2(1 To 16) As String D1 v0`od'
Dim NoSeries5(1 To 16) As String wy${EY^h
Dim NoSeriesRM(1 To 16) As String U` HY
eJ
Dim paraTotal As Long, ParaText As String S-Vj$asv!
Dim ttString As String, ttNo As String &z:bZH]DH
l&e$:=;8
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long x9a\~XL>a
W}
H~ka
Me.txtStatus.Visible = True ~u2f`67{
Me.lbParaType.Visible = True ruB D
^-
Me.cmdCheck.Enabled = False OY:rcGc`t
-T{2R:\{
ty
rP[y
nXoDI1<[
ujmIS~"
Dim ParaType As String, rText As String ]4c+{
|3!)
Selection.WholeStory $qdynKK
Selection.NoProofing = True X9]} UX
j4=iHnE;
tm1 = Now Q1x&Zm1v
Ddg!1SF
ActiveWindow.View.Type = wdNormalView {z0iWY2Xw
" M?dU^U^
NoSeries1(1) = "一" X#JUorGp
NoSeries1(2) = "二" LD5`9-
NoSeries1(3) = "三" 4
l-UrnZ
NoSeries1(4) = "四" |Rkw/5
NoSeries1(5) = "五" \R]2YY`EP
NoSeries1(6) = "六" qTdwi?j_
NoSeries1(7) = "七" 7(h@5
NoSeries1(8) = "八" *.k*JsU~B
NoSeries1(9) = "九"
F;}JSb"
NoSeries1(10) = "十" U4K ZPk
NoSeries1(11) = "十一" ~&qv[XS
NoSeries1(12) = "十二" 0zSz[;A
NoSeries1(13) = "十三" .udLMS/_
NoSeries1(14) = "十四" Dv/7w[F
NoSeries1(15) = "十五" ,(K-;Id4
NoSeries1(16) = "十六" UdM2!f
K[OOI~"C
NoSeries2(1) = "㈠" at@tS>D
v
NoSeries2(2) = "㈡" 6o3#<ap<
NoSeries2(3) = "㈢" U0:*?uA.
NoSeries2(4) = "㈣" _LC*_LT_
NoSeries2(5) = "㈤" \ f+;X
NoSeries2(6) = "㈥" 37a1O>A
NoSeries2(7) = "㈦" js <Up/1
NoSeries2(8) = "㈧" M80Q6K
NoSeries2(9) = "㈨" MkJBKS
NoSeries2(10) = "㈩" UWV%y P
[w@S/K[_|
NoSeries5(1) = "①" uK"FopUJ4i
NoSeries5(1) = "②" l9a81NF{s
NoSeries5(3) = "③" ~Hub\kn
NoSeries5(4) = "④" !o_eK\p
NoSeries5(5) = "⑤" _",(!(
NoSeries5(6) = "⑥" \X%FM"r
NoSeries5(7) = "⑦" q@[F|EF=
NoSeries5(8) = "⑧" z7`|N`$Z#s
NoSeries5(9) = "⑨" Q. O4R_H
NoSeries5(10) = "⑩" "49dsKIOH
X 5
or5v
*P`wuXn}
NoSeriesRM(1) = "I" vCJa%}
NoSeriesRM(2) = "II" #\Rxqh7
NoSeriesRM(3) = "III" @!!
u>1
NoSeriesRM(4) = "IV" md'wre3
NoSeriesRM(5) = "V" b5^>QzgD
NoSeriesRM(6) = "VI" ,iP
YsW]5
NoSeriesRM(7) = "VII" \ Voly
NoSeriesRM(8) = "VIII" <iU@ M31
NoSeriesRM(9) = "IX" ;NdH]a{
NoSeriesRM(10) = "X" 7>O`UT<t4@
NoSeriesRM(11) = "XI" 2v4K3O60G
NoSeriesRM(12) = "XII" <Y?Z&rNb
NoSeriesRM(13) = "XIII" }kvix{
NoSeriesRM(14) = "XIV" Zf!Q4a
"
NoSeriesRM(15) = "XV" -#T%*
NoSeriesRM(16) = "XVI" 8_HBcZWs
Y]0c%Fd
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) ZZo<0kDk
[(#)9/3,
If i = vbNo Then u$[8Zmgzz
Exit Sub ^$lZ
End If SF-"3M
M`'DD-Q
If Me.chkSuper.Value Then Q> y!
Me.txtStatus.Text = "检查修改所有的上标格式" |a#ikY _nd
'ZMh<M[
CheckSuperScript &k}B66
w[gt9]}N
End If Ul]7IUzsu
S 4
17.n
If Me.chkStyle.Value Then fv8x7l7
Me.txtStatus.Text = "设置样式,请稍候...." <%uEWb)
DoEvents L@AFt)U
CeateOrModifyStyle k@|px#k
q
End If l_:P|
$RY GAh
bRm;d_9zC
L{F]uz_[x
ClearDomain r.#r!.6 q
@U5gxK*
W&
0R/y7
+O 7(
>a
If Me.chkLIST.Value Then -sJD:G,%
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" H<i!C|AF
-A
w]b} #v
ConvertListToOrdinary 0Pf88 '6
End If b,~pwbHf
^t
gjs$M|
[iq^'E
Dim pType As String, trimpTEXT As String 1[Yl8W%pj
If Me.chkNum.Value = True Then ,Owk;MV@
Me.txtStatus.Text = "转换全角数字形式为半角" Y3:HQ0w`|
ConvertWidth "1", "1" Bt@?l]Y
DoEvents BX[IWP\%
ConvertWidth "2", "2" aXVldt'
DoEvents _p0Yhju?
ConvertWidth "3", "3" N}B&(dJ
DoEvents qX-5/;n
ConvertWidth "4", "4" [=jZP,b&),
DoEvents hui
#<2{
ConvertWidth "5", "5" )?#K0o[<
DoEvents eu$VKLY*
ConvertWidth "6", "6" 0:[A4S`X
DoEvents ~$T>,^K
y
ConvertWidth "7", "7" _^GBfM.
DoEvents #1'q'f:7&
ConvertWidth "8", "8" /Ls|'2J<$
DoEvents TCyev[(
ConvertWidth "9", "9" }'x)e
DoEvents 95@u|#n
ConvertWidth "0", "0" T2w4D!
DoEvents N^oP,^+U
ConvertWidth "a", "a" %+j/nA1%S
DoEvents )$E){(Aa
ConvertWidth "b", "b" %pjeA[-m#
DoEvents v0 :n:q
ConvertWidth "c", "c" wQy~5+LE
DoEvents SEzjc ~@3
ConvertWidth "d", "d" qfJ2iE|o2.
DoEvents dR\yRC]I
ConvertWidth "e", "e" f]%SFQ+
DoEvents JX5/PCO
ConvertWidth "f", "f" eUNaq&M
DoEvents _%2ukuJ `
ConvertWidth "g", "g" ~\NQkaBkY
DoEvents `0]N#G
T
ConvertWidth "h", "h" uVU)LOx
DoEvents m
s}o[Z@n
ConvertWidth "i", "i" hfY/)-60o
DoEvents RNB&!NC
ConvertWidth "j", "j" LZ_VLW9wE
DoEvents h]&
ConvertWidth "k", "k" 61kSCu
DoEvents (!{*@?S
ConvertWidth "l", "l" -9{N7H
DoEvents C;JW\J~W
ConvertWidth "m", "m" @Drl5C}+
DoEvents unn2I|XH
ConvertWidth "n", "n" 9;7"S.7AV
ConvertWidth "o", "o" 8ly)G
ConvertWidth "p", "p" :~8@fEKb{
ConvertWidth "q", "q" ^ei[1#
ConvertWidth "r", "r" us|H
b
ConvertWidth "s", "s" >@ 8'C"F
ConvertWidth "t", "t" sd%)g<t
ConvertWidth "u", "u" Q}B]b-c+E
ConvertWidth "v", "v" d9TTAaf
ConvertWidth "w", "w" 8h=m()Eu
ConvertWidth "x", "x" (jU_lsG
ConvertWidth "y", "y" i3|xdYe$
ConvertWidth "z", "z" Ss5@ n
ConvertWidth "A", "A" Iga+8k
ConvertWidth "B", "B" `H:`JBe=+[
ConvertWidth "C", "C" \ [[xyd
ConvertWidth "D", "D" 8o|C43Q_
ConvertWidth "E", "E"
AjcKz
ConvertWidth "F", "F" }1 qQ7}v
ConvertWidth "G", "G" =bD.5,F)
ConvertWidth "H", "H" dX1jn;
7
ConvertWidth "I", "I" tb~E.Lm\
ConvertWidth "J", "J" nsi?.c&0!
ConvertWidth "K", "K" $)ka1L"N
ConvertWidth "L", "L" $nmt&lm
ConvertWidth "M", "M" E%v0@
ConvertWidth "N", "N" AH'c:w]~
ConvertWidth "O", "O" d
5Ae67
ConvertWidth "P", "P" w"
[T
ConvertWidth "Q", "Q" fWEQ vQ
ConvertWidth "R", "R" QjSWl,{
$D
ConvertWidth "S", "S" %zGv+H?
ConvertWidth "T", "T" w#A\(z%;x
ConvertWidth "U", "U" FNL
S=4
ConvertWidth "V", "V" 7M~ /
q.
ConvertWidth "W", "W" z-gMk@l
ConvertWidth "X", "X" yD& Y`f#
ConvertWidth "Y", "Y" }W 5ks-L6
ConvertWidth "Z", "Z" )Hin{~h
ConvertWidth "^l", "^p" DQW)^j
h
ConvertWidth "(", "(" @u/CNx,`X
ConvertWidth ")", ")" [UzacX t
wMCg`
rk
End If c8mh#Tbl
nm<VcCc
With ActiveDocument aeN #<M&$<
Dim tbl As Table iLBORT!;
For Each tbl In .Tables o[Qb/ 7
tbl.Rows.Alignment = wdAlignRowCenter ER9{D$
tbl.Range.Font.NameFarEast = "楷体" #OM'2@
tbl.Range.Font.NameAscii = "Times New Roman" r?[[.zm"7
tbl.Range.Font.Size = 10.5 S"G(_%
Next b?`2LAgn
Set tbl = Nothing z~`X4Segw
End With xf;>o$oN0P
B$2GEg]Ri
ZPE-
With ActiveDocument YL|)`m0-^5
m0^ "fMV
For i = 1 To .TablesOfContents.Count d*Mqs}8
.TablesOfContents(i).Delete T<Xw[PEnP
Next 8~Zw"
$[`rY D/.
1\@PrO35J
O(%6/r`L,k
paraTotal = .Paragraphs.Count {c3FJ5:
paraCounter = 1 fTR6]i;
Gf#l ^yr
LastTitle0No = 0 aG;F=e
LastTitle1No = 0 tc`3-goX
LastTitle2No = 0 pEcYfj3M
LastTitle3No = 0 Dmi.@.
LastTitle4No = 0 yN`hW&K
LastTableNo = 0 r{r~!=u
LastFigureNo = 0 , 2#Q>
N
5zWeFq@6
Dim Sec As Long D%3$"4M7!
|z3!3?%R
Sec = InputBox("正文从第一节开始?", "节设置", 6) L$O\fhO?
If Sec = 0 Then (OE S~G
Exit Sub ;Z0&sFm
End If h&L-G j
|Y}YhUI&
k = 0 O6?{@l
Do While (paraCounter < paraTotal) And bContinue 8k:^( kByF
k = k + 1 <FBH;}]
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then =C,DR4xh
Exit Do <h9nt4F
End If b1#C,UWK
paraCounter = paraCounter + 1 7NT}
Zwf
If k Mod 20 = 0 Then .up[wt gN
Me.lbCounter.Caption = paraCounter p({@t
=L3g
DoEvents Z
JWpb
End If V]J"v#!{
Loop .GJbrz
!\{2s!l~
~x9J&*zxM
Do While (paraCounter < paraTotal) And bContinue .^=I&X/P
&S+*1<|`K
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) fh)eL<I
ShapeHeight = 0 Jy}~ZY
ShapeWidth = 0 :35h0;8+
9[VYd '
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth c"kB @P
3t+{
~{Dj
Select Case ParaType U`3?bhzua
Case "【】表格内容" c.LRS$o/j
.Paragraphs(paraCounter).Style = "QLNU表格内容" '"7b;%EN'
Case "章" xa'U_]m
LastTitle0No = LastTitle0No + 1 `.JW_F)1
'新一章开始,复位其下属标题编号 3,v/zcV
LastTitle1No = 0 T5}3Y3G,6
LastTitle2No = 0 `T+>
E0H(f
LastTitle3No = 0 -E6av|c,F
LastTitle4No = 0 Dx /w&v
]8 }2
k = Val(ttNo) 4rL`||
If k = 0 Then '非数字编号章节 ,_(=w.F
If ttNo <> NoSeries1(LastTitle0No) Then ?,riwDI 2
rText = "第" & NoSeries1(LastTitle0No) & ttString Eu&$Rq}
Me.ErrMsg.AddItem "章节编号错误:" & ParaText Ww8U{f
End If yc]_ ?S>9
Else B=]L%~xL$
If Val(ttNo) <> LastTitle0No Then 9*FA=E
rText = "第" & LastTitle0No & ttString [I%eRo[
Me.ErrMsg.AddItem "章节编号错误:" & ParaText (Q||5
End If [Uq`B&F:
%fS1gSfh
End If +-;v+{
".|8 (Y
'章段落设置 0$`pYW]
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 l]&A5tz3
.Paragraphs(paraCounter).Style = "QLNU章节" 3,G|oR{D
.Paragraphs(paraCounter).Range.Select eSObOG/
Selection.EndKey unit:=wdLine w)S 4Xi=
tc = Replace(rText, vbCr, "") -:d{x#
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False Gev\bQa
Case "一级标题" ec#
`9w$
LastTitle1No = LastTitle1No + 1 ~.^:?yCA
'新一级标题开始,复位其下属标题编号 1WqCezI
LastTitle2No = 0 *>qc6d@'
LastTitle3No = 0 %KO8i)n
LastTitle4No = 0 viU}
JE:LA+ (
If ttNo <> NoSeries1(LastTitle1No) Then ulN1z
rText = NoSeries1(LastTitle1No) & "、" & ttString dkEbP*yXg
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText DI;LhS*z
End If [-l>fP0
S6bYd`
={cM6
F}a@
'一级标题段落设置 格式:一、标题内容 Ygg+=@].@
.Paragraphs(paraCounter).Range.Text = rText y~]D402Cx
.Paragraphs(paraCounter).Style = "QLNU一级标题" l[5** ?#
.Paragraphs(paraCounter).Range.Select V}<<?_
Selection.EndKey unit:=wdLine *^
]
tc = Replace(rText, vbCr, "") R
h6CV
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False
MwQtf(_
Case "二级标题" e^~dx}X
LastTitle2No = LastTitle2No + 1 4Yok,<
'新二级标题开始,复位其下属标题编号 r%=a :GdAg
LastTitle3No = 0 ,V]FAIJ
LastTitle4No = 0 J| &aqY
_Fj\0S"
If ttNo <> NoSeries1(LastTitle2No) Then .yUD\ZGJu
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString 7lF;(l^Z>}
ErrMsg.AddItem "二级标题编号错误:" & ParaText |wb_im
End If DC>?e[oOz
N4VZl[7?
'二级标题段落设置 格式:(一)、标题内容 3`SH-"{j%
.Paragraphs(paraCounter).Range.Text = rText n)a/pO_
.Paragraphs(paraCounter).Style = "QLNU二级标题" {-7ovH?
o-_,l
J7o^
.Paragraphs(paraCounter).Range.Select T7ShE-X
Selection.EndKey unit:=wdLine w_`;Mn%p
tc = Replace(rText, vbCr, "") +ah4 K(+3
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False n3V$Xtxw
S`mB1(h
Case "三级标题" .
&}x[~g
LastTitle3No = LastTitle3No + 1 rLD1Cpeb,w
'新三级标题开始,复位其下属标题编号 0hkYexX73
LastTitle4No = 0 jl7>
KMb'm+
If Val(ttNo) <> LastTitle3No Then ^=-25%&^
rText = LastTitle3No & ". " & ttString o\W>$$EXD
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText 2.);OFk+
z<