Dim bContinue As Boolean i%!<9D~n
E!ZLVR.K
Dim regEX As New RegExp TfJ*G6\7e#
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 <#8}![3Q
oAifM1*0
Dim LastTitle0String As String, LastTitle0No As Long rI\5djiYJ
Dim LastTitle1String As String, LastTitle1No As Long 'C}
ku>B_r
Dim LastTitle2String As String, LastTitle2No As Long =?W7OV^BE
Dim LastTitle3String As String, LastTitle3No As Long |(l]X
r&O
Dim LastTitle4String As String, LastTitle4No As Long \A^8KVE!
Dim LastTitle5String As String, LastTitle5No As Long HPu+ 4xQV
Dim LastTabelString As String, LastTableNo As Long 4RctYMz
Dim LastFigureString As String, LastFigureNo As Long $S' TW3
db_Qt' >
Dim strSeperator As String '+Jy//5?
&3IkC(yD
Sub ConvertWidth(fTEXT As String, rText As String) :YRHO|
Selection.Find.ClearFormatting 0Sk~m4fj(
Selection.Find.Replacement.ClearFormatting ;1yF[<a
Selection.Find.Wrap = wdFindContinue iOfO+3'Z_U
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText %AJ9fs4/
DoEvents !\|
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True ` Ft-1eE
End Sub Xl1% c7r.1
WI&A+1CK-5
Sub ClearDomain() `oe=K{aX
With Selection.Find 9:g A0Z
.ClearFormatting PZru:.Mh
.Replacement.ClearFormatting YFu>`w^Y
.Wrap = wdFindContinue J;<dO7 j5
Me.txtStatus.Text = "清除所有域代码" ]["%e9#aX
DoEvents 3~R,)fO;
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False s#<fj#S
End With KC&XOI %
End Sub @H$8;CRM
dSKvs"
Private Sub cmdCheck_Click() 4r83;3WXs
bContinue = True P(yLRc
Dim NoSeries1(1 To 16) As String u[KxI9Q
Dim NoSeries2(1 To 16) As String _'mC*7+
Dim NoSeries5(1 To 16) As String :LB*l5\
Dim NoSeriesRM(1 To 16) As String G0m$bi=z
Dim paraTotal As Long, ParaText As String EZ>(}
Dim ttString As String, ttNo As String &0f/
F:M
<B
T18u\
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long N"<.v6Z
x~uDCbL
Me.txtStatus.Visible = True qi/k`T
Me.lbParaType.Visible = True O*/%zr
Me.cmdCheck.Enabled = False OmkJP
S@!_{da
IAzFwlO9
> dVhIbG
}fk3a9j9u
Dim ParaType As String, rText As String fJ\?+,
yp4[EqME
Selection.WholeStory QxPPgn7'
Selection.NoProofing = True q_^yma
L8n?F#q
tm1 = Now Qu Mv1)n
66-\}8f8a
ActiveWindow.View.Type = wdNormalView Y,L[0%
#-Mr3
NoSeries1(1) = "一" ]#DCO8Vk
NoSeries1(2) = "二" dh%O {t
NoSeries1(3) = "三" vN
v'%;L
NoSeries1(4) = "四" 3]'ab-,Vp
NoSeries1(5) = "五" 1`|Z8Jpocj
NoSeries1(6) = "六" EdqB4-#7
NoSeries1(7) = "七" L<oQKe7Q:
NoSeries1(8) = "八" %CYo,
e
NoSeries1(9) = "九" g$2#TW
W5
NoSeries1(10) = "十" !"<rlB,J
NoSeries1(11) = "十一" 2%fzRXhu%
NoSeries1(12) = "十二" b 1.S21
NoSeries1(13) = "十三" D^>d<LX
NoSeries1(14) = "十四" QKEtV
NoSeries1(15) = "十五" } D!tB
NoSeries1(16) = "十六" FZ%h7Oe
UrciCOQf
NoSeries2(1) = "㈠" \15'~]d
NoSeries2(2) = "㈡" oCE'@}s.i
NoSeries2(3) = "㈢" %m/lPL
NoSeries2(4) = "㈣" 4".I*ij
NoSeries2(5) = "㈤" W$wX[
NoSeries2(6) = "㈥" \:s%;s51
NoSeries2(7) = "㈦" UAz^P6iQ`~
NoSeries2(8) = "㈧" i,"Xw[H*s
NoSeries2(9) = "㈨" d 4tL
NoSeries2(10) = "㈩" |AE{rvP{@
?7)v:$(G}
NoSeries5(1) = "①" 2gklGDJD
NoSeries5(1) = "②" ~9APc{"A
NoSeries5(3) = "③" sZ&6g<8#y
NoSeries5(4) = "④" I74Rw*fB
NoSeries5(5) = "⑤" AH/^v;-
NoSeries5(6) = "⑥" 4Dn&+=fq
NoSeries5(7) = "⑦" 'Q=)-
NoSeries5(8) = "⑧" 4 a&8G
NoSeries5(9) = "⑨" #%ld~dgz-
NoSeries5(10) = "⑩" _#v"sGmN
l d#x'/
K"t?
NoSeriesRM(1) = "I" 'bLP#TAzf
NoSeriesRM(2) = "II" raOuD3
NoSeriesRM(3) = "III"
ID`C
NoSeriesRM(4) = "IV" {hOS0).(w7
NoSeriesRM(5) = "V" |*w)]2Bl
NoSeriesRM(6) = "VI" )N~ p4kp
NoSeriesRM(7) = "VII" >&e=0@?+G
NoSeriesRM(8) = "VIII" 1yz%ud-l
NoSeriesRM(9) = "IX" \z2y?"\?
NoSeriesRM(10) = "X" [*It' J^
NoSeriesRM(11) = "XI" .czUJyFms}
NoSeriesRM(12) = "XII" NwOV2E6@OW
NoSeriesRM(13) = "XIII" *-fd$l.
NoSeriesRM(14) = "XIV" y@$E5sz
NoSeriesRM(15) = "XV" 3rFku"zT$
NoSeriesRM(16) = "XVI" 0+1!-Wo
dHiir&Rd9`
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) `peR ,E
VI9rezZ*
If i = vbNo Then GPGPteC
Exit Sub xv2c8g~vD
End If G"m0[|XH
T<>B5G~%
If Me.chkSuper.Value Then cy(w
*5Upu
Me.txtStatus.Text = "检查修改所有的上标格式" UkD\ma
p),*4@2<
CheckSuperScript KyT=:f
V
T=~d.&J
End If A
0@,^|]
P-[})Z=
If Me.chkStyle.Value Then li?@BHEf
Me.txtStatus.Text = "设置样式,请稍候...." 8<0P Ssx
DoEvents oL R/\Y(
CeateOrModifyStyle g i/k#3_m
End If OESKLjFt
lr;ubBbT
/kyO,g$9
h#}w18l
ClearDomain h*y+qk-!\g
Jb$G
stfniV
{*n<A{$[
m
If Me.chkLIST.Value Then z]hRc8g}d
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" @8`I!fZ
X%<qHbKB,
ConvertListToOrdinary #r"|%nOfY
End If o~y{9Q
_3%:m||,XP
2DsP "q79k
Dim pType As String, trimpTEXT As String XNx$^I=
If Me.chkNum.Value = True Then ?kZ-,@h:
Me.txtStatus.Text = "转换全角数字形式为半角" gQSVPbzK
ConvertWidth "1", "1" Q\IViM
DoEvents k ?6d\Q
ConvertWidth "2", "2" uUx7>algF
DoEvents Hc<@T_h+2
ConvertWidth "3", "3" (O(TFE5^
DoEvents IQC[ewk
ConvertWidth "4", "4" y2?9pVLa\y
DoEvents ^{IZpT3
ConvertWidth "5", "5" hR0a5
DoEvents 'l!\2Wv2
ConvertWidth "6", "6" GTfM *b
DoEvents \WnTpl>B
ConvertWidth "7", "7" Wk3-J&QbS
DoEvents S]%,g%6i
ConvertWidth "8", "8" @
$5~`?
DoEvents SX'NFd
Y
ConvertWidth "9", "9" @}Ry7H0O
DoEvents R#ZJLT
ConvertWidth "0", "0" Go:
(R {P
DoEvents rxMo7px@}I
ConvertWidth "a", "a" bWb/>hI8
Q
DoEvents A)!W VT&2A
ConvertWidth "b", "b" aynaV
DoEvents w+j\Py_G"
ConvertWidth "c", "c" RuVk>(?WK%
DoEvents 05HCr"k
ConvertWidth "d", "d" A9SL|9Q
DoEvents t 3N}):
ConvertWidth "e", "e" S}h
d, "I
DoEvents YWd2
bRb
ConvertWidth "f", "f" s}Go")p<:
DoEvents g8'8"9:xC
ConvertWidth "g", "g" t>%b[
(a
DoEvents ";&PtL
e
ConvertWidth "h", "h" v,
Z]Vqk
DoEvents ns5Dydo{T
ConvertWidth "i", "i" !D{z. KO
DoEvents `EMGrw_
ConvertWidth "j", "j" Z-ci[Zv
DoEvents Jia@HrLR
ConvertWidth "k", "k" =,ax"C?pR
DoEvents )S4ga
ConvertWidth "l", "l" `Nvhp]E
DoEvents a""9%./B
ConvertWidth "m", "m" k0\a7$}F
DoEvents GwDOxH'
ConvertWidth "n", "n" e~)4v
ConvertWidth "o", "o" 0
&|M/
ConvertWidth "p", "p" 5QXU"kWH
ConvertWidth "q", "q" WdS1v%
ConvertWidth "r", "r" QaEiP n~
ConvertWidth "s", "s" iNi1+sm
ConvertWidth "t", "t" jCtk3No
ConvertWidth "u", "u" W[`ybGR<
ConvertWidth "v", "v" ]Z\ W%'q+
ConvertWidth "w", "w" BB3a8
ConvertWidth "x", "x" ZBY}Mz$
ConvertWidth "y", "y" ,MJddbcg
ConvertWidth "z", "z" UJp'v_hN
ConvertWidth "A", "A" C^'r>0
ConvertWidth "B", "B" 9'~qA(=.?
ConvertWidth "C", "C" c8
ConvertWidth "D", "D" la)+"uW
ConvertWidth "E", "E" Z>3~n
ConvertWidth "F", "F" paN=I=:*M
ConvertWidth "G", "G" 0Qeda@J
ConvertWidth "H", "H" Hr}"g@ <
ConvertWidth "I", "I" euT=]j
ConvertWidth "J", "J" h7K,q S
ConvertWidth "K", "K" p(I^Y{sGI
ConvertWidth "L", "L" 7z, $
ConvertWidth "M", "M" yyu -y0_
ConvertWidth "N", "N" tFn[U#'
ConvertWidth "O", "O" S
=V
ConvertWidth "P", "P" Kc^ctAk7;
ConvertWidth "Q", "Q" "8z
Me L
ConvertWidth "R", "R" @,Dnl v|?
ConvertWidth "S", "S" kzUj)
ConvertWidth "T", "T" ljrJC
ConvertWidth "U", "U" *wmkcifF;
ConvertWidth "V", "V" -*w2<DCn
ConvertWidth "W", "W" rmvrv.$3
ConvertWidth "X", "X" k:~UBs\)(
ConvertWidth "Y", "Y" yr>J^Et%_
ConvertWidth "Z", "Z" +ru `Zw5,
ConvertWidth "^l", "^p"
E>*b,^J7g
ConvertWidth "(", "(" O\;Lb[`lb
ConvertWidth ")", ")" `g(#~0R
[X@{xF^vBQ
End If <bCB-lG*Kb
k
75 p
With ActiveDocument CiHx.5TiC
Dim tbl As Table 6?US<<MQ
For Each tbl In .Tables =&"pG`x
tbl.Rows.Alignment = wdAlignRowCenter -b+)Dp~$p
tbl.Range.Font.NameFarEast = "楷体" xA:;wV
tbl.Range.Font.NameAscii = "Times New Roman" ?
uTuO
tbl.Range.Font.Size = 10.5 @|ZUyat
Next rttKj{7E
Set tbl = Nothing !E00I0W
-h
End With bL0]Yuh
,*lns.|n
|8k^jq
With ActiveDocument /#:*hn
5Y`4%*$
For i = 1 To .TablesOfContents.Count B3[X{n$px
.TablesOfContents(i).Delete
}lPWA/
Next W2$rC5|
zSsBb
u:
*1b0IQ$g
RB""(<
paraTotal = .Paragraphs.Count ?
B|i
paraCounter = 1 B$JPE7h@[P
<)O#Y76s
LastTitle0No = 0 9%ct
LastTitle1No = 0 XZ$g~r
LastTitle2No = 0 n@bkZ/G
LastTitle3No = 0 q2*)e/}H
LastTitle4No = 0 sP@XV/`3L6
LastTableNo = 0 SV ~QH&0'
LastFigureNo = 0 Qz{Vl>"
Bw`? zd\*
Dim Sec As Long {*CG&-k2D
a8[%-eW,
Sec = InputBox("正文从第一节开始?", "节设置", 6) &"tQpw5
If Sec = 0 Then "tk1W>liIN
Exit Sub (kK8
Ox fF
End If }*-fh$QJ
;{iTSsb
k = 0 f]Aa$\@b
Do While (paraCounter < paraTotal) And bContinue Mx93D
k = k + 1 IhSXU<]
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then oliVaavj
Exit Do 5B8/"G
End If :Zq?V`+M
paraCounter = paraCounter + 1 ;2fzA<RkK
If k Mod 20 = 0 Then }/NjZ*u
Me.lbCounter.Caption = paraCounter L!/{
Z
DoEvents u\xrC\Ka
End If ^HP$r*
Loop 0VR,I{<.{
"k [$euV
-Tuk.>i)
Do While (paraCounter < paraTotal) And bContinue ;VCFDE{K=
Fgwe`[
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) IWN18aaL?
ShapeHeight = 0 3~WI3ZIR
ShapeWidth = 0 =r`E%P:
L=!h`k
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth A9D
FZZ0
%(?;`
Select Case ParaType si]MQ\i+
Case "【】表格内容" C$at9=(E6
.Paragraphs(paraCounter).Style = "QLNU表格内容" &];W#9"Z
Case "章" Y@ ;/Sf$Q
LastTitle0No = LastTitle0No + 1 T72Z<h|<
'新一章开始,复位其下属标题编号 HH(2
LastTitle1No = 0 |4aU&OX
LastTitle2No = 0 zKYN5|17
LastTitle3No = 0 -2U|G
LastTitle4No = 0 ,T 3M
F)'_,.?0
k = Val(ttNo) ~k
6V?z}
If k = 0 Then '非数字编号章节
6,~
%
If ttNo <> NoSeries1(LastTitle0No) Then }L{GwiDMDl
rText = "第" & NoSeries1(LastTitle0No) & ttString id`9,I
Jx
Me.ErrMsg.AddItem "章节编号错误:" & ParaText @wAYhnxq
End If srImk6YD
Else n~w[ajC/
If Val(ttNo) <> LastTitle0No Then cqZlpm$c
rText = "第" & LastTitle0No & ttString bccf4EyQ
Y
Me.ErrMsg.AddItem "章节编号错误:" & ParaText 9ucoQ@
End If <Z]j89wzDZ
8r,0Qic2K
End If `N}'5{I
jgpF+V-n$
'章段落设置 ^eRbp?H*T
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 j9Z1=z
.Paragraphs(paraCounter).Style = "QLNU章节" z'>b)wY](
.Paragraphs(paraCounter).Range.Select ] 4*E:
Selection.EndKey unit:=wdLine XNvlx4
tc = Replace(rText, vbCr, "") @1pfH\m
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False \Z~@/OVc
Case "一级标题" 0H}O6kU
LastTitle1No = LastTitle1No + 1 #f=41d%
'新一级标题开始,复位其下属标题编号 5?j#
LastTitle2No = 0 MM@&Q