Dim bContinue As Boolean W,6q1
JI]Lz1i
Dim regEX As New RegExp ,--#3+]XU
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 X-((
[A
DSqA}r
Dim LastTitle0String As String, LastTitle0No As Long @y7KP$t
Dim LastTitle1String As String, LastTitle1No As Long :XFQ}Cl
Dim LastTitle2String As String, LastTitle2No As Long :JG5)H}j+
Dim LastTitle3String As String, LastTitle3No As Long 'Xwv,
Dim LastTitle4String As String, LastTitle4No As Long \O"H#gt
Dim LastTitle5String As String, LastTitle5No As Long Zt!$"N.,
Dim LastTabelString As String, LastTableNo As Long n'^`;-
Dim LastFigureString As String, LastFigureNo As Long T$"~Vu
DZ2gnRg
Dim strSeperator As String F$tzsz,9n
pJ}U'*Z2
Sub ConvertWidth(fTEXT As String, rText As String) Mb2a;s
Selection.Find.ClearFormatting ;&=CZ6vH
Selection.Find.Replacement.ClearFormatting /)J]ItJlz
Selection.Find.Wrap = wdFindContinue 8|)!E`TKSV
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText Kt*fQ
`9
DoEvents \99'#]\_/E
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True %C,zR&]F
End Sub ^6kl4:{idE
"[~yu*
S
Sub ClearDomain() xjbI1qCfe
With Selection.Find k1xx>=md|C
.ClearFormatting 36(qe"s
.Replacement.ClearFormatting .:}<4;Qz94
.Wrap = wdFindContinue S?JCi=
Me.txtStatus.Text = "清除所有域代码" HJN GO[*g
DoEvents S1^/W-yoc~
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False xIm2t~io
End With gU+yqT7=
End Sub T90O.]S
;X+tCkzF
Private Sub cmdCheck_Click() eUQmW^
bContinue = True DCiU?u~
Dim NoSeries1(1 To 16) As String 8A&N+sT
Dim NoSeries2(1 To 16) As String ,Ohhl`q(
Dim NoSeries5(1 To 16) As String X5/j8=G H`
Dim NoSeriesRM(1 To 16) As String ]rj~3du\
Dim paraTotal As Long, ParaText As String DSRc4|L
Dim ttString As String, ttNo As String yg'CL/P
bT2c&VPCE
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long ^UKY1Q.
vw!7f|Pg ~
Me.txtStatus.Visible = True 7QTS@o-
Me.lbParaType.Visible = True $7Hwu^c(
Me.cmdCheck.Enabled = False ,H"}Rw
wE.jf.q
##Pzc~xSn
a%m
)8N;C
8Pa*d/5Y(
Dim ParaType As String, rText As String 2QbKh)
'XKfKv >;
Selection.WholeStory )yb~ kbe
Selection.NoProofing = True WuY#Kx
~2
O713'i
tm1 = Now HN NeH;L
oCOv
6(
ActiveWindow.View.Type = wdNormalView Sy <E@1
#Y7iJPO
NoSeries1(1) = "一" /ojwOJ
NoSeries1(2) = "二" h SS9mQ
NoSeries1(3) = "三" faRQj:R8
NoSeries1(4) = "四" W?zj^y[w
NoSeries1(5) = "五" G`%rnu
NoSeries1(6) = "六" :2c(.-[`
NoSeries1(7) = "七" 02;'"EmP$
NoSeries1(8) = "八" )J @[8 x`
NoSeries1(9) = "九" _VdJFjY?zc
NoSeries1(10) = "十" seK;TQ3/7
NoSeries1(11) = "十一" jRC{8^98
NoSeries1(12) = "十二" c!6v-2ykv
NoSeries1(13) = "十三" @4*eH\3
NoSeries1(14) = "十四" ]@z!r2[
NoSeries1(15) = "十五" &77J,\C$:
NoSeries1(16) = "十六" L@[}sMdq(
\[{8E}_"^
NoSeries2(1) = "㈠" N7"cMAs\G
NoSeries2(2) = "㈡" Z1q<) O1QX
NoSeries2(3) = "㈢" u3 LoP_|
NoSeries2(4) = "㈣" >x6\A7
NoSeries2(5) = "㈤" `;}qjm0a
NoSeries2(6) = "㈥" <Rw2F?S~)n
NoSeries2(7) = "㈦" 3Y)z{o>P
NoSeries2(8) = "㈧" s-Gd{=%/q
NoSeries2(9) = "㈨" +1cr6a
NoSeries2(10) = "㈩" )fXw ~
oe^JDb#
NoSeries5(1) = "①" 2( GYk
NoSeries5(1) = "②"
>
Vq07R
NoSeries5(3) = "③" `Z>=5:+G@2
NoSeries5(4) = "④" |khFQ(
NoSeries5(5) = "⑤" +sn0bi/rG
NoSeries5(6) = "⑥" :*
|WE29U
NoSeries5(7) = "⑦" ""
^n^$
NoSeries5(8) = "⑧" OCdX'HN5Y
NoSeries5(9) = "⑨" Szu@{lpP@
NoSeries5(10) = "⑩" U~yPQ8jD
W#g!Usf:/
igTs[q=Ak
NoSeriesRM(1) = "I" ',[AKXJ
NoSeriesRM(2) = "II" -!~pa^j
NoSeriesRM(3) = "III" a] c03$f K
NoSeriesRM(4) = "IV" ZKt{3P
NoSeriesRM(5) = "V" j7g>r/1eE
NoSeriesRM(6) = "VI" Ou4hAm91s
NoSeriesRM(7) = "VII" -V2`[k
NoSeriesRM(8) = "VIII" J#wf`VR%
NoSeriesRM(9) = "IX" {wSz >,
NoSeriesRM(10) = "X" \\R<HuTY
NoSeriesRM(11) = "XI" \Kui`X
NoSeriesRM(12) = "XII" /PaS<"<P@
NoSeriesRM(13) = "XIII" _X?_|!;J
NoSeriesRM(14) = "XIV" X{cB%t
o
NoSeriesRM(15) = "XV" %u9Q`
NoSeriesRM(16) = "XVI" #B?lU"f8q^
ckFPx l.
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) e/g9r
3:WHC3}W
If i = vbNo Then KS5a8'U
Exit Sub fI;nVRfp
End If \bF<f02P
8hww({S2
If Me.chkSuper.Value Then <e
9d5-2
Me.txtStatus.Text = "检查修改所有的上标格式" 3;z1Hp2X
qm_
r~j
CheckSuperScript 6W YVHG
ux^rF
End If Jb> X$|N'%
4s|qxCks
If Me.chkStyle.Value Then fGeie m
Me.txtStatus.Text = "设置样式,请稍候...." 1
Lg {l
DoEvents t3.;qDy
CeateOrModifyStyle )g8Kicox5
End If VgbT/v
GBS+ 4xL|
bydI+pVMo
M*T!nwb
ClearDomain *\:sHVyG(
Qo3Enwap=
/z!y[ri+J
t
4M-;y
If Me.chkLIST.Value Then s^PsA9EAn
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" (g[WZB3x
T-4dD
ConvertListToOrdinary <6.`(isph
End If jpYZ)
So-
wU'+4N".
R>Ox(MG
Dim pType As String, trimpTEXT As String u"7!EhX&
If Me.chkNum.Value = True Then fA1{-JzV<4
Me.txtStatus.Text = "转换全角数字形式为半角" [C-FJ>=S
ConvertWidth "1", "1" 5>S1lyam
DoEvents PQ_A^ 95
ConvertWidth "2", "2" @||nd,i`n~
DoEvents L"1AC&~u
ConvertWidth "3", "3" w#BT/6W&G
DoEvents %b_0l<+
ConvertWidth "4", "4" P(b~3NB)
DoEvents S/eplz;
ConvertWidth "5", "5" 0r$n
DoEvents } @3q;u )
ConvertWidth "6", "6" er
BerbEEH
DoEvents Ed0}$b
ConvertWidth "7", "7" Zonn
DoEvents 8.wtv5eZ
ConvertWidth "8", "8" aEa.g.SZ
DoEvents
N8x&<H
ConvertWidth "9", "9" >@G"*le*)
DoEvents ,V5fvHPH)8
ConvertWidth "0", "0" '"Uh
w$#t
DoEvents mIrN~)C4\
ConvertWidth "a", "a" '.%Omc
DoEvents <M5fk?n,|
ConvertWidth "b", "b" >U\P^yU
DoEvents ,qB@agjvo<
ConvertWidth "c", "c" pfc"^Gi8
DoEvents |DsT $~D
ConvertWidth "d", "d" Ht}?=ZzW
DoEvents op-\|<i
ConvertWidth "e", "e" Uv<nJM
DoEvents N
uF?:L[
ConvertWidth "f", "f" W4P\HM>2
DoEvents A[fTpS ~~%
ConvertWidth "g", "g" +,7vbs3
DoEvents /9SoVU8
ConvertWidth "h", "h" `DGI|3
DoEvents l%0-W
ConvertWidth "i", "i" 7$0bgWi
DoEvents Ke#Rkt
ConvertWidth "j", "j" "ig)7X+Wz|
DoEvents =_ N$0
ConvertWidth "k", "k" g 6?y{(1
DoEvents ?c"iV
ConvertWidth "l", "l" VS`{k^^
DoEvents ?%ltoezf
ConvertWidth "m", "m" M
'X,7hZ
DoEvents 58mpW`Q
ConvertWidth "n", "n" 4%<wxrod
ConvertWidth "o", "o" +S#Xm4
ConvertWidth "p", "p" 'Zex/:QS
ConvertWidth "q", "q" PD^ 6Ywn>s
ConvertWidth "r", "r" l*CCnqE
ConvertWidth "s", "s" =%I;Y& K
ConvertWidth "t", "t" ($UUgjv F
ConvertWidth "u", "u" icVB?M,m
ConvertWidth "v", "v" 3
Sf':N`u
ConvertWidth "w", "w" gCRPaF6
ConvertWidth "x", "x" b,jo94.G
ConvertWidth "y", "y" ?Ec{%N%
ConvertWidth "z", "z" u+6L>7t88I
ConvertWidth "A", "A" 805oV(-
ConvertWidth "B", "B" k
MV1$
ConvertWidth "C", "C" &>Z;>6J,
ConvertWidth "D", "D" ;ioF'ov
ConvertWidth "E", "E" fV6ddh
ConvertWidth "F", "F" E}0g
ConvertWidth "G", "G" BVus3Y5IJQ
ConvertWidth "H", "H" c%wztP;L
ConvertWidth "I", "I" Xyz/CZPi
ConvertWidth "J", "J" G|t0no\f
ConvertWidth "K", "K" %ib7)8Ki0
ConvertWidth "L", "L" ;5T}@4m|r
ConvertWidth "M", "M" XN\rq=
ConvertWidth "N", "N" nu|,wE!i
ConvertWidth "O", "O" FH%:NO
ConvertWidth "P", "P" .*+jD^Gr
ConvertWidth "Q", "Q" h'vBWtMa
ConvertWidth "R", "R" nHF~a?|FT
ConvertWidth "S", "S" 3)e{{]6
ConvertWidth "T", "T" NTCFmdbs 6
ConvertWidth "U", "U" 211T}a
ConvertWidth "V", "V" <dXeP/1w`
ConvertWidth "W", "W" [T[]U
ConvertWidth "X", "X" B=r+
m;(
ConvertWidth "Y", "Y" fX\y/C
ConvertWidth "Z", "Z" ,|#biT-<T
ConvertWidth "^l", "^p" Dequ'
ConvertWidth "(", "(" o7PS1qcya<
ConvertWidth ")", ")" i3L2N~:V
?djH!
End If 2zv:j7
>lJTS t5{
With ActiveDocument JXt_
Dim tbl As Table K0I.3|6C
For Each tbl In .Tables TB<$9FCHK
tbl.Rows.Alignment = wdAlignRowCenter aehB,l0
tbl.Range.Font.NameFarEast = "楷体" ESFJN}Q%0.
tbl.Range.Font.NameAscii = "Times New Roman" |,H2ge
tbl.Range.Font.Size = 10.5 %'X7T^uE
Next .Tw:Y,G
Set tbl = Nothing qrZ3`@C4k
End With dxS5-aWy9w
Ut/%+r"s
Y}C|4"V
With ActiveDocument Uhn3usK
8y[Rwa
For i = 1 To .TablesOfContents.Count /&czaAR-
.TablesOfContents(i).Delete at\u7>;.^k
Next &(p5z4Df
>-3>Rjo>
:7Uv)@iUk
hc9ON&L\>
paraTotal = .Paragraphs.Count |v#D}E
paraCounter = 1 4}*.0'Hz
xd"+ &YT
LastTitle0No = 0 UbIUc}ge
LastTitle1No = 0 23'<R i
LastTitle2No = 0 "So"oT1
LastTitle3No = 0 "|,KXv')
LastTitle4No = 0 {z;K0
LastTableNo = 0 nHZhP4W
LastFigureNo = 0 ^e$!19g
?Ycl!0m
Dim Sec As Long OP=-fX|*Q
]vV)$xMX
Sec = InputBox("正文从第一节开始?", "节设置", 6) $|[N3
If Sec = 0 Then $n47DW&
Exit Sub =E(ed,gH8
End If =CdrhP_
X(#8EY}X
k = 0 JIYzk]Tj
Do While (paraCounter < paraTotal) And bContinue KP>1%ap6
k = k + 1 |-cXb.M[
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then _sL;E<)y(
Exit Do %(K} 1[
End If O OABn*
paraCounter = paraCounter + 1 tt6GtYrC 1
If k Mod 20 = 0 Then 79o=HiOF99
Me.lbCounter.Caption = paraCounter X68.*VHh0
DoEvents RHbbj}B
End If ^;[_CF_
Loop FKhgUnw
]!jfrj
@W==)S%O
Do While (paraCounter < paraTotal) And bContinue ofI,[z3
(WY9EJ<s,
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) ug"4P.wI
ShapeHeight = 0 'w<^4/L Q
ShapeWidth = 0 NMC0y|G
N
K@6U_/W
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth 3Tw9Uc\vT
t0/Ol'kgs
Select Case ParaType hOFvM&$
Case "【】表格内容" O69TU[Vn
.Paragraphs(paraCounter).Style = "QLNU表格内容" }1CvbB%,A
Case "章" -Oz! GX
LastTitle0No = LastTitle0No + 1 >@-.rkd(
'新一章开始,复位其下属标题编号 %uiCC>cC
LastTitle1No = 0 =Uo*-EH
LastTitle2No = 0 d{ B0a1P
LastTitle3No = 0 uc]5p(9Hb
LastTitle4No = 0 xh25 *y
;nAx@_ab^
k = Val(ttNo) {%&04yq+
If k = 0 Then '非数字编号章节 ]F;1 l3I-
If ttNo <> NoSeries1(LastTitle0No) Then ?
s)6 YF
rText = "第" & NoSeries1(LastTitle0No) & ttString 6g#E/
{kQw
Me.ErrMsg.AddItem "章节编号错误:" & ParaText }5$le]
End If F|o
yrG
Else -H|!KnR
If Val(ttNo) <> LastTitle0No Then U.I7p
rText = "第" & LastTitle0No & ttString OJM2t`}_t
Me.ErrMsg.AddItem "章节编号错误:" & ParaText <F-IF7>a
End If eIf-7S]m
qwn EVjf
End If %503<j
J*6B~)Sp@
'章段落设置 }w>UNGUMh
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 xbHI4A"
Z
.Paragraphs(paraCounter).Style = "QLNU章节" &t