Dim bContinue As Boolean ^5x\cR
d#cw`h<c~
Dim regEX As New RegExp
Wg9q_Ql
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 6|+I~zJ88
+K,]#$k
Dim LastTitle0String As String, LastTitle0No As Long xH#R_
Dim LastTitle1String As String, LastTitle1No As Long U@yn%k9
Dim LastTitle2String As String, LastTitle2No As Long uA dgR
Dim LastTitle3String As String, LastTitle3No As Long !%>p;H%0
Dim LastTitle4String As String, LastTitle4No As Long EH<r
Uv63
Dim LastTitle5String As String, LastTitle5No As Long &
$ZJfHD@
Dim LastTabelString As String, LastTableNo As Long `?{i dg
Dim LastFigureString As String, LastFigureNo As Long CK
eT%3
DyIuM{Owj
Dim strSeperator As String yPL1(i;
m~mw1r
Sub ConvertWidth(fTEXT As String, rText As String) JK34pm[s
Selection.Find.ClearFormatting eS{lr4-]
Selection.Find.Replacement.ClearFormatting #u`i4
Selection.Find.Wrap = wdFindContinue eD5.*O
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText 42kr&UY&
DoEvents >u?
pq6;
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True o Mk6ZzZ,>
End Sub NPF"_[RoeV
Rqu_[M
Sub ClearDomain() 8%q:lI
With Selection.Find *J,VvO9
.ClearFormatting A
J<Sa=
.Replacement.ClearFormatting 8`l bKV
.Wrap = wdFindContinue 60(j[d-$p
Me.txtStatus.Text = "清除所有域代码" :^]rjy/|+
DoEvents \tH^w@j47
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False 'F.Da#st!}
End With >J,Rx!fq3
End Sub b7 %Z~
{Hg.ctam
Private Sub cmdCheck_Click() ' ^L|}e
bContinue = True
MgkeD
Dim NoSeries1(1 To 16) As String M|nTO
Dim NoSeries2(1 To 16) As String Ze_4MwCW
Dim NoSeries5(1 To 16) As String KfD=3h=
Dim NoSeriesRM(1 To 16) As String 9}LcJ
Dim paraTotal As Long, ParaText As String C)66^l!x
Dim ttString As String, ttNo As String ".Z|zt6C
Ry9kGdqO
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long hF|N81T
BU],,t\
Me.txtStatus.Visible = True LldZ"%P
Me.lbParaType.Visible = True @."_XL74
Me.cmdCheck.Enabled = False 2Z
W
{
y5gTd_-
[S;ceORx
]/&qv6D*d
n?'I&0>M
Dim ParaType As String, rText As String VJquB8?H
r&6X|2@
Selection.WholeStory If[4]-dq
Selection.NoProofing = True %X)w$}WH
IJ >qs8
tm1 = Now "@uKe8r|y
"X<vgM^:
ActiveWindow.View.Type = wdNormalView D>neY9
~.\CG'g
NoSeries1(1) = "一" *9Eep~ 6
NoSeries1(2) = "二" /Ilve
U`E
NoSeries1(3) = "三" W
!TnS/O_1
NoSeries1(4) = "四" `F-<P%k
NoSeries1(5) = "五" =UY)U-
NoSeries1(6) = "六" l12Pj02 w
NoSeries1(7) = "七" ?Vg251-H
NoSeries1(8) = "八" } o^VEJc`O
NoSeries1(9) = "九" IL*Ghq{/
NoSeries1(10) = "十" H&0dc.n~.
NoSeries1(11) = "十一" ((OQs.
NoSeries1(12) = "十二" 5eS0
B{,c
NoSeries1(13) = "十三" IqEE.XhaK
NoSeries1(14) = "十四" Mkc
NoSeries1(15) = "十五" %@Mv-A6)
NoSeries1(16) = "十六" x~3N})T5
V?pqKQL0
NoSeries2(1) = "㈠" pK/r{/>r
NoSeries2(2) = "㈡" W%Jw\ z=
NoSeries2(3) = "㈢" mk*r^k`a
NoSeries2(4) = "㈣" %%d3M->C}
NoSeries2(5) = "㈤" ~^Ceru"<
NoSeries2(6) = "㈥" `b.KMOn
NoSeries2(7) = "㈦" E<6Fjy
NoSeries2(8) = "㈧" {"f4oK{
w
NoSeries2(9) = "㈨" "&!7wH ,A
NoSeries2(10) = "㈩" $aIq>vJO9
/Mq9~oC
NoSeries5(1) = "①" FO[x
c;
NoSeries5(1) = "②" k2]
fUP
NoSeries5(3) = "③" UYOveQ;
NoSeries5(4) = "④" WTWONO>
NoSeries5(5) = "⑤" ^!a4!DGVT
NoSeries5(6) = "⑥" ol^uM .k%_
NoSeries5(7) = "⑦" _"nzo4e0
NoSeries5(8) = "⑧" VS.~gHx
NoSeries5(9) = "⑨" rf@Cz%xDD
NoSeries5(10) = "⑩" ",&^ f
xLX2F
$wnK"k%G
NoSeriesRM(1) = "I" `X;' *E]e
NoSeriesRM(2) = "II" :'hc&wk`
NoSeriesRM(3) = "III" 5D9n>K4|
NoSeriesRM(4) = "IV" ,_+Gb
NoSeriesRM(5) = "V" s0EF{2<F
NoSeriesRM(6) = "VI" NA@
<v{z
NoSeriesRM(7) = "VII" 8kn> ?
NoSeriesRM(8) = "VIII" NJ%>|`FEi7
NoSeriesRM(9) = "IX" YF)uAJ Ak
NoSeriesRM(10) = "X"
sn>2dRW{
NoSeriesRM(11) = "XI" } J_"/bB
NoSeriesRM(12) = "XII" .5?e)o)
NoSeriesRM(13) = "XIII"
HRP
NoSeriesRM(14) = "XIV" (}!xO?NA(
NoSeriesRM(15) = "XV" 4\?
z^^
NoSeriesRM(16) = "XVI" S=f:-?N|
*yX5g,52-|
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) `LroH>_
ohLM9mc9
If i = vbNo Then 8/i];/,v*M
Exit Sub z?Hi
u6c-
End If %X|fp{C
R%%Uw %`
If Me.chkSuper.Value Then c\P,ct
}>
Me.txtStatus.Text = "检查修改所有的上标格式" @la/sd4`
1:Sq?=&
CheckSuperScript
oh^/)2W
p"'knZG
End If &|]GTN
`E
x`3F?[#l
If Me.chkStyle.Value Then ^$>Q6.x?*)
Me.txtStatus.Text = "设置样式,请稍候...." 5)@U
pcjUA
DoEvents Qk5pRoL_
CeateOrModifyStyle Fq
WW[Bgd
End If r$Gz
VWLqJd>tr1
P0 4Q_A
NUN~T (
ClearDomain -!bfxbP
r(qwzUI
?R!?}7
PH1jN?OEwZ
If Me.chkLIST.Value Then T<a/GE/
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" LdH23\
":I@>t{H*
ConvertListToOrdinary s*;rt
End If jV
'u
*2&9
6x*$/1'M3;
:abpht
Dim pType As String, trimpTEXT As String 2h;#BJ))
If Me.chkNum.Value = True Then 7M.TLV!f]
Me.txtStatus.Text = "转换全角数字形式为半角" xU6rZCqE
ConvertWidth "1", "1" r*F^8_YMK
DoEvents qpEK36Js
ConvertWidth "2", "2" )/:j$aq
DoEvents @A.7`*i_
ConvertWidth "3", "3" uUIjntSF(
DoEvents gl$}t H
ConvertWidth "4", "4" O-3R#sZ0
DoEvents XI5TVxo(q
ConvertWidth "5", "5" p~A6:"8s`=
DoEvents {9c_T!c
ConvertWidth "6", "6" D!g\-y
DoEvents >LAhc 7I
ConvertWidth "7", "7" Zws[C
DoEvents /:=,mWoO
ConvertWidth "8", "8" S%Bm4jY
DoEvents cVYPPal
ConvertWidth "9", "9" {SRv=g
DoEvents 8V?*Bz-4`
ConvertWidth "0", "0" -J&
b~t@
DoEvents ~@H9h<T
ConvertWidth "a", "a" S%6 V(L|
DoEvents O$*\JL
ConvertWidth "b", "b" j6&q6C X
DoEvents hy}n&h
ConvertWidth "c", "c" Ny" "lcy
DoEvents h
7/wkv\y9
ConvertWidth "d", "d" :OKU@l|
DoEvents [G<SAWFg7
ConvertWidth "e", "e" ^1\[hyZ!
DoEvents zcE`.)y
ConvertWidth "f", "f" i6-&$<
DoEvents $/)0iL{0
ConvertWidth "g", "g" uS|f|)U&
DoEvents
~a ]R7X7
ConvertWidth "h", "h" J|uSj/8
DoEvents S=zW
wo$
ConvertWidth "i", "i" Qd"R@+i
DoEvents Ly~s84k_po
ConvertWidth "j", "j" ).i :C(|
DoEvents .
g8WMm
ConvertWidth "k", "k" sUl
_W"aQ
DoEvents p!o+8Xz5
ConvertWidth "l", "l" dfR?O#JPU
DoEvents
m1#,B<6
ConvertWidth "m", "m" na`8ulN_
DoEvents CubBD+hl*
ConvertWidth "n", "n" EmYu]"${1
ConvertWidth "o", "o" :c3'U_H^
ConvertWidth "p", "p" 4yDWVd;
ConvertWidth "q", "q" m`!Vryf
ConvertWidth "r", "r" 6DxT(VU}
ConvertWidth "s", "s" b8O }XB
ConvertWidth "t", "t" TjWMdoU$J
ConvertWidth "u", "u" Cj10?BNV)
ConvertWidth "v", "v" rx\f:-3g
ConvertWidth "w", "w" 2tMa4L%@C
ConvertWidth "x", "x"
;kLp}CqV
ConvertWidth "y", "y" &eIwlynm
ConvertWidth "z", "z" /I@`B2
ConvertWidth "A", "A" X B[C&3I
ConvertWidth "B", "B" V }wh
ConvertWidth "C", "C" #
n\|Q\W
ConvertWidth "D", "D" ~E3"s
ConvertWidth "E", "E" +rOfQ'lQ
ConvertWidth "F", "F" oFDJwOJ'Bj
ConvertWidth "G", "G" b|-7EI>l9
ConvertWidth "H", "H" _h1:{hF
ConvertWidth "I", "I" {SJnPr3R
ConvertWidth "J", "J" A5 <T7~U
ConvertWidth "K", "K" ~|R/w%*C
ConvertWidth "L", "L" #+SdX[N
ConvertWidth "M", "M" Wg[ThaZ
ConvertWidth "N", "N" Lv<)Dur0K
ConvertWidth "O", "O" ]%<0V,G
q
ConvertWidth "P", "P" ;yDXo\g
m
ConvertWidth "Q", "Q" lj+}5ySG/
ConvertWidth "R", "R"
3F\UEpQ
ConvertWidth "S", "S" e)Pm{:E
ConvertWidth "T", "T" qYbPF|Y=Z
ConvertWidth "U", "U" FZ@8&T
ConvertWidth "V", "V" ^!x}e+ o
ConvertWidth "W", "W" [h@MA|
ConvertWidth "X", "X" 2`cVi"U
ConvertWidth "Y", "Y" NVG`XL
ConvertWidth "Z", "Z" lFc4| _c g
ConvertWidth "^l", "^p" gVpp9VB
ConvertWidth "(", "(" qy,X#y'FuE
ConvertWidth ")", ")" K/D,sH!
dY$jg
End If 1g1gu=|Q
39
Zs
With ActiveDocument W}.p, d
Dim tbl As Table Jo9!:2?
For Each tbl In .Tables tg%C>O
tbl.Rows.Alignment = wdAlignRowCenter mP+rPDGp
tbl.Range.Font.NameFarEast = "楷体" kOLS<>.
tbl.Range.Font.NameAscii = "Times New Roman" n||!/u)*
tbl.Range.Font.Size = 10.5 QMBV"E_aY
Next 1+NmiGKg
Set tbl = Nothing &4V"FHy2
End With a^MR"i
>@G
hZDv5]V:0
E?^A+)<"
With ActiveDocument
j.vBld
]M.)N.T
For i = 1 To .TablesOfContents.Count yL%k5cO$N
.TablesOfContents(i).Delete pNzpT!}H>
Next QP[`*X
ba"a!#wA
1`@rAA>h'
#7dM %
paraTotal = .Paragraphs.Count
MnT+p[.
paraCounter = 1 Oo`b#!L
>a5avSn
LastTitle0No = 0 0ZpWfL
LastTitle1No = 0 ^J7g)j3
LastTitle2No = 0 ko<VB#pOMr
LastTitle3No = 0 :rX/ILAr
LastTitle4No = 0 iT"H%{+~
LastTableNo = 0 zP;1mN
LastFigureNo = 0 x|IG'R1:Y
sAKQ.8$h*
Dim Sec As Long n+;PfQ|
#^;^_
Sec = InputBox("正文从第一节开始?", "节设置", 6) 9KLhAYaq
If Sec = 0 Then _<P~'IN+n
Exit Sub MESPfS+
End If ;WpPdR2
_=oNQ
k = 0 Mb[4G>-v=
Do While (paraCounter < paraTotal) And bContinue zFk@Y
k = k + 1 YcJ2Arml
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then hR3Pa'/i
Exit Do ?$\y0lHw/7
End If dL!K''24{
paraCounter = paraCounter + 1 G9uWn%
5r
If k Mod 20 = 0 Then )bPF@'rF2
Me.lbCounter.Caption = paraCounter 7
LdNE|IP
DoEvents #$(w
fb9
End If k%v/&ojI
Loop /DQcM.3
g+iV0bbT
L7&|
Do While (paraCounter < paraTotal) And bContinue 4!r>
^a
w=H4#a?fc
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) !WReThq
ShapeHeight = 0 j[o5fr)L
ShapeWidth = 0 R
WU,v{I9
-hP-w>
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth #pz{,
-!p-nk@9|
Select Case ParaType *tZ#^YG{(
Case "【】表格内容" ds9`AiCW>
.Paragraphs(paraCounter).Style = "QLNU表格内容" w_
po47S4
Case "章" /@\3#2;
LastTitle0No = LastTitle0No + 1 7OOod1
'新一章开始,复位其下属标题编号 S.Fip_
LastTitle1No = 0 `[J(au$z
LastTitle2No = 0 r
,,A%
LastTitle3No = 0 4D\+_Ic3
LastTitle4No = 0 |uE_aFQs
lt&30nf=
k = Val(ttNo) P$
|DiiH
If k = 0 Then '非数字编号章节 jn;b{*Lf
If ttNo <> NoSeries1(LastTitle0No) Then "UY.;
P
rText = "第" & NoSeries1(LastTitle0No) & ttString o )
FjWf;
Me.ErrMsg.AddItem "章节编号错误:" & ParaText 6}6ky9
End If ^2PQ75V@.
Else ,-XJ@@2gM
If Val(ttNo) <> LastTitle0No Then @9rmm)TZ
rText = "第" & LastTitle0No & ttString "@[xo7T
Me.ErrMsg.AddItem "章节编号错误:" & ParaText xR,;^R|C
End If ~-w
K{00 V#
End If !OJSQB,
YMx
zj
'章段落设置 {@u}-6:wAT
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 I({ 7a i
.Paragraphs(paraCounter).Style = "QLNU章节" IJn r^S8
.Paragraphs(paraCounter).Range.Select &sx|sLw)
Selection.EndKey unit:=wdLine _(\\>'1q!
tc = Replace(rText, vbCr, "") ptmPO4f
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False sE8.,\
Case "一级标题" T7.u7@V2
LastTitle1No = LastTitle1No + 1 g loo].z
'新一级标题开始,复位其下属标题编号 #dGg !D
LastTitle2No = 0 ]41G!'E=
LastTitle3No = 0 )LYj,do
LastTitle4No = 0 s
`r tr
ka&-tGg
If ttNo <> NoSeries1(LastTitle1No) Then ,b@0Qa"
rText = NoSeries1(LastTitle1No) & "、" & ttString xIo7f
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText Hvq< _&2
End If cF[[_
32IN;X|
| We @p
'一级标题段落设置 格式:一、标题内容 [vaG{4m
.Paragraphs(paraCounter).Range.Text = rText u[jdYWQa
.Paragraphs(paraCounter).Style = "QLNU一级标题" 9e Dji,
.Paragraphs(paraCounter).Range.Select CW=-@W7
Selection.EndKey unit:=wdLine ~QsQ7SAs
tc = Replace(rText, vbCr, "")
1Nk}W!v
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False vN7ihe[C
Case "二级标题" [VPqI~u5)
LastTitle2No = LastTitle2No + 1 /j'We-C
'新二级标题开始,复位其下属标题编号 LE Y Y{G?
LastTitle3No = 0 -7">A~c
LastTitle4No = 0 [<sBnHbvQ.
lm&C!{K
If ttNo <> NoSeries1(LastTitle2No) Then !+M H?A
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString EVj48
ErrMsg.AddItem "二级标题编号错误:" & ParaText J 6
S
End If 5Wi5`8m
S@7A)
'二级标题段落设置 格式:(一)、标题内容 7
9%${ajSI
.Paragraphs(paraCounter).Range.Text = rText {Pg7IYjH
.Paragraphs(paraCounter).Style = "QLNU二级标题" fXw%2wg
)vS##-[_
.Paragraphs(paraCounter).Range.Select nu$LWC-
Selection.EndKey unit:=wdLine |"P5%k#6^>
tc = Replace(rText, vbCr, "") &fj&UBA
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False Y#6@0Nn[G
kkrQ;i)Z
Case "三级标题" jq["z<V)x
LastTitle3No = LastTitle3No + 1 N_VAdNJ^:
'新三级标题开始,复位其下属标题编号 ZF
;S
}1
LastTitle4No = 0 ?XGZp?6
F,O+axO
ja
If Val(ttNo) <> LastTitle3No Then ;8g#"p*&
rText = LastTitle3No & ". " & ttString S&]:=He
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText hP,1;`[1
d<6L&8
)<
End If &/\0_CoTR\
'三级标题段落设置 格式:1. 标题内容 RkLH}`#
.Paragraphs(paraCounter).Range.Text = rText Q$,8yTM
.Paragraphs(paraCounter).Style = "QLNU三级标题" z PV/{)S
.Paragraphs(paraCounter).Range.Select 2.&
v{gq
Selection.EndKey unit:=wdLine ~9oS~fP?I
tc = Replace(rText, vbCr, "") %4L|#^7:
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False (7ew&u\Li
Case "四级标题" eS@RA2
LastTitle4No = LastTitle4No + 1 !4jS=Lhe>
TL7-uH
If Val(ttNo) <> LastTitle4No Then `s:| 4;.
rText = "(" & LastTitle4No & "). " & ttString u(ZS sftat
ErrMsg.AddItem "四级标题编号错误:" & ParaText o D*
'
317Buk
End If z4-AOTo2y
'四级标题段落设置 格式:(1). 标题内容 ~:)$~g7>b
.Paragraphs(paraCounter).Range.Text = rText MO#%w
.Paragraphs(paraCounter).Style = "QLNU四级标题" 4kg9R^0
.Paragraphs(paraCounter).Range.Select +d6E)~qKL
Selection.EndKey unit:=wdLine [1nI%/</>
tc = Replace(rText, vbCr, "") l.BSZhO$
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 4 ", PreserveFormatting:=False z7P PwTBa
wKY6[ vvF
Case "表格标题" GN1cnM>`
LastTableNo = LastTableNo + 1 2z[Pw0#V
2
yP#:T/z
If ttNo <> CStr(LastTableNo) Then
5Ll[vBW
rText = "表" & LastTableNo & ". " & ttString t41cl
ErrMsg.AddItem "表格编号错误:" & ParaText XY4s
TTE#7\K~B
End If q]
Qgg
+Kq>r|;
'表格名称段落设置 格式:表1. 表格名称 74Q?%X
.Paragraphs(paraCounter).Style = "QLNU表格标题" ?$n<