Dim bContinue As Boolean #nD]G#>e
O`;e^PhN
Dim regEX As New RegExp ^69ZX61vt
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 \CY_nn|&g
S'h{["P~
0
Dim LastTitle0String As String, LastTitle0No As Long T5AoBUw
Dim LastTitle1String As String, LastTitle1No As Long 7f$ hg8
Dim LastTitle2String As String, LastTitle2No As Long =tKb7:KU
Dim LastTitle3String As String, LastTitle3No As Long )YtdU(^J$
Dim LastTitle4String As String, LastTitle4No As Long G~VukW<e
Dim LastTitle5String As String, LastTitle5No As Long hxB`
hu-
Dim LastTabelString As String, LastTableNo As Long JO3x#1~;_
Dim LastFigureString As String, LastFigureNo As Long [P3].#"]M=
Z\\'0yuY(
Dim strSeperator As String SHAC(3o/e
!_No\O
Sub ConvertWidth(fTEXT As String, rText As String) {o."T/?d'
Selection.Find.ClearFormatting QY^v*+lr\
Selection.Find.Replacement.ClearFormatting R4#56#d<
Selection.Find.Wrap = wdFindContinue 7;8#iS/
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText mRECdGst
DoEvents 9'My/A0
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True [U^@Bk h
End Sub NwISf
!.EDQ1k
Sub ClearDomain() ;Y^
.SR"
With Selection.Find ^$D2fS
.ClearFormatting x%Fy1.
.Replacement.ClearFormatting (lzZ=T
.Wrap = wdFindContinue WZ A8D0[
Me.txtStatus.Text = "清除所有域代码" Ft[)m#Dj`
DoEvents <`f~Z|/-_(
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False URo#0fV4C
End With [ r<0[
End Sub * NB:"1x
-4=\uvYh
Private Sub cmdCheck_Click() ,.K}uW
bContinue = True 1v?|n8
Dim NoSeries1(1 To 16) As String %>mB"Y,
Dim NoSeries2(1 To 16) As String DNyU]+\L[l
Dim NoSeries5(1 To 16) As String (6Y.|u]bq
Dim NoSeriesRM(1 To 16) As String &gr)U3w
Dim paraTotal As Long, ParaText As String 2H
p<(
Dim ttString As String, ttNo As String z'!sc"]W6
U WU PY
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long <hv {,1p-r
|Ok=aV7
Me.txtStatus.Visible = True smJ#.I6/L
Me.lbParaType.Visible = True !&f>,?wlP
Me.cmdCheck.Enabled = False < %t$0'
O-N@HZC
NbyXi3@v
wn&5Ul9Elb
J ;|i6q q
Dim ParaType As String, rText As String ?xT ^9
W]-c`32~S
Selection.WholeStory Qp5YS
Selection.NoProofing = True
ng-rvr
VQV%1f
tm1 = Now pR,eus;8
<y!(X"n`
ActiveWindow.View.Type = wdNormalView :~ ; 48m
:&'[#%h8
NoSeries1(1) = "一" !</Snsi
NoSeries1(2) = "二" y.6Yl**l
NoSeries1(3) = "三" @((Y[<
NoSeries1(4) = "四" n a3st*3V_
NoSeries1(5) = "五" c+bOp
05o-
NoSeries1(6) = "六" a9sbB0q-K@
NoSeries1(7) = "七" Lc?q0x^s
NoSeries1(8) = "八" FRR`<do5$,
NoSeries1(9) = "九" k0e {c
NoSeries1(10) = "十" K]Rb~+a<
NoSeries1(11) = "十一" }u
`~lw(Z
NoSeries1(12) = "十二" Q2 S!}A
NoSeries1(13) = "十三"
Z{ AF8r
NoSeries1(14) = "十四" X%lk] &2
NoSeries1(15) = "十五" KB\A<(o,
NoSeries1(16) = "十六" 's>./Pf
o6@`aU
NoSeries2(1) = "㈠" xV+cX*4h
NoSeries2(2) = "㈡" "?f_U/+D<
NoSeries2(3) = "㈢" fhp+Ep!0Y
NoSeries2(4) = "㈣" "c2{n,
NoSeries2(5) = "㈤" 'k1vV
NoSeries2(6) = "㈥" #
VAL\Z
NoSeries2(7) = "㈦" BM+>.
NoSeries2(8) = "㈧" DZ*m"Bi
NoSeries2(9) = "㈨" 8ED}!;ZU
NoSeries2(10) = "㈩" "/~KB~bB
p4sU:
NoSeries5(1) = "①" t91z
<Y|
NoSeries5(1) = "②" GX@=b6#-
NoSeries5(3) = "③" ,mY3oyu
NoSeries5(4) = "④" bPL.8hX
NoSeries5(5) = "⑤" 6$ \69
NoSeries5(6) = "⑥" <AN=@`+
NoSeries5(7) = "⑦" b&_u+g
NoSeries5(8) = "⑧" gc"A Tc
NoSeries5(9) = "⑨" $psPNJG
NoSeries5(10) = "⑩" Dx*tolF
tT`{xM
F=9
-po
NoSeriesRM(1) = "I" l(j._j~p
NoSeriesRM(2) = "II" '#ow9w+^
NoSeriesRM(3) = "III" 7+c}D>/`
:
NoSeriesRM(4) = "IV" ysDGF@wZC
NoSeriesRM(5) = "V"
1<n'F
H3
NoSeriesRM(6) = "VI" 4^uwZ:
NoSeriesRM(7) = "VII" :vWixgLg
NoSeriesRM(8) = "VIII" E8Y
(C_:s
NoSeriesRM(9) = "IX" Y2&hf6BE
NoSeriesRM(10) = "X" 6jpfo'uB$
NoSeriesRM(11) = "XI" L_(Y[!
NoSeriesRM(12) = "XII" f$I$A(0P
NoSeriesRM(13) = "XIII" rWS],q=c
NoSeriesRM(14) = "XIV" kWm[Lt
NoSeriesRM(15) = "XV" |k[
hk
NoSeriesRM(16) = "XVI" ig}H7U2q@
U3rpmml
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) g5>c-i
9'I$8Su
If i = vbNo Then U_oei3QP
Exit Sub ;]A:(HSZj
End If C?-_8OA
ZhnRsn9
If Me.chkSuper.Value Then C<"b99\2`
Me.txtStatus.Text = "检查修改所有的上标格式" .cCB,re
SYaL@54
CheckSuperScript [`/d$V!e
%&\DCAFk
End If *{1]b_<
hG! |ts
If Me.chkStyle.Value Then 71wtO
Me.txtStatus.Text = "设置样式,请稍候...." 0J5IO|1M
DoEvents i^
_?C5
CeateOrModifyStyle DMpNmF>
End If f)9{D[InM^
?'%9
kgGMA 7Jy
m1{OaHxKh
ClearDomain f`Wces=5
"}ZUa~7
U!D\Vd
eGE[4Z
If Me.chkLIST.Value Then _2p D
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" >@+ r|
'j oE-{
ConvertListToOrdinary (+w
.?l
End If
I5H#]U
&|#z" E^-
96P3B}Dk
Dim pType As String, trimpTEXT As String -s,guW |
If Me.chkNum.Value = True Then hutdw>
Me.txtStatus.Text = "转换全角数字形式为半角" 9{Xh wi)z
ConvertWidth "1", "1" k.K;7GZC
DoEvents a&)4Dv0
ConvertWidth "2", "2" nZP%Z=p7
DoEvents ^QbaMX
ConvertWidth "3", "3" Y. 1dk
DoEvents 9Lp[y%{GP
ConvertWidth "4", "4" &?(472<f**
DoEvents sA1 XtO<&7
ConvertWidth "5", "5" Q2
jl61d_9
DoEvents NU |vtD
ConvertWidth "6", "6" geJO#;
DoEvents r;'Vy0?AL
ConvertWidth "7", "7" N3SB-E+
DoEvents b+!I_g4P
ConvertWidth "8", "8" m>8tA+K)+)
DoEvents i8 fUzg)
ConvertWidth "9", "9" gVU&Yl~/^
DoEvents =qy{8MsjA
ConvertWidth "0", "0" Ps=<@,dks
DoEvents r]yI5 ;
ConvertWidth "a", "a" & 8'QD~
DoEvents jB -wJNP/
ConvertWidth "b", "b" FTT=h0t
DoEvents ^,,lo<d_L
ConvertWidth "c", "c" kXY p.IVA
DoEvents %LZ-i?DL4Q
ConvertWidth "d", "d" P%_PG%O2p
DoEvents F?.J1]
ConvertWidth "e", "e" !^_G~`r$2J
DoEvents YM4njkI7
ConvertWidth "f", "f" q%\rj?U_
DoEvents IKVS7m
ConvertWidth "g", "g" T*v@hbJ
DoEvents yr,Oq~e
ConvertWidth "h", "h" (8d"G9R(
DoEvents C=!YcJ9
ConvertWidth "i", "i" .In8!hjYy4
DoEvents /aX#j`PrH
ConvertWidth "j", "j" n.tJ-l5[
DoEvents u(b Pdf@kz
ConvertWidth "k", "k" vm4q1!!(
DoEvents GJP\vsaQ
ConvertWidth "l", "l" Y&y5^nG
DoEvents `@#,5S$ E
ConvertWidth "m", "m" D! $4
DoEvents 4M3{P
ConvertWidth "n", "n" ganXO5T$
ConvertWidth "o", "o" QoTjKck.
ConvertWidth "p", "p" OYwH$5
ConvertWidth "q", "q" \r^*4P,,
ConvertWidth "r", "r" le.(KgRS4
ConvertWidth "s", "s" 6S6E
1~
ConvertWidth "t", "t" n&;-rj^qq
ConvertWidth "u", "u" >^(Q4eU7!
ConvertWidth "v", "v" =[x
@BzH
ConvertWidth "w", "w" O}cg1Q8p
ConvertWidth "x", "x" yMCd5%=M\
ConvertWidth "y", "y" g4CdzN~
ConvertWidth "z", "z" RQt\_x7P
ConvertWidth "A", "A" rn"}@5
ConvertWidth "B", "B"
avwhGys#
ConvertWidth "C", "C" n=tg{_9f%
ConvertWidth "D", "D" r5(-c]E7
ConvertWidth "E", "E" +:m'a5Dm
ConvertWidth "F", "F" mvrg!/0w
ConvertWidth "G", "G" l!9G
ConvertWidth "H", "H" XJ9l,:c,
ConvertWidth "I", "I" D`fi\A
ConvertWidth "J", "J" [/Ya4=C@
ConvertWidth "K", "K" L;
f
ConvertWidth "L", "L" ~G#^kNme
ConvertWidth "M", "M" oMer+=vH
ConvertWidth "N", "N" zyF[I6Gs
ConvertWidth "O", "O" (25v7Y]
ConvertWidth "P", "P" #M5[T
N!
ConvertWidth "Q", "Q" 97~*Z|#<+
ConvertWidth "R", "R" aVbv.>
ConvertWidth "S", "S"
(U#9
ConvertWidth "T", "T" s\#eD0|
ConvertWidth "U", "U" eq(Xzh
ConvertWidth "V", "V" Z2soy-
ConvertWidth "W", "W" F2k)hG*|{
ConvertWidth "X", "X" }2i3
ConvertWidth "Y", "Y" \ 5=fC9*G
ConvertWidth "Z", "Z" 3G9AS#-C
ConvertWidth "^l", "^p" "H!2{l{
ConvertWidth "(", "(" + jIE,N
ConvertWidth ")", ")" Fm,}sP"Qx
*3r{s'm
End If y*fU_Il|!
n]]!:jFC
With ActiveDocument PN@[k:5(
Dim tbl As Table J^]Y`Q`
For Each tbl In .Tables -f!oq7U
tbl.Rows.Alignment = wdAlignRowCenter fsVQZ$h73
tbl.Range.Font.NameFarEast = "楷体" +5C*i@v
tbl.Range.Font.NameAscii = "Times New Roman" {8as _
tbl.Range.Font.Size = 10.5 G: p!PB>=
Next oP( Hkp,'
Set tbl = Nothing '.&z y#
End With 6: o?@%
qGgqAF#B
x
s ^$fn\
With ActiveDocument J
Je?Zu\
o
N/T>&d
For i = 1 To .TablesOfContents.Count ngC|BLT%h
.TablesOfContents(i).Delete 2gC.Z:}
Next 2(Ez
H
*q/oS8vavd
]/C1pG*o
@vcvte
paraTotal = .Paragraphs.Count -+#g.1UL/
paraCounter = 1 Tr@}
U3zwC5}BN
LastTitle0No = 0 tzFgPeo$;
LastTitle1No = 0 )s';m$
LastTitle2No = 0 ?]bZ6|;2
LastTitle3No = 0 B \z4o\am%
LastTitle4No = 0 wtL_c
LastTableNo = 0 d,0Yi
u.p
LastFigureNo = 0 E%E3h1Ua
Nq3q##Ut:
Dim Sec As Long l<l6Ey(
j)[
wX
Sec = InputBox("正文从第一节开始?", "节设置", 6) =W
Q_5}
If Sec = 0 Then !Qd4Y
=
Exit Sub 3"OD"
End If V9o_
Q
V$7SVq
k = 0
bWAVBF
Do While (paraCounter < paraTotal) And bContinue Z*Qra4GBl]
k = k + 1 {V)Z!D
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then (&x#VmDL
Exit Do Q<F-l.q
End If pdQ6/vh
paraCounter = paraCounter + 1 R0v5mD$:G
If k Mod 20 = 0 Then SKf[&eP,G
Me.lbCounter.Caption = paraCounter 5I(gP
DoEvents 1*!`G5c,}
End If d;kdw
Loop Uhz<B #tj
6 NJ5v+
E'J|
p7
Do While (paraCounter < paraTotal) And bContinue 7k>sE
`1$7. ydQ
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) aykNH>#Po
ShapeHeight = 0 <r%QaQRbm
ShapeWidth = 0 RW@sh9
M6+_Mi.
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth +R_w- NI
k!lz_Y
Select Case ParaType oU.LYz_
Case "【】表格内容" B3V=;zn3
.Paragraphs(paraCounter).Style = "QLNU表格内容" ,.ln
Case "章" =os%22*
LastTitle0No = LastTitle0No + 1 2nFSu9}+r
'新一章开始,复位其下属标题编号 {t;{={$
LastTitle1No = 0 3B<$6
LastTitle2No = 0 #sq$i
LastTitle3No = 0 ]zza/O;31(
LastTitle4No = 0 `Al5(0Q
TCd1JF0
k = Val(ttNo) >|[74#}7
If k = 0 Then '非数字编号章节 e Ert_@}
If ttNo <> NoSeries1(LastTitle0No) Then U_UX *
rText = "第" & NoSeries1(LastTitle0No) & ttString -H%806NAX7
Me.ErrMsg.AddItem "章节编号错误:" & ParaText
5r:SBt|/
End If IaU
Else K]
^kUN_
If Val(ttNo) <> LastTitle0No Then n>Rt9
rText = "第" & LastTitle0No & ttString Rj|8lK;,
Me.ErrMsg.AddItem "章节编号错误:" & ParaText G^]7!:0
End If U&D"fM8
wM;9plYlw0
End If yBPaGZ{f
7O)U(<70
'章段落设置 45hjN6
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 P"<