Dim bContinue As Boolean 09u@-
p8MPn>h<
Dim regEX As New RegExp Vnq&lz%QqC
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 :s OsG&y
|
\~!oN
Dim LastTitle0String As String, LastTitle0No As Long Vpkk
iN
Dim LastTitle1String As String, LastTitle1No As Long [P23.`G~J
Dim LastTitle2String As String, LastTitle2No As Long 9AdA|/WV
Dim LastTitle3String As String, LastTitle3No As Long ({AqL#x`u
Dim LastTitle4String As String, LastTitle4No As Long C_DXg-a2lu
Dim LastTitle5String As String, LastTitle5No As Long P
G/xX
H
Dim LastTabelString As String, LastTableNo As Long =XT}&D6
Dim LastFigureString As String, LastFigureNo As Long [6Gb@jG
ueazAsk3g
Dim strSeperator As String U#!f^@&AB
eE-
@dU?
Sub ConvertWidth(fTEXT As String, rText As String) ,] ,dOIOwn
Selection.Find.ClearFormatting A5> ,e|
Selection.Find.Replacement.ClearFormatting ENi@R\
p
Selection.Find.Wrap = wdFindContinue <U()
*0
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText -F| C6m!
DoEvents ^h@1t FF
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True ^.@BD4/RPt
End Sub ;4 ON
WwM/M!98J
Sub ClearDomain() 2aUy1*aM
With Selection.Find IvyBK]{|
.ClearFormatting KoNJ;YiKtN
.Replacement.ClearFormatting !
uyC$8V*l
.Wrap = wdFindContinue Pb^Mc <j
Me.txtStatus.Text = "清除所有域代码" *^&2L,w
DoEvents ,s,VOyr @F
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False &qP&=( $
End With 6-<>P E2
End Sub
KDX34Fr1
^/kn#1H
7&
Private Sub cmdCheck_Click() ?R}a,k
bContinue = True )tyhf(p6
Dim NoSeries1(1 To 16) As String jQ s"8[=s
Dim NoSeries2(1 To 16) As String ESl</"<J
Dim NoSeries5(1 To 16) As String #A2)]XvY
Dim NoSeriesRM(1 To 16) As String )!&7X L[
Dim paraTotal As Long, ParaText As String %kJ_o*"
Dim ttString As String, ttNo As String tb-:9*2j-
g"iLhm`L
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long Yw\PmRL"p
A<VNttgG
Me.txtStatus.Visible = True }vbs6u
Me.lbParaType.Visible = True ,1+)qv#|i
Me.cmdCheck.Enabled = False _# /zH~V%
o4"7i 9+g
@dzO{)
>f$
>Odqe
ZsP
T!l,
Dim ParaType As String, rText As String ED={OZD8
4j'cXxo
Selection.WholeStory uxd5 XS
Selection.NoProofing = True MZX-<p+
75LIQ!G|=
tm1 = Now Z'vGX,:
VSlIeZ
ActiveWindow.View.Type = wdNormalView _8CE|<Cn
_cY!\'
NoSeries1(1) = "一" 26,!HmtC
NoSeries1(2) = "二" / b_C9'S
NoSeries1(3) = "三" TYQ7jt0=.-
NoSeries1(4) = "四" @sAT#[j
NoSeries1(5) = "五" IE-c^'W=}m
NoSeries1(6) = "六" D^knN-nZ*
NoSeries1(7) = "七" Sb&[V>!2^
NoSeries1(8) = "八" AVys`{*c
NoSeries1(9) = "九" ?m?DAd~ZY
NoSeries1(10) = "十" ']hB_4v
NoSeries1(11) = "十一" Uva
b*9vX
NoSeries1(12) = "十二" DhwFD8tT
NoSeries1(13) = "十三" HNRZ59Yyq
NoSeries1(14) = "十四" B9RB/
vHH
NoSeries1(15) = "十五"
RTW4r9~'
NoSeries1(16) = "十六" *c+Kqz-
.'y]Ea
NoSeries2(1) = "㈠" yqm^4)Dp
NoSeries2(2) = "㈡" $=iV
)-
NoSeries2(3) = "㈢" Tc DkKa
NoSeries2(4) = "㈣" aD1G\*AFJ
NoSeries2(5) = "㈤" ;oQ*gd
NoSeries2(6) = "㈥" L/,W
NoSeries2(7) = "㈦" E K)7g~
NoSeries2(8) = "㈧" XJ|CC.]1u
NoSeries2(9) = "㈨" I'h6!N"
NoSeries2(10) = "㈩" q.l"Y#d
2?9SM@nAY
NoSeries5(1) = "①" jcWv&u|
NoSeries5(1) = "②" z;_fO>u:
NoSeries5(3) = "③" JEK6Ms;)A
NoSeries5(4) = "④" _BV'J92.
NoSeries5(5) = "⑤"
w34&
m
NoSeries5(6) = "⑥" B%c):`w8]
NoSeries5(7) = "⑦" %C!u/:.Kv
NoSeries5(8) = "⑧" ",c(cYVW
NoSeries5(9) = "⑨" n'yC- ;
NoSeries5(10) = "⑩" h$Z_r($b
w
>:~Ev]
s^]F4'
NoSeriesRM(1) = "I" k#I4^
NoSeriesRM(2) = "II" MHv2r
NoSeriesRM(3) = "III" e[HP]$\
NoSeriesRM(4) = "IV" JwNG`MGc
NoSeriesRM(5) = "V" \)=X=yn2
NoSeriesRM(6) = "VI" ?]'Rz\70
NoSeriesRM(7) = "VII" yE(> R(^
NoSeriesRM(8) = "VIII" 5{Xld,zw
NoSeriesRM(9) = "IX" F8J;L](Dq
NoSeriesRM(10) = "X" q89#Ftkt
NoSeriesRM(11) = "XI" DL5`A?/
NoSeriesRM(12) = "XII" "-'w,g
NoSeriesRM(13) = "XIII" DA_[pR
NoSeriesRM(14) = "XIV" 4|Dxyb>pS
NoSeriesRM(15) = "XV" Q3M;'m
NoSeriesRM(16) = "XVI" tTT./-*0
^gwVh~j
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) MjAF&bD^
)2|'`
If i = vbNo Then {jX
h/`
Exit Sub `[<j5(T
End If cvR|qHNX
5h9`lS2
If Me.chkSuper.Value Then .`OyC'
Me.txtStatus.Text = "检查修改所有的上标格式" GB1[`U%
<m"yPi3TY
CheckSuperScript S(^*DV
q^
{Xn-G
End If !4 4 )=xW
dsKEWZ
=
If Me.chkStyle.Value Then aN7VGc
Me.txtStatus.Text = "设置样式,请稍候...." #HD$=ECcw
DoEvents ZqHh$QBD
9
CeateOrModifyStyle V=pg9KR!T
End If 0Dj<-n{9
jJc?/1 jv
W2VH? -Gw
,!BiB*
ClearDomain *<yKT$(+_
(%huWW
j
T [
`t?,
ef\Pu\'U
If Me.chkLIST.Value Then 5G@z l
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" &wbe^Wp
]>NP?S
)R
ConvertListToOrdinary ;&Q8xC2
End If fA!uSqR$V
2,c{Z$\kn
IS`1}i$1%
Dim pType As String, trimpTEXT As String wz-9+VN6
If Me.chkNum.Value = True Then !\
Y85o>JU
Me.txtStatus.Text = "转换全角数字形式为半角" NrE&w H:
ConvertWidth "1", "1" OXy>Tlv
DoEvents rzH*| B0g
ConvertWidth "2", "2" Y|t] bb
DoEvents }+KSZ,
ConvertWidth "3", "3"
qm-G=EX
DoEvents E?o1&(2p
ConvertWidth "4", "4" _7(>0GY
DoEvents #2thg{5
ConvertWidth "5", "5" N4$!V}pp
DoEvents f?wn;;z`
ConvertWidth "6", "6" G 2]/g
DoEvents 2f8fA'|O
ConvertWidth "7", "7" / c1=`OJ
DoEvents }yup`R
ConvertWidth "8", "8" w
f!?'*
DoEvents zPp?D_t
ConvertWidth "9", "9" PiMW29B^
DoEvents ?lJm}0>
ConvertWidth "0", "0" +'9l 2DI;
DoEvents #/NZ0IbHk
ConvertWidth "a", "a" 7q>WO
DoEvents lE~5 b
ConvertWidth "b", "b" nYJ)M
AG@
DoEvents w /$4
Rv+S
ConvertWidth "c", "c" qEC-'sl<
DoEvents {{c/:FTEU
ConvertWidth "d", "d" ozZW7dveU
DoEvents cD&53FPXC
ConvertWidth "e", "e" !Pf_
he
DoEvents 'u }|~u?m
ConvertWidth "f", "f" TFbMrIF
DoEvents >=|Dir
ConvertWidth "g", "g" F V8K_xj
DoEvents G992{B
ConvertWidth "h", "h" A"t~
)
DoEvents \IL/?J
5d
ConvertWidth "i", "i" *ip2|2G$
DoEvents hr&&"d {s
ConvertWidth "j", "j" */iD68r|-
DoEvents 5Z]zul@+*
ConvertWidth "k", "k" ;/$=!9^sZ
DoEvents P9~7GFas|
ConvertWidth "l", "l" zY\pZG
DoEvents q-%;~LF
ConvertWidth "m", "m" bce>DLF
DoEvents /3F4t
V
ConvertWidth "n", "n" fD3}s#M*G
ConvertWidth "o", "o" %./vh=5)
ConvertWidth "p", "p" 5?+ECxPt
ConvertWidth "q", "q" gTE/g'3
ConvertWidth "r", "r" UPs*{m
ConvertWidth "s", "s" xS%Z
ConvertWidth "t", "t" z; 6Tp
ConvertWidth "u", "u" H#IJ&w|
ConvertWidth "v", "v" jM8e2z3
ConvertWidth "w", "w" \|\D
c0p}
ConvertWidth "x", "x" -lr)z=
})
ConvertWidth "y", "y" $Q,Fr;
B
ConvertWidth "z", "z" hqW4.|&\c
ConvertWidth "A", "A" D9
~jMcX
ConvertWidth "B", "B" nUi
4!|r
ConvertWidth "C", "C" L~_3BX
ConvertWidth "D", "D" 8X":,s!
ConvertWidth "E", "E" h}&WBN
ConvertWidth "F", "F" %xtTh]s
ConvertWidth "G", "G" xSFY8
ConvertWidth "H", "H" $Hcp.J[O
ConvertWidth "I", "I" }W{rDc kv
ConvertWidth "J", "J" C~PrIM?
ConvertWidth "K", "K" ezRhSN?
ConvertWidth "L", "L" ^z#'o
ConvertWidth "M", "M" ~|e?@3_G
ConvertWidth "N", "N" pi)7R:i
ConvertWidth "O", "O" V!#+Ti/w4
ConvertWidth "P", "P" \ct) /
ConvertWidth "Q", "Q" .i[rd4MCK
ConvertWidth "R", "R" 1|)l6#hOL
ConvertWidth "S", "S" i3~"qbU%z[
ConvertWidth "T", "T" Y4cIYUSc
ConvertWidth "U", "U" B#RwW,
ConvertWidth "V", "V" hu (h'
ConvertWidth "W", "W" okfGd=
&
ConvertWidth "X", "X" <aJdm!6
ConvertWidth "Y", "Y" x8i;uH\8
ConvertWidth "Z", "Z" >U\,(VB
ConvertWidth "^l", "^p" n?vw|'(}
ConvertWidth "(", "(" gUf-1#g4\`
ConvertWidth ")", ")" +cQGX5 K
\}SA{)
End If }gQ FWT
hsIC5@s3
With ActiveDocument )N`a4p
Dim tbl As Table \.+.VK
For Each tbl In .Tables C8qA+dri
tbl.Rows.Alignment = wdAlignRowCenter +}H2|vP
tbl.Range.Font.NameFarEast = "楷体" Kh<xQ:eMy
tbl.Range.Font.NameAscii = "Times New Roman" <[O8{9j
tbl.Range.Font.Size = 10.5 _5'OQ'P2
Next ZS0=xS5q)
Set tbl = Nothing J;|r00M
End With OfC0
lb:c
ydo"H9NOS
hGmJG,H
With ActiveDocument Jh2eo+/%
R)% Jr.U
For i = 1 To .TablesOfContents.Count KE3/s
w0
.TablesOfContents(i).Delete EoM}Co
Next 5$o]D
yyke"D
}oHA@o5
H)&6I33`
paraTotal = .Paragraphs.Count {3@lvoDT
paraCounter = 1 <11
pk
'\qd{mM\r
LastTitle0No = 0 w
'?xewx
LastTitle1No = 0 M>hHTa?W
LastTitle2No = 0 dI'cZt~n
LastTitle3No = 0 NF`WA-W8@
LastTitle4No = 0 =Nn&$h l
LastTableNo = 0 %N 8/g]`7
LastFigureNo = 0 Ox ;q +5
Fm(~Vt;%u
Dim Sec As Long o<
@b]ukl&
f\O)+Vc
Sec = InputBox("正文从第一节开始?", "节设置", 6)
PZZTRgVc
If Sec = 0 Then 0PIiG-o9
Exit Sub o@TxDG
End If /fCj;8T3o
EgO=7?(pW
k = 0 &{${ Fq
Do While (paraCounter < paraTotal) And bContinue 5y07@x
k = k + 1 b0
))->&2
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then MW|Qop[
Exit Do @+LkGrDP
End If p!^.;c
paraCounter = paraCounter + 1 xQV5-VoFC
If k Mod 20 = 0 Then ("(:wYR%
Me.lbCounter.Caption = paraCounter DJ?kQ
DoEvents Ei!5Q
ya>
End If ~ B0L7}d
Loop r8\"'4B1
j0b?dKd
a nK7j2
Do While (paraCounter < paraTotal) And bContinue P$z8TDCH
}HB)%C50.
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) 8x$BbK
ShapeHeight = 0 smEKQHB
ShapeWidth = 0 U 2k^X=yl
^E
_`M:~
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth CAg\-*P|
b|F_]i T
Select Case ParaType
=ML6"jr
Case "【】表格内容" 6x%uWZa'
.Paragraphs(paraCounter).Style = "QLNU表格内容" sM)qzO2wh
Case "章" K)5'Jp@
LastTitle0No = LastTitle0No + 1 0Lcd@3XL
'新一章开始,复位其下属标题编号 ~~eR,HYk
LastTitle1No = 0 ({=:
N
LastTitle2No = 0 ~IvAnwQ'
LastTitle3No = 0 T_ifDQX;
LastTitle4No = 0 z(]14250
kfaRN^
k = Val(ttNo) kfER
If k = 0 Then '非数字编号章节 A<ca9g3
If ttNo <> NoSeries1(LastTitle0No) Then =fmM=@!$<
rText = "第" & NoSeries1(LastTitle0No) & ttString ]O
Nf;RH
Me.ErrMsg.AddItem "章节编号错误:" & ParaText dKyJ.p
End If _^cDB1I?
Else t}LV[bj1u
If Val(ttNo) <> LastTitle0No Then 8z&7wO
rText = "第" & LastTitle0No & ttString &|( 'z\k
Me.ErrMsg.AddItem "章节编号错误:" & ParaText ~nk{\ rWO
End If ~ _C[~-
bQG2tDvu[
End If )-$Od2u2c
t,#9i#q#
'章段落设置 .{+<o
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 ]k~k6#),;
.Paragraphs(paraCounter).Style = "QLNU章节" p%) 1(R8qM
.Paragraphs(paraCounter).Range.Select KKm&~^c
Selection.EndKey unit:=wdLine VfAC&3%M
tc = Replace(rText, vbCr, "") \Z0-o&;w
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False J@RhbsZn
Case "一级标题" tRU+6D
<w
LastTitle1No = LastTitle1No + 1 Mx<V;GPm
'新一级标题开始,复位其下属标题编号 P_11N9C
LastTitle2No = 0 -V@vY42
LastTitle3No = 0 7FL!([S5i
LastTitle4No = 0 zbsdK
'PW~4f/m
If ttNo <> NoSeries1(LastTitle1No) Then J6Uo+0S
rText = NoSeries1(LastTitle1No) & "、" & ttString PLDg'4DMg
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText h$[}lZDg
End If j:'sbU
FoY_5/
SP][xdN7
'一级标题段落设置 格式:一、标题内容 QixEMX4<
.Paragraphs(paraCounter).Range.Text = rText f\CJ |tKX
.Paragraphs(paraCounter).Style = "QLNU一级标题" ] h3~>8<
.Paragraphs(paraCounter).Range.Select F9rxm
Selection.EndKey unit:=wdLine S]3K5Z|
tc = Replace(rText, vbCr, "") rlSar$
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False v%O KOrJ
Case "二级标题" ^Glmg}>q
LastTitle2No = LastTitle2No + 1 Zt:.+.dV
'新二级标题开始,复位其下属标题编号 sE87}Lz
LastTitle3No = 0 4B>N[#-0=
LastTitle4No = 0 le%&r