Dim bContinue As Boolean l iY/BkpH
(hwzA
*(c
Dim regEX As New RegExp Sqp91[,
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读
iYLg[J"
}!K
#
Dim LastTitle0String As String, LastTitle0No As Long eYv^cbO@:
Dim LastTitle1String As String, LastTitle1No As Long ;ab[YMkH
Dim LastTitle2String As String, LastTitle2No As Long !S<p"
Dim LastTitle3String As String, LastTitle3No As Long &5HI
Dim LastTitle4String As String, LastTitle4No As Long OkRb3}
Dim LastTitle5String As String, LastTitle5No As Long glch06
Dim LastTabelString As String, LastTableNo As Long QHv]7&^rlj
Dim LastFigureString As String, LastFigureNo As Long EZWWvL
I]HYqI
Dim strSeperator As String Z%?>H iy'o
^X#)'\T
Sub ConvertWidth(fTEXT As String, rText As String) :30daKo
Selection.Find.ClearFormatting W(qK?"s2
Selection.Find.Replacement.ClearFormatting ;R+Gf!1
Selection.Find.Wrap = wdFindContinue I_B%F#X)
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText ):Fg {7b]n
DoEvents _Q #[IH9
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True m
<n
+1
End Sub (Tq)!h35B
]fY:+Ru
Sub ClearDomain() hzAuj0-A
With Selection.Find "'DPb%o
.ClearFormatting &v]xYb)+<
.Replacement.ClearFormatting -n@,r%`UK
.Wrap = wdFindContinue pp|$y\ZzB
Me.txtStatus.Text = "清除所有域代码" p_xJKQS
DoEvents =&g:dX|q8
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False c:=HN-*vQ
End With g#P]72TQ
End Sub fbI5!i#lz
iw.F8[})
Private Sub cmdCheck_Click() "U9e)a0v
bContinue = True ;-i)}<
Dim NoSeries1(1 To 16) As String #: EhGlq8
Dim NoSeries2(1 To 16) As String }Q[U4G
Dim NoSeries5(1 To 16) As String h/5V~ :)
Dim NoSeriesRM(1 To 16) As String k Jz^\
Re
Dim paraTotal As Long, ParaText As String c
CjN8<
Dim ttString As String, ttNo As String ^d>m`*px
Fp B3SJ6 B
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long Zq{gp1WC
qW3XA$g|j'
Me.txtStatus.Visible = True +v%+E{F$+
Me.lbParaType.Visible = True :tENn
r.9v
Me.cmdCheck.Enabled = False E.C=VfBW
Zp/P/97p
<OiH%:G/1
nVpDjUpN
)l*3^kwL{U
Dim ParaType As String, rText As String ]@_|A, ]
M\ wCZG
Selection.WholeStory HZ(giAyjq
Selection.NoProofing = True FS7D
L]YJ#5
tm1 = Now bz:En'2>F
Wu,=jL3?$A
ActiveWindow.View.Type = wdNormalView % M_F/ O
9a:(ab'
NoSeries1(1) = "一" &gh>'z;`r
NoSeries1(2) = "二" An]Vx<PD
NoSeries1(3) = "三" jz3f{~
NoSeries1(4) = "四" U7LCd+Z5X
NoSeries1(5) = "五" UnDX .W*2
NoSeries1(6) = "六" pl}W|kW}
NoSeries1(7) = "七" "Ml#,kU<T
NoSeries1(8) = "八" e9\_H=t+
NoSeries1(9) = "九" 0}Kyj"-3
NoSeries1(10) = "十" pw))9~XU
NoSeries1(11) = "十一" a{e1g93}
NoSeries1(12) = "十二" >8NUji2I
NoSeries1(13) = "十三" VaonG]Ues
NoSeries1(14) = "十四" 1<
b~="
NoSeries1(15) = "十五" v?d`fd
NoSeries1(16) = "十六" <'T DOYb
HII@Ed f?
NoSeries2(1) = "㈠" 4[Ko|
NoSeries2(2) = "㈡" :MYLap&L&
NoSeries2(3) = "㈢" 6Po{tKU
NoSeries2(4) = "㈣" #.FhN x
NoSeries2(5) = "㈤" ~- aUw}U
NoSeries2(6) = "㈥" {#t7lV'4
NoSeries2(7) = "㈦" &/Gf@[
NoSeries2(8) = "㈧"
uKY1AC__
NoSeries2(9) = "㈨" /`qQWB5b
NoSeries2(10) = "㈩" \1u^?cBd
IM,d6lN6s
NoSeries5(1) = "①" "MPS&OK
NoSeries5(1) = "②" Ut%{pc 7^F
NoSeries5(3) = "③" nr>Yj?la
NoSeries5(4) = "④" 8&hxU@T~
NoSeries5(5) = "⑤" x[&)\[t
NoSeries5(6) = "⑥" ^Ux.s Q
NoSeries5(7) = "⑦" aEEb1Y
NoSeries5(8) = "⑧" 4Qi-zNNB
NoSeries5(9) = "⑨" njNqUo>
NoSeries5(10) = "⑩" ;5|d[r}k3
F.Bij8\
!;t6\Z8&
NoSeriesRM(1) = "I" h1Y^+A_
NoSeriesRM(2) = "II" (Ms0pm-#t
NoSeriesRM(3) = "III" $;";i:H`
NoSeriesRM(4) = "IV" _Kli~$c& M
NoSeriesRM(5) = "V"
?nJv f
NoSeriesRM(6) = "VI" N+]HJ`K
NoSeriesRM(7) = "VII" Eb'M< ZY
NoSeriesRM(8) = "VIII" 8XCT[X
NoSeriesRM(9) = "IX" 2L.6!THG
NoSeriesRM(10) = "X" 5HB*
NoSeriesRM(11) = "XI" uxX 3wY;M
NoSeriesRM(12) = "XII" X~*/ ~f
NoSeriesRM(13) = "XIII" PTQN.[bBh
NoSeriesRM(14) = "XIV" >kuu\
NoSeriesRM(15) = "XV"
zGL.+@
NoSeriesRM(16) = "XVI" DLq'V.M:
?:5/4YC
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) Eg4&D4TGp
{rF9[S"h
If i = vbNo Then f DXTedrG/
Exit Sub Rto/-I0l
End If 1vh[sKv9%
A/ Sj>Y1j
If Me.chkSuper.Value Then M?m@o1\;W
Me.txtStatus.Text = "检查修改所有的上标格式" $|@-u0sv
1Fsa}UK
CheckSuperScript qus%?B{b}
1yS:`
End If ErQGVE;zk
'v(b^x<ZS
If Me.chkStyle.Value Then vgn,ZcX
Me.txtStatus.Text = "设置样式,请稍候...." x9]vhR/av
DoEvents A0ZU #"'/
CeateOrModifyStyle dM -<aq
End If %xXb5aY
X=jD^"-
f(EO|d^u
HbCcROl(
ClearDomain ey:%Zy
[~
i\>?b)a>
~A(^<
h5n@SE>G
If Me.chkLIST.Value Then '~{kR=+
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" #]*d8
I,/E.cRV<
ConvertListToOrdinary 8yswi[
End If +wGvYr
i"^ yy+
!%D;H ~mQ
Dim pType As String, trimpTEXT As String M>*xbBl
If Me.chkNum.Value = True Then R_80J=%0
Me.txtStatus.Text = "转换全角数字形式为半角" 6,l5Q
ConvertWidth "1", "1" $}H,g}@0
DoEvents nbv}Q-C
ConvertWidth "2", "2" *]Eyf")
DoEvents (V}?y:)
ConvertWidth "3", "3" 7 $dibTER
DoEvents JGYJ;j{E]
ConvertWidth "4", "4" nx!+:P ,
DoEvents !Ks<%;
rb
ConvertWidth "5", "5" I!Fd~g9I4
DoEvents GG4FS
ConvertWidth "6", "6" Gfepm$*%
DoEvents B;<zA' 1
ConvertWidth "7", "7" IR8qFWDZ
DoEvents VTO92Eo
ConvertWidth "8", "8" <`BDN
DoEvents /RF&@NJE5
ConvertWidth "9", "9" R,l*@3Q
DoEvents |/u,6`
ConvertWidth "0", "0" k]c$SzJ> /
DoEvents }'p*C$
ConvertWidth "a", "a" Sq`Zuu9t
DoEvents pe!"!xJE
ConvertWidth "b", "b" 0Y!~xyg/
DoEvents AgOti]`aR
ConvertWidth "c", "c" 7Xh
;dJAF3
DoEvents ,H/BW`rL]#
ConvertWidth "d", "d" {P ==6/<2o
DoEvents Gl4f:`
ConvertWidth "e", "e" $%1oZ{&M
DoEvents =Nz;R2{@
ConvertWidth "f", "f" K;R!>p}t
DoEvents rwpH9\GE
ConvertWidth "g", "g" a!&<jM
DoEvents z|<?=c2P
ConvertWidth "h", "h" TOx@Y$_9Q8
DoEvents BtF7P}:MGf
ConvertWidth "i", "i" bW GMgC
DoEvents [ mo9?
ConvertWidth "j", "j" =>e>
r~cW
DoEvents mW3IR3b
ConvertWidth "k", "k" Rz<'&Z>;
DoEvents \mFgjPz
ConvertWidth "l", "l" p3IhK>
DoEvents ZQsVSz( 1
ConvertWidth "m", "m" ,C^u8Z|T
DoEvents Q*9Y.W. 8
ConvertWidth "n", "n" @f#6Nu
ConvertWidth "o", "o" g
T0@pxl
ConvertWidth "p", "p" $L72%T
ConvertWidth "q", "q" fTGVG
ConvertWidth "r", "r" @n$/2y_.
ConvertWidth "s", "s" Lo
O"d'{
ConvertWidth "t", "t" ?0d#O_la
3
ConvertWidth "u", "u" 8&y#LeM1TT
ConvertWidth "v", "v" <,t6A?YoMP
ConvertWidth "w", "w" k P=~L=cK
ConvertWidth "x", "x" p-6T,')
ConvertWidth "y", "y" QOv@rP/
ConvertWidth "z", "z" {afIr1j/m
ConvertWidth "A", "A" G4EuW *~
ConvertWidth "B", "B" e'3y^Vg
ConvertWidth "C", "C" K{iC'^wP
ConvertWidth "D", "D" yh+.Yn=+
ConvertWidth "E", "E" R E9`T
ConvertWidth "F", "F" QRdh2YH`
ConvertWidth "G", "G" ,UxAHCR~9
ConvertWidth "H", "H" }n k[WW
ConvertWidth "I", "I" ?V =#x.9
ConvertWidth "J", "J" PSU}fo
ConvertWidth "K", "K" }4q1"iMlO
ConvertWidth "L", "L" N3\vd_D
(
ConvertWidth "M", "M" lG`%4}1
ConvertWidth "N", "N" Md*.q^:
ConvertWidth "O", "O" 2GRv%:rZ
ConvertWidth "P", "P" v+DXs!O{
ConvertWidth "Q", "Q" NqN}] nu6
ConvertWidth "R", "R" (J.U{N v
ConvertWidth "S", "S"
!)EYM&:Y
ConvertWidth "T", "T" kq>I?wg
ConvertWidth "U", "U" &iaS3x
ConvertWidth "V", "V" 3#{Al[jq
ConvertWidth "W", "W" *dxE
( dP
ConvertWidth "X", "X" cJ'OqV F
ConvertWidth "Y", "Y" V?n=yg
ConvertWidth "Z", "Z" 0>ce~KU
ConvertWidth "^l", "^p" @lCyH(c%
ConvertWidth "(", "(" ]4,eCT
ConvertWidth ")", ")"
acow
}k@SmO8
End If 4
udW6U
$OaxetPH
With ActiveDocument OyIIJ!(
Dim tbl As Table $A
dBX}{
For Each tbl In .Tables p<\7" SB=
tbl.Rows.Alignment = wdAlignRowCenter H
;)B5C
tbl.Range.Font.NameFarEast = "楷体" +EH"A
tbl.Range.Font.NameAscii = "Times New Roman" rs0Wy
tbl.Range.Font.Size = 10.5 ZtX
CPA!
Next OgCz[QXr_
Set tbl = Nothing HDj260a
End With ^(Wu$\SA
/PE L[Os
V=H :`n3k
With ActiveDocument CTQJ=R"
U<6+2y P
For i = 1 To .TablesOfContents.Count B|r'
.TablesOfContents(i).Delete !WTL:dk
Next )<
p
~
^]?juL
R|]n;*y
z6 .^a-sU5
paraTotal = .Paragraphs.Count D/Py?<n-B
paraCounter = 1 #l!nBY ~
5Rae?*XH
LastTitle0No = 0 kTm}VTr
1
LastTitle1No = 0 !9_'_8
LastTitle2No = 0 a" L9jrVrw
LastTitle3No = 0 yKC1h`2
LastTitle4No = 0 uP^u:'VjbH
LastTableNo = 0 9`7>"[=P
LastFigureNo = 0 9<5S!?JL
pL2{zW`FDh
Dim Sec As Long nPUD6<bF
_>4)q=
Sec = InputBox("正文从第一节开始?", "节设置", 6) I
MG^L
If Sec = 0 Then
^
`bMF
sP
Exit Sub c6VyF=2q
End If <sls1,
D"&Sd@a{
k = 0 ">vi=Tr
Do While (paraCounter < paraTotal) And bContinue k\-h-0[|
k = k + 1 A5Lzd
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then OU<v9`<
Exit Do YRU95K[
End If L.: 8qY
paraCounter = paraCounter + 1 ipS:)4QFxJ
If k Mod 20 = 0 Then -[[(Zx
Me.lbCounter.Caption = paraCounter ?$VkMu$2k
DoEvents `pqTiV
End If m"wP]OQH*+
Loop #g<6ISuf
r'MA$PiS'
&"^U=f@v
Do While (paraCounter < paraTotal) And bContinue P[tYu:
_IWLC{%V
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) b8glZb*$
ShapeHeight = 0 ^95njE`>t`
ShapeWidth = 0 #tA/)Jvi
eU8p;ajW!L
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth l_Zx'm
P+DIo7VTX
Select Case ParaType #Sg"/Cc
Case "【】表格内容" XJ7pX1nf
.Paragraphs(paraCounter).Style = "QLNU表格内容" ;*WG9Y(W
Case "章" (QQkXlJ
LastTitle0No = LastTitle0No + 1 I8uFMP
'新一章开始,复位其下属标题编号 rl]K:8*
LastTitle1No = 0 wYQEm
LastTitle2No = 0 M[(pLYq:
LastTitle3No = 0 od^ylg>K
LastTitle4No = 0 <T]ey
#@F.wV0
k = Val(ttNo) zpZfsn!
If k = 0 Then '非数字编号章节 0B:
v0R
If ttNo <> NoSeries1(LastTitle0No) Then 0e1-ZP CDj
rText = "第" & NoSeries1(LastTitle0No) & ttString eg24.W9c
Me.ErrMsg.AddItem "章节编号错误:" & ParaText IRTD(7"oyp
End If e9>~mtx
Else MfO:BX@$
If Val(ttNo) <> LastTitle0No Then IL`=r6\
rText = "第" & LastTitle0No & ttString
gj
I>tz}
Me.ErrMsg.AddItem "章节编号错误:" & ParaText /O~Np|~v
End If *q+X?3
W:K '2j
End If me-
uPm
X!m
lC51
'章段落设置 lX"6m}~D
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 *D.Ajd.G
.Paragraphs(paraCounter).Style = "QLNU章节" JX{_,2*$
.Paragraphs(paraCounter).Range.Select a4pe wg'
Selection.EndKey unit:=wdLine 9dWz3b1[
]
tc = Replace(rText, vbCr, "") YLuf2ja}X
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False
UqNUX?(
Case "一级标题" 'c# }^@G
LastTitle1No = LastTitle1No + 1 }b/P\1#z
'新一级标题开始,复位其下属标题编号 M{4XNE]m
LastTitle2No = 0 :aH5=@[!y
LastTitle3No = 0 mv^X{T
LastTitle4No = 0 }Eh &'
tHK>w%|\R
If ttNo <> NoSeries1(LastTitle1No) Then l2I%$|)d
rText = NoSeries1(LastTitle1No) & "、" & ttString ]J@-,FFC
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText hw(\3h()
End If '.&Y)A6!
K~B
x,
ZF+vE
'一级标题段落设置 格式:一、标题内容 Fu5c_"!
.Paragraphs(paraCounter).Range.Text = rText P>(FCX
.Paragraphs(paraCounter).Style = "QLNU一级标题" m"QDc[^Ge
.Paragraphs(paraCounter).Range.Select %Aqf=R_^
Selection.EndKey unit:=wdLine $lq.*UQ;0
tc = Replace(rText, vbCr, "") (>NZYPw^3
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False RGrQ>'RL
Case "二级标题" g/VV2^,
LastTitle2No = LastTitle2No + 1 ck\W'Y*Q7
'新二级标题开始,复位其下属标题编号 /aIGq/;Y+a
LastTitle3No = 0 m.<u!MI
LastTitle4No = 0 [bRE=Zr$Ry
Sa
kew
If ttNo <> NoSeries1(LastTitle2No) Then 4u+0 )<
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString ~H1<