Dim bContinue As Boolean ~zcHpxO^W
{cYS0%Go
Dim regEX As New RegExp =/|2f; Q
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 ?xb4y=P7
nO{m2&r+
Dim LastTitle0String As String, LastTitle0No As Long \?|FB~.Ry
Dim LastTitle1String As String, LastTitle1No As Long !^,<nP
Dim LastTitle2String As String, LastTitle2No As Long Kc%GxD`
Dim LastTitle3String As String, LastTitle3No As Long 1&wI*4
Dim LastTitle4String As String, LastTitle4No As Long t3w:!'Ato
Dim LastTitle5String As String, LastTitle5No As Long sK&[sN33
Dim LastTabelString As String, LastTableNo As Long oaK&!$S]
Dim LastFigureString As String, LastFigureNo As Long l1EI4Y9KG
]W7e2:Hra
Dim strSeperator As String 5 wT
e?
I'qIc?
Sub ConvertWidth(fTEXT As String, rText As String) `u *:wJsv
Selection.Find.ClearFormatting qZcRK9l]F1
Selection.Find.Replacement.ClearFormatting &* Aems{-
Selection.Find.Wrap = wdFindContinue +TWk}#G
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText DO^K8~]
DoEvents g aq"+@fH
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True +i
m>|
End Sub E &wz0d;gf
?FRuuAS
Sub ClearDomain() zS6oz=
With Selection.Find {cW%i:
.ClearFormatting t&
*K
.Replacement.ClearFormatting -/7[\S
.Wrap = wdFindContinue (9_O||ee
Me.txtStatus.Text = "清除所有域代码" Avc9W[4
DoEvents qi&;2Yv
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False qkg`4'rLg
End With Ha}
TdQ%
End Sub "E6*.EtTN#
t}!Y}D
Private Sub cmdCheck_Click() da
,Bnze0
bContinue = True B9&$sTAB
Dim NoSeries1(1 To 16) As String _UqE
-+&
Dim NoSeries2(1 To 16) As String v'vYNh
Dim NoSeries5(1 To 16) As String P`HDQ/^O
Dim NoSeriesRM(1 To 16) As String UP})j.z
Dim paraTotal As Long, ParaText As String l?UFe$9(
Dim ttString As String, ttNo As String >7[o=!^:4
{ +$zgg
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long soTmKqj E
j&c YRKpz
Me.txtStatus.Visible = True |_Tp:][mf
Me.lbParaType.Visible = True f\{ynC2m
Me.cmdCheck.Enabled = False ~h<<-c
E;m-^dxc
L2L=~/LG
?KK
u1~a_
/jtU<uX
Dim ParaType As String, rText As String gZ^'hW-{
TrEo5
H ;
Selection.WholeStory !qQB}sAf
Selection.NoProofing = True S=N3qBH6
[
|&V$
tm1 = Now V=?qU&r<+
n'42CE
ActiveWindow.View.Type = wdNormalView a9"1a'
lDV}vuM<4
NoSeries1(1) = "一" !I8m(axW
NoSeries1(2) = "二" k|SywATr
NoSeries1(3) = "三" 9 :ubPqt
NoSeries1(4) = "四" n;F/}:c_a
NoSeries1(5) = "五"
8vK$]e36
NoSeries1(6) = "六" mF@)l]UZ'
NoSeries1(7) = "七" $$tFP"pZ
NoSeries1(8) = "八" C
=sEgtEI
NoSeries1(9) = "九" T"tR*2HwSd
NoSeries1(10) = "十" \a
.^5g
NoSeries1(11) = "十一" }+F&=-P)
NoSeries1(12) = "十二" &Se!AcvKF
NoSeries1(13) = "十三" b":3J)Y6.
NoSeries1(14) = "十四" GgNqc i,
NoSeries1(15) = "十五" +IM:jrT(
NoSeries1(16) = "十六" 2j UEL=+Y
FS1>
J%P
NoSeries2(1) = "㈠" C;EC4n+s
NoSeries2(2) = "㈡" \?VNr2
NoSeries2(3) = "㈢" )qL UHE=
NoSeries2(4) = "㈣" ptl
cG9d-
NoSeries2(5) = "㈤" 'T7=.Hq<4
NoSeries2(6) = "㈥" sb3k? q
NoSeries2(7) = "㈦" !UV1OU
NoSeries2(8) = "㈧" {wNNp't7
NoSeries2(9) = "㈨" l0&Y",
vy
NoSeries2(10) = "㈩" H E'1Wa0r
}=fVO<Rv
NoSeries5(1) = "①" :9O"?FE
NoSeries5(1) = "②" zBKfaQI,
NoSeries5(3) = "③" #AN]mH
NoSeries5(4) = "④" DA(ur'D
NoSeries5(5) = "⑤" ?c;T4@mB
NoSeries5(6) = "⑥" v"K #
NoSeries5(7) = "⑦" TJhzyJ"t
NoSeries5(8) = "⑧" E;vF
:?|
NoSeries5(9) = "⑨" n$03##pf
NoSeries5(10) = "⑩" ~:ldGfb|
+pefk+
V(^aG=TaW:
NoSeriesRM(1) = "I" 'Wv`^{y <^
NoSeriesRM(2) = "II" ;
{ MK
NoSeriesRM(3) = "III" dP7nR1GS
NoSeriesRM(4) = "IV" EW:tb-%`
NoSeriesRM(5) = "V" r) SG!;X
NoSeriesRM(6) = "VI" Y!K5?kk
NoSeriesRM(7) = "VII" \uUd *
NoSeriesRM(8) = "VIII" FB\lUO)U\c
NoSeriesRM(9) = "IX" 'PBuf:9lN
NoSeriesRM(10) = "X" qIC9L"I
NoSeriesRM(11) = "XI" 6zf3A:]&{
NoSeriesRM(12) = "XII"
%^?yI
NoSeriesRM(13) = "XIII" L#}HeOEi[
NoSeriesRM(14) = "XIV" !gKz=-C
NoSeriesRM(15) = "XV" a(a2xa
NoSeriesRM(16) = "XVI" XP|qY1
Bw`7ND}&
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) K*]^0
@|i
f^
If i = vbNo Then @_L:W1[
Exit Sub >cV^f6fH
End If Ny6 daf3f
A;'*>NS
If Me.chkSuper.Value Then !VXs
yH3r5
Me.txtStatus.Text = "检查修改所有的上标格式" t
V:oBT*
p[J 8
r{'
CheckSuperScript M#?^uu'
it\U+xu
End If (=/%_jj
E;>BcPt5
If Me.chkStyle.Value Then O7x'q<PFU
Me.txtStatus.Text = "设置样式,请稍候...." L
4x08 e
DoEvents 7F;dLd'
CeateOrModifyStyle #@v$`Df<
End If itpljh
97]$*&fH
"8%z,lHw
!idQ-&
ClearDomain I.qP$ j
Ug1[pONk
Z{".(?+}1
y. A]un1
If Me.chkLIST.Value Then @8jc|X<A
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" ,o{|W9
pT;{05
ConvertListToOrdinary D#pZN,'
End If l[cBDNlrC;
(0cL!
N;;
u[>hs
\3k
Dim pType As String, trimpTEXT As String =ll{M{0Q]!
If Me.chkNum.Value = True Then c@ea
;Cv
Me.txtStatus.Text = "转换全角数字形式为半角" 5Y W.s
ConvertWidth "1", "1" v6$ }saTX
DoEvents 1/l;4~p7'
ConvertWidth "2", "2" RhPEda2
DoEvents Jy?#@/~
ConvertWidth "3", "3" jb5nL`(j$
DoEvents Q
6)5*o8n
ConvertWidth "4", "4" n G+ L'SmI
DoEvents |rhCQ"H
ConvertWidth "5", "5" Onqd2'%<
DoEvents $zR[2{bg
ConvertWidth "6", "6" 8!!iwmH{
DoEvents ^-Knx!z
ConvertWidth "7", "7" ,];4+&|8kW
DoEvents 5IsRIz[`TK
ConvertWidth "8", "8" y=H\Z/=
DoEvents <.N337!
ConvertWidth "9", "9" r{Stsha(
DoEvents @[vwqPOL
ConvertWidth "0", "0" M
}H7`,@I
DoEvents V.f'C
w
ConvertWidth "a", "a" *@C]\)
DoEvents vvDaL$
ConvertWidth "b", "b" -y+u0,=p.
DoEvents Og8'K=O#
ConvertWidth "c", "c" 4NN81~v 4
DoEvents aglW\LT^
ConvertWidth "d", "d" GY[+HgT
DoEvents )HFl 0[vT
ConvertWidth "e", "e" mDJg-BQ
DoEvents xwm-)~L4T
ConvertWidth "f", "f" _Q
$D6+
DoEvents WL6p+sN'
ConvertWidth "g", "g" "\:ZH[j
DoEvents \B$Q%\- PX
ConvertWidth "h", "h" NETji:d
DoEvents ?#cX_
ConvertWidth "i", "i" +~H mPQ
DoEvents qOi3`6LCV
ConvertWidth "j", "j" w2mL L?P
DoEvents 82q_"y>6
ConvertWidth "k", "k" bktw?{h
DoEvents 7ql&UIeQ
ConvertWidth "l", "l" ,M)NC%0X
DoEvents DKzP)!B "
ConvertWidth "m", "m" `Qc_]CWYH
DoEvents R06zca
ConvertWidth "n", "n" k\~A\UIYo
ConvertWidth "o", "o" Kr*s]O
ConvertWidth "p", "p" jxt^d
ConvertWidth "q", "q" AVx 0aj
ConvertWidth "r", "r" J6s55
v
ConvertWidth "s", "s" 'h:[[D%H`
ConvertWidth "t", "t" -H;%1y$A-
ConvertWidth "u", "u" POouO/r$
ConvertWidth "v", "v" 6$l6>A
ConvertWidth "w", "w" -nvK*rn>}
ConvertWidth "x", "x" ,Z"l3~0\
ConvertWidth "y", "y" qDPpGI-Y2e
ConvertWidth "z", "z" @uWPo2
ConvertWidth "A", "A" eL7rX"!
ConvertWidth "B", "B" u3Jsu=Nx-
ConvertWidth "C", "C" FQ72VY
ConvertWidth "D", "D" *YhX6J1
ConvertWidth "E", "E" |RdiM&C7
ConvertWidth "F", "F" ~Xf&<&5d T
ConvertWidth "G", "G" qZ8V/
ConvertWidth "H", "H" `c-(1;Jb
ConvertWidth "I", "I" Q.d Hg7+D
ConvertWidth "J", "J" o (OC3
ConvertWidth "K", "K" 5X'com?T
ConvertWidth "L", "L" ?pLKUA h
ConvertWidth "M", "M" DW,fh8 w
ConvertWidth "N", "N" \qU .?V[2
ConvertWidth "O", "O" A)X 'We
ConvertWidth "P", "P" .-0;:>
ConvertWidth "Q", "Q" MvO!p
ConvertWidth "R", "R" 6E
eU
iLd
ConvertWidth "S", "S" "* Qwaq_
ConvertWidth "T", "T" R\oas"
ConvertWidth "U", "U" 3}}#'5D
ConvertWidth "V", "V" ZV=)`E`I|
ConvertWidth "W", "W" -XSu;'4q
ConvertWidth "X", "X" GsG9;6c+u
ConvertWidth "Y", "Y" qZ:-- ,9+
ConvertWidth "Z", "Z" e+ZC<Bdh
ConvertWidth "^l", "^p" NV
F gRJ&
ConvertWidth "(", "(" ?b&~(,A{
ConvertWidth ")", ")" g@ ZZcBx
4*<27
End If nvyyV
\w
1HBdIWhHv.
With ActiveDocument 1Xv- e8M
Dim tbl As Table 4/rdr80
For Each tbl In .Tables @+S5"W
tbl.Rows.Alignment = wdAlignRowCenter jq4{UW'
tbl.Range.Font.NameFarEast = "楷体" &>!WhC16
tbl.Range.Font.NameAscii = "Times New Roman" 9%VN
zPzf
tbl.Range.Font.Size = 10.5 :h|nV
~
Next LAoX'^6
Set tbl = Nothing Q>FuNdUk
End With ) $wX~k
rdL>yT/A
p4|Zz:f
With ActiveDocument mB:I8g7
b;[u=9ez
For i = 1 To .TablesOfContents.Count
+bj[.
.TablesOfContents(i).Delete CDz-IQi
Next L%7?o:
zqq$PaH*
h.\9a3B:r
b~Qd9Nf
paraTotal = .Paragraphs.Count [}/\W`C
paraCounter = 1 o~Im5j],*
igV4nL
LastTitle0No = 0 oXR%A7
LastTitle1No = 0 #hBDOXHPf
LastTitle2No = 0 ,a I0Aw
LastTitle3No = 0 a*8^M\>m4
LastTitle4No = 0 8-HMKD#V
LastTableNo = 0 z]NN ^pIa
LastFigureNo = 0 NINaOs
n{~Ws^d
Dim Sec As Long hE-u9i
8^H <dR
Sec = InputBox("正文从第一节开始?", "节设置", 6) SGU~LW&
If Sec = 0 Then @jE<V=?
Exit Sub 7@.UkBOx
End If }v [$uT-q
ya9V+/i7T_
k = 0 olC@nQ1c*
Do While (paraCounter < paraTotal) And bContinue 8: KlU(J
k = k + 1 C?FUc cI
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then jocu=Se@
Exit Do y`~[R7E
End If !50Fue^JM
paraCounter = paraCounter + 1 Z
'%k`F
If k Mod 20 = 0 Then ZW}0{8Dk
Me.lbCounter.Caption = paraCounter . <|7BHL
DoEvents ~D4%7U"dv
End If 4g.y$
Loop | Wrf|%p
T/V 5pYl
o
<lS90J
Do While (paraCounter < paraTotal) And bContinue S*o%#ZJN
az (u=}
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) 2<aBUGA
ShapeHeight = 0 /lQGFLZL
ShapeWidth = 0 +yq Z\$ii
)ow|n^D($M
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth #du!tx ( _
HDyus5g
Select Case ParaType \h%/Cp+p
Case "【】表格内容" ]JeA29
.Paragraphs(paraCounter).Style = "QLNU表格内容" O; qerE?i`
Case "章" 'w+T vOB
LastTitle0No = LastTitle0No + 1 aF:_ 1.LC
'新一章开始,复位其下属标题编号
*Mt's[8
LastTitle1No = 0 .1yp}&e#
LastTitle2No = 0 -P09u82
LastTitle3No = 0 3N) bJ
LastTitle4No = 0 5]WpH0kzO
[Ng#/QXk{
k = Val(ttNo) ,qgph^C
If k = 0 Then '非数字编号章节 rZDmZm?=
If ttNo <> NoSeries1(LastTitle0No) Then dpO ZqhRs.
rText = "第" & NoSeries1(LastTitle0No) & ttString gE/O29Y
Me.ErrMsg.AddItem "章节编号错误:" & ParaText S-"OfWg<
End If )w8h2=l
Else pI>i1f=W
If Val(ttNo) <> LastTitle0No Then 9:bC{n
rText = "第" & LastTitle0No & ttString 6'e}!O
Me.ErrMsg.AddItem "章节编号错误:" & ParaText CL*i,9:NR
End If /\-qz$
VP$ `.y
End If oEE*H2l\
R}Ih~zw
'章段落设置 "28b&pm
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 R4<