Dim bContinue As Boolean |
aovZ/b4
x$;I E
Dim regEX As New RegExp B~RVFc +
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 w+NdEE4H9z
;5bzXW#U
Dim LastTitle0String As String, LastTitle0No As Long [Grd?mc#
Dim LastTitle1String As String, LastTitle1No As Long
eiV[y^?
Dim LastTitle2String As String, LastTitle2No As Long fvDt_g9 oI
Dim LastTitle3String As String, LastTitle3No As Long nM1F4G
Dim LastTitle4String As String, LastTitle4No As Long i0y^b5@MOb
Dim LastTitle5String As String, LastTitle5No As Long ~<?+(V^D
Dim LastTabelString As String, LastTableNo As Long Pu=,L#+F N
Dim LastFigureString As String, LastFigureNo As Long M ;\iL?,
ST#MCh-00
Dim strSeperator As String |KHaL?
[%alnY
Sub ConvertWidth(fTEXT As String, rText As String) (HW!!xM
Selection.Find.ClearFormatting -<[MM2
Y
Selection.Find.Replacement.ClearFormatting axSJ:j8
Selection.Find.Wrap = wdFindContinue `EUufTYi
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText mu[:b
DoEvents 6{ql.2
Fa
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True oWu2}#~z_
End Sub qBKRm0<W
1yS[;
Sub ClearDomain() x9s7:F
With Selection.Find 0#AS>K5
.ClearFormatting .m&JRz
zV
.Replacement.ClearFormatting ur,!-t(~t
.Wrap = wdFindContinue gxIGL-1M
Me.txtStatus.Text = "清除所有域代码" gua +-##)
DoEvents *,:>EcDr
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False s^@?+<4:
End With Be=J*D!E=>
End Sub h2SVDKj
9Q<8DMX^
Private Sub cmdCheck_Click() n\v;4ly^
bContinue = True McRAy%{z
Dim NoSeries1(1 To 16) As String *oC],4y~D
Dim NoSeries2(1 To 16) As String {hzU
Dim NoSeries5(1 To 16) As String 'edd6yTd
Dim NoSeriesRM(1 To 16) As String Vy:I[@6@+
Dim paraTotal As Long, ParaText As String 6fozc2h@x%
Dim ttString As String, ttNo As String LX
[ _6
UbD1h_b
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long s\k4<d5
)]/gu\90
Me.txtStatus.Visible = True =z5'A|Wa=,
Me.lbParaType.Visible = True mUmU_L u8
Me.cmdCheck.Enabled = False i:6`Rmz1.
#E?T E
R aVOZ=^-
TzC'xWO
aL9yNj}2
Dim ParaType As String, rText As String ADTx _tE
] rP^
Selection.WholeStory WUwH W
Selection.NoProofing = True PgeC\#;9
#mI{D\UR
tm1 = Now `K ,{Y_
L9| 55z
ActiveWindow.View.Type = wdNormalView q`HuVilNH
2qw -:
NoSeries1(1) = "一" ''{REFjK7
NoSeries1(2) = "二" Ry@QJn I<
NoSeries1(3) = "三" 6`>WO_<z
NoSeries1(4) = "四" TSGJ2u5ie%
NoSeries1(5) = "五" Xu4C*]A>
NoSeries1(6) = "六" E<j}"W$a
NoSeries1(7) = "七" uANG_sX^n
NoSeries1(8) = "八" _6b?3[Xz
NoSeries1(9) = "九" 66P'87G
NoSeries1(10) = "十" R
Obo4
NoSeries1(11) = "十一" |Va*=@&6J
NoSeries1(12) = "十二" t<)C
bple\
NoSeries1(13) = "十三" n9
LTrhLqp
NoSeries1(14) = "十四" 7,MDFO{n
NoSeries1(15) = "十五" JnWG_|m)
NoSeries1(16) = "十六" iP7
Cku}l
SXYH#p
NoSeries2(1) = "㈠" Gb=pQ( n4
NoSeries2(2) = "㈡" CFm(
yFk
NoSeries2(3) = "㈢" c>_tV3TDA
NoSeries2(4) = "㈣" gRnn}LL^
NoSeries2(5) = "㈤" >UUcKq1M:
NoSeries2(6) = "㈥" fgiOYvIS2m
NoSeries2(7) = "㈦" \~sc6ho
NoSeries2(8) = "㈧" Tz\ PQ)!
NoSeries2(9) = "㈨" RZ(*%b<C
NoSeries2(10) = "㈩" DChqcdx~~
?ztI8I/
NoSeries5(1) = "①" TzaR{0
1
NoSeries5(1) = "②"
PTU_<\
NoSeries5(3) = "③" XX85]49`%
NoSeries5(4) = "④" F/ZB%;O9
NoSeries5(5) = "⑤" UlG8c~p
NoSeries5(6) = "⑥" B6N/nCvHK
NoSeries5(7) = "⑦" z n,y'},
NoSeries5(8) = "⑧" :~I^ni
NoSeries5(9) = "⑨" E[:eMJR
NoSeries5(10) = "⑩" HHT_ }_?
y /$Q5P+o
Fgx{ s%&-
NoSeriesRM(1) = "I" /
$Qs1*
NoSeriesRM(2) = "II"
+-DF3(
NoSeriesRM(3) = "III" #.<Uy."z2
NoSeriesRM(4) = "IV" (=2-*((&(A
NoSeriesRM(5) = "V" |WiE`&?
xP
NoSeriesRM(6) = "VI" WpPm|h
NoSeriesRM(7) = "VII" DzfgPY_Py
NoSeriesRM(8) = "VIII" z%)~s/2Rs
NoSeriesRM(9) = "IX" N~""Lc&
NoSeriesRM(10) = "X" WH
>= *\
NoSeriesRM(11) = "XI"
n[vwwY
NoSeriesRM(12) = "XII" BBV"nm_(/
NoSeriesRM(13) = "XIII" U$*AV<{%
NoSeriesRM(14) = "XIV" I~^t\iujs
NoSeriesRM(15) = "XV" !2.(iuE
NoSeriesRM(16) = "XVI" dRdI('
F9ys.Bc
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) -0QoVGw
HE;}B!>
If i = vbNo Then z\d{A7
Exit Sub {7kJj(Ue
End If wbIgZ]o!/;
InO;DA\
If Me.chkSuper.Value Then \#
p@ef
Me.txtStatus.Text = "检查修改所有的上标格式" v qt#JdPp9
Re=()M
CheckSuperScript 7U9*-9
oZD+AF$R
End If hTEwp.
Su]@~^w
If Me.chkStyle.Value Then SmpYH
@
Me.txtStatus.Text = "设置样式,请稍候...." YiO3.+H
DoEvents &z;bX-"E
CeateOrModifyStyle Tv d}5~
5?
End If D*%? 0
AiP#wK;
,Y:ET1:
9QQiIi$74U
ClearDomain syJLcK+e
3`JLb]6
w#XD4kwQG
&RJ*DAmL
If Me.chkLIST.Value Then UmR\2
cs
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" kB)u@`</mV
/5!0wxN
ConvertListToOrdinary %E R"Udh
End If Wbq0K6X
*:5S*E&}V
z4qc)-
{L
Dim pType As String, trimpTEXT As String 43VBx<"
If Me.chkNum.Value = True Then :17Pc\:DS
Me.txtStatus.Text = "转换全角数字形式为半角" H;h$k]T
ConvertWidth "1", "1" _%@dlT?
DoEvents X[ 6#J
ConvertWidth "2", "2" %,1xOl4l
DoEvents |p .o ^
ConvertWidth "3", "3" DruiiA
DoEvents !K8Kw
W|X
ConvertWidth "4", "4" W\c1QY$E
DoEvents ]c9\[Kdq}H
ConvertWidth "5", "5" -wsoJh
DoEvents F@tfbDO?
ConvertWidth "6", "6" 9-W3}4'e
DoEvents eh39"s
ConvertWidth "7", "7" o=nF .y
DoEvents d-sT+4o}
ConvertWidth "8", "8" O"M2*qiH
DoEvents W? F Q
ConvertWidth "9", "9" 5%_aN_1?ef
DoEvents V&h{a8xa$
ConvertWidth "0", "0" ]
6X;&=H
DoEvents 0h=}BCb+i
ConvertWidth "a", "a" Sx0/Dm
DoEvents 2q
NA\-0i>
ConvertWidth "b", "b" ( GW"iL#.
DoEvents iV$TvD+
ConvertWidth "c", "c" |JL?"cc
DoEvents y}F;~H~P
ConvertWidth "d", "d" @*9c2\"k
DoEvents k-Z:z?M
ConvertWidth "e", "e" z/I\hC9i
DoEvents AoU Pq
ConvertWidth "f", "f" "5!T-Z+F
DoEvents K1+4W=|
ConvertWidth "g", "g" $a01">q&y
DoEvents \ xJ_)r
ConvertWidth "h", "h" I}jem
DoEvents YMU2^,3
ConvertWidth "i", "i" yPd6{% w
DoEvents kSpy-bVn
ConvertWidth "j", "j" ]vflx^<?
DoEvents 8345
H
ConvertWidth "k", "k" AI^!?nJ%'
DoEvents +n%d,Pz
ConvertWidth "l", "l" _UA|0a!-
DoEvents =h@t#-Z"
ConvertWidth "m", "m" Y#5v5
DoEvents i91 =h
ConvertWidth "n", "n" `53S[8
ConvertWidth "o", "o" {E;oirv&
ConvertWidth "p", "p" h+ms%tNT
ConvertWidth "q", "q" FNw0x6,~R
ConvertWidth "r", "r" dq{+
-XaEk
ConvertWidth "s", "s" f<{f/lU@
ConvertWidth "t", "t" GGs7]mhA
ConvertWidth "u", "u" @<jm+f"MP
ConvertWidth "v", "v" (e_z*o)\T
ConvertWidth "w", "w" N/!(`Z,
ConvertWidth "x", "x" GBl[s,g[|
ConvertWidth "y", "y" aXyFpGdb9
ConvertWidth "z", "z" A+MG?k>yg
ConvertWidth "A", "A" T)I\?hqTB
ConvertWidth "B", "B" i5,yrPF
ConvertWidth "C", "C" x[y}{T
ConvertWidth "D", "D" ]6
HR
ConvertWidth "E", "E" I&6M{,rnM
ConvertWidth "F", "F" vdcPpj^d5
ConvertWidth "G", "G" 9SBTeJ$RZ
ConvertWidth "H", "H" &qzy?/i8
ConvertWidth "I", "I" .0rTk$B
ConvertWidth "J", "J" ?Rk[P
cX<
ConvertWidth "K", "K" TILH[r&Jg
ConvertWidth "L", "L" I
6'!b/
ConvertWidth "M", "M" rE Me=>^
ConvertWidth "N", "N" &P,uK+C4
ConvertWidth "O", "O" ^;9<7h[l
ConvertWidth "P", "P" }1DzWS-hh
ConvertWidth "Q", "Q" 'T|EwrS j
ConvertWidth "R", "R"
iR!]&Oh
ConvertWidth "S", "S" Uc,J+j0F
ConvertWidth "T", "T" PfsUe,*
ConvertWidth "U", "U"
I.'/!11>
ConvertWidth "V", "V" M>Q3;s
ConvertWidth "W", "W" '
<?=!&\D
ConvertWidth "X", "X" 8(ot<3(D
ConvertWidth "Y", "Y" m^~5Xr"
ConvertWidth "Z", "Z" FHSFH>
ConvertWidth "^l", "^p" bzr QQQ
ConvertWidth "(", "(" b BiTAP
ConvertWidth ")", ")" ~"\WV4}`v
-<ome~|
End If
;Dbx5-
t
|)C
#
With ActiveDocument D4N(FZ0~
Dim tbl As Table ^`[<%.
For Each tbl In .Tables ?t<g|H/|6
tbl.Rows.Alignment = wdAlignRowCenter H#uN&^+H
tbl.Range.Font.NameFarEast = "楷体" `fOp>S^Q4
tbl.Range.Font.NameAscii = "Times New Roman" 8`wKq6
tbl.Range.Font.Size = 10.5 BIS .,
Next =CW> ;h]
Set tbl = Nothing yEos$/*u-N
End With n2~WUK
+w7U7"
xQ
dC;&X
g`
With ActiveDocument 2rW9ja
/:^nG+
For i = 1 To .TablesOfContents.Count &Dt=[yqeG
.TablesOfContents(i).Delete
P+Gz'
Next V!(7=ku!`
C23p1%#1
/1p5KVTKv
}d>Xh8:%)
paraTotal = .Paragraphs.Count C
}|.z
paraCounter = 1 wwRPfr[
DgK*>A
LastTitle0No = 0 ~;z]
_`_Va
LastTitle1No = 0 %#
o@ c
LastTitle2No = 0 o:&8H>(hn]
LastTitle3No = 0 w?zy/+N~
LastTitle4No = 0 8f1M6GK?
LastTableNo = 0 ;B;@MD,B
LastFigureNo = 0 3d]~e
0y t36Du
Dim Sec As Long c&P/v#U_
1V9A nzwX
Sec = InputBox("正文从第一节开始?", "节设置", 6) S?6-I,]h
If Sec = 0 Then a~J!G:(
Exit Sub Hj(K*
z
End If c|(J%@B)
Caz5q|Oo
k = 0 cIQbu#[@
Do While (paraCounter < paraTotal) And bContinue t%G.i@{pkp
k = k + 1 <.Pt%Kg^BS
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then eEfGH
Exit Do eXD~L&s[
End If Sa%%3_&
paraCounter = paraCounter + 1 {8qcM8
If k Mod 20 = 0 Then
XjCx`bX^<
Me.lbCounter.Caption = paraCounter _!VtM#G[
DoEvents >kxRsiKV
End If :nR80]
Loop 5Po:$(
_VRxI4q
)-ojm$
Do While (paraCounter < paraTotal) And bContinue nW^h
+
UmvnVmnv
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) YK[2KTlo
ShapeHeight = 0 Phk3Jv
ShapeWidth = 0 )hl7)~S<
=|``d-
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth n.qT7d(
8V}|(b#
Select Case ParaType %[5GG d5w
Case "【】表格内容" Yi,`uJKh
.Paragraphs(paraCounter).Style = "QLNU表格内容" rM^2yr7H
Case "章" Wz#
Cyjo
LastTitle0No = LastTitle0No + 1 S-}c_zbl;
'新一章开始,复位其下属标题编号 /t`,7y3T
LastTitle1No = 0
iqdU?&.;
LastTitle2No = 0 1pg#@h[|t
LastTitle3No = 0 W!R0:-
LastTitle4No = 0 |/H?\]7
7y3WV95Z\
k = Val(ttNo) jl>TZ)4}V
If k = 0 Then '非数字编号章节 4`)r1D!U
If ttNo <> NoSeries1(LastTitle0No) Then |OAM;@jH
rText = "第" & NoSeries1(LastTitle0No) & ttString ~Kt1%&3{a?
Me.ErrMsg.AddItem "章节编号错误:" & ParaText 7G^Q2w
End If FNuE-_
Else & !ds#-
If Val(ttNo) <> LastTitle0No Then 71
%$&6
rText = "第" & LastTitle0No & ttString `"[qb ?z
Me.ErrMsg.AddItem "章节编号错误:" & ParaText ^"p. 3Hy
End If tc[z/
9od*N$
End If j{r@>g;3
$'>JG9M
'章段落设置 ?}v/)hjp=?
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 ^"D^D`$@
.Paragraphs(paraCounter).Style = "QLNU章节" EPH
n"YK
.Paragraphs(paraCounter).Range.Select @8>bp#x/1
Selection.EndKey unit:=wdLine mv #hy
tc = Replace(rText, vbCr, "") 4_iA<}>|
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False B
@QWr;
Case "一级标题" j'U1lEZm2
LastTitle1No = LastTitle1No + 1 9unRMvE u
'新一级标题开始,复位其下属标题编号 Pzq^x]
LastTitle2No = 0 nIr`T^c9c
LastTitle3No = 0 MJqWc6{ n
LastTitle4No = 0 akt7rnt?i
b
Ej}J_#
If ttNo <> NoSeries1(LastTitle1No) Then uV_%&P
rText = NoSeries1(LastTitle1No) & "、" & ttString PuREqa\_[
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText \/<VJB
uV
End If ,b&hLht
"^6Fh"]
$/C1s"C@O
'一级标题段落设置 格式:一、标题内容 yU&