Dim bContinue As Boolean z1(rHJd
zcP_-q]1
Dim regEX As New RegExp ]?b#~
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 R9fM9
0j_`7<,:
Dim LastTitle0String As String, LastTitle0No As Long 5wiU4-{
Dim LastTitle1String As String, LastTitle1No As Long oy#Qj3M8=
Dim LastTitle2String As String, LastTitle2No As Long /u>")f
Dim LastTitle3String As String, LastTitle3No As Long 0alm/or
Dim LastTitle4String As String, LastTitle4No As Long PL%_V ?z
Dim LastTitle5String As String, LastTitle5No As Long dJ:EXVU
Dim LastTabelString As String, LastTableNo As Long >k
kuw?O@
Dim LastFigureString As String, LastFigureNo As Long dhsQfWg#}
umSbxEZU@
Dim strSeperator As String ~qc
o -b
NC@OmSR\0
Sub ConvertWidth(fTEXT As String, rText As String) krI<'m;a
Selection.Find.ClearFormatting J?u@' "u
Selection.Find.Replacement.ClearFormatting v\0[B jhL?
Selection.Find.Wrap = wdFindContinue *,@dt+H!y
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText vezX/x D?
DoEvents
h ej
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True kCLz@9>FQ
End Sub |c dQJW
oT%~)g
Sub ClearDomain() ^Shz[=fd
With Selection.Find NR^z!+oSR
.ClearFormatting ]"{K5s7
.Replacement.ClearFormatting nOp\43no
.Wrap = wdFindContinue Z?CmD;W
Me.txtStatus.Text = "清除所有域代码" 4CfPa6_
DoEvents
D]Bvjh
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False ?IGT !'
End With |V%Qp5 XJ
End Sub !NjC+ps]
hJ+>Xm@@!
Private Sub cmdCheck_Click() Y2QlK1.8V
bContinue = True Lc0^I<Y
Dim NoSeries1(1 To 16) As String I>b!4?h
Dim NoSeries2(1 To 16) As String O .m;a_
Dim NoSeries5(1 To 16) As String ?_
}
[@x
Dim NoSeriesRM(1 To 16) As String |4ONGU*`E
Dim paraTotal As Long, ParaText As String 9m%[
y1v0
Dim ttString As String, ttNo As String bC)diC
7L? ~;;L$
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long C!%BW%"R
"qR
qEpD%
Me.txtStatus.Visible = True DY0G;L3
Me.lbParaType.Visible = True }_:^&cT
Me.cmdCheck.Enabled = False 7p@qzE
|jO&qT]{
%j{gZTz-
iK= {pd
:W-"UW,
Dim ParaType As String, rText As String W
?5^cEF
I[@}+p0
Selection.WholeStory -HS(<V=a?k
Selection.NoProofing = True Abd&p N
yG2j!D
tm1 = Now `=vL?w^QS
*<"xF'C
ActiveWindow.View.Type = wdNormalView SA)}---"
)TBBYCL3
NoSeries1(1) = "一" F{ B__Kf
NoSeries1(2) = "二" u])N^AY"sj
NoSeries1(3) = "三" ixE72bX
NoSeries1(4) = "四" aQ46euth
NoSeries1(5) = "五" Ql3hq
.E
NoSeries1(6) = "六" Ef:.)!;jy
NoSeries1(7) = "七" Y!Wz7
C
NoSeries1(8) = "八" E@Q+[~H }
NoSeries1(9) = "九" j<Lj1P3
NoSeries1(10) = "十" [#M^:Q
NoSeries1(11) = "十一" x.xfMM2n
NoSeries1(12) = "十二" rpQB#
Pz
NoSeries1(13) = "十三" (7;}F~?h
NoSeries1(14) = "十四" ^e8~eL+
NoSeries1(15) = "十五" aOA;"jR1
NoSeries1(16) = "十六" 9JJ(KY
: H0+} =
NoSeries2(1) = "㈠" 89k
9#i X
NoSeries2(2) = "㈡" o!gl
:izb
NoSeries2(3) = "㈢" E
+]gC
NoSeries2(4) = "㈣" ~4`LOROC
NoSeries2(5) = "㈤" BC9rsb
NoSeries2(6) = "㈥" iRBUX`0
NoSeries2(7) = "㈦" 'k{pWfn=<
NoSeries2(8) = "㈧" Qt+
K,LY
NoSeries2(9) = "㈨" !#5RP5,,Y
NoSeries2(10) = "㈩" 59FAhEg
w8%<O^wN,
NoSeries5(1) = "①" Qf6Vj,~N
NoSeries5(1) = "②" 0!eZ&.h?4
NoSeries5(3) = "③" -c~nmPEG6
NoSeries5(4) = "④" CES^
c-. k
NoSeries5(5) = "⑤" q1.w8$
NoSeries5(6) = "⑥" DnMfHG[<
NoSeries5(7) = "⑦" S
XIo
NoSeries5(8) = "⑧" t+|c)"\5h
NoSeries5(9) = "⑨" HYZ94[Ti
NoSeries5(10) = "⑩" [wj&.I{^s
^8ZVB.Fv
B9&"/tT
NoSeriesRM(1) = "I" 8^CL:8lI^\
NoSeriesRM(2) = "II" "z1\I\
^
NoSeriesRM(3) = "III" ~(~fuDT~O
NoSeriesRM(4) = "IV" gp$oQh#37;
NoSeriesRM(5) = "V" jyb/aov
NoSeriesRM(6) = "VI" B|/=E470G
NoSeriesRM(7) = "VII" :1PT`:Y
NoSeriesRM(8) = "VIII" \|L ~#{a
NoSeriesRM(9) = "IX" p.SEW5
NoSeriesRM(10) = "X" 7D@O:yO
NoSeriesRM(11) = "XI" TG=) KS
NoSeriesRM(12) = "XII" V<ziJ7H/
NoSeriesRM(13) = "XIII" F)z]QJOw
NoSeriesRM(14) = "XIV" ^%VMp>s
NoSeriesRM(15) = "XV" %D)W~q-g
NoSeriesRM(16) = "XVI" Uw8 O"}U8
FI`][&]V
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) Rjqeuyj:
<=W;z=$!Bb
If i = vbNo Then f-E]!\Pg
Exit Sub '+hiCX-_
End If =EA*h_"q9
*&Np;^~
If Me.chkSuper.Value Then v2 T+I]I
Me.txtStatus.Text = "检查修改所有的上标格式" ,JYvfCA
BlF>TI%2
CheckSuperScript 2,{m>fF
'j 'bhG
End If KnaQhZ
Mm;kB/1
If Me.chkStyle.Value Then {r?O>KDQf(
Me.txtStatus.Text = "设置样式,请稍候...." /EZF5_`bT
DoEvents /U4F\pZl
CeateOrModifyStyle G&I\Za;
End If BA4qQCS;5
K@)
Hm\*
@{_[bKg
_?x*F?5=
ClearDomain 3P2H!r
+[<|TT
m-xSF]q=<
Fo|6 PoSo
If Me.chkLIST.Value Then iSCv/Gb:
,
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" LBh|4S$K
^i&sQQ({
ConvertListToOrdinary C (L1
End If "t$c'`
ODyK/Q3
)$p<BL U
Dim pType As String, trimpTEXT As String |JC/A;ZH
If Me.chkNum.Value = True Then "94e-Nx
Me.txtStatus.Text = "转换全角数字形式为半角" D1}Bn2BM$
ConvertWidth "1", "1" swss#?.se
DoEvents f"\G"2C
ConvertWidth "2", "2" ,_,Z<X/
DoEvents jQxv`H
ConvertWidth "3", "3" 0
XxU1w8\V
DoEvents \DI%/(?
ConvertWidth "4", "4" {dM18;
DoEvents bS=aFl#
ConvertWidth "5", "5" ae`*0wbv
DoEvents JS]6jUB<B
ConvertWidth "6", "6" 3xj
?}o
DoEvents ]?whx&+
ConvertWidth "7", "7" 9D#"Ey
DoEvents C_mPw
ConvertWidth "8", "8" s.d }*H-o
DoEvents j"{|* _6E_
ConvertWidth "9", "9" v9QR,b`n
DoEvents 'H+H
4(
ConvertWidth "0", "0" ~Gx"gK0
DoEvents /GCI`hx>"
ConvertWidth "a", "a" ..`
J-k
DoEvents 2R66 WKQ
ConvertWidth "b", "b" !B5 }`*1D
DoEvents tgCEz%
ConvertWidth "c", "c" 4E/Q+^?
DoEvents ~>2@55wElp
ConvertWidth "d", "d" D[yOFJ~p)
DoEvents 2I(b
ad
ConvertWidth "e", "e" T PEg>[
DoEvents .Zv@iL5
ConvertWidth "f", "f" =~}\g;K1Q
DoEvents e <2?O
ConvertWidth "g", "g" :Q@=;P2
DoEvents A\nL(Nd
ConvertWidth "h", "h" 3WZdP[o!
DoEvents fs_6`Xt
ConvertWidth "i", "i" $$ma1.t"
DoEvents 1$2'N~`#U
ConvertWidth "j", "j" 8 h
DoEvents #usi1UWB#Q
ConvertWidth "k", "k" e"Kg/*Ji1
DoEvents R >f$*T
ConvertWidth "l", "l" O~sv^
DoEvents .aTu]i3l_
ConvertWidth "m", "m" 1Tz5tU9kR
DoEvents fTQRn
ConvertWidth "n", "n" @0H}U$l
ConvertWidth "o", "o" ?WyL|;b*
ConvertWidth "p", "p" dF$a52LS
ConvertWidth "q", "q"
_+73Y'
ConvertWidth "r", "r" yxP(|
ConvertWidth "s", "s" Eh/B[u7T[
ConvertWidth "t", "t" gmtp/?>e
ConvertWidth "u", "u" wQ-pIi{G
ConvertWidth "v", "v" )!M %clm.
ConvertWidth "w", "w" f86h"#4
ConvertWidth "x", "x" pB*8D
ConvertWidth "y", "y" Z.TYi~d/9D
ConvertWidth "z", "z" ^x8*]Sz#x
ConvertWidth "A", "A" I-<U u2
ConvertWidth "B", "B" ' P5ttI#|
ConvertWidth "C", "C" ;;#28nV
ConvertWidth "D", "D" xXkP(^ Y
ConvertWidth "E", "E" WsO'4~X9
ConvertWidth "F", "F" fn(<
<FA)
ConvertWidth "G", "G" 8@y@}
ConvertWidth "H", "H" /qM:;:N%j
ConvertWidth "I", "I" Z7>pz:,
ConvertWidth "J", "J" "5:^aC]
ConvertWidth "K", "K" EX zA(igS
ConvertWidth "L", "L" ElLDSo@WvR
ConvertWidth "M", "M" tl5}#uJ
ConvertWidth "N", "N" g$$i WC!S<
ConvertWidth "O", "O" B7HNNX
ConvertWidth "P", "P" ^'9:n\SKQ
ConvertWidth "Q", "Q" D_mdX9-~
ConvertWidth "R", "R" Hs,pY(l^
ConvertWidth "S", "S" oRH]67(Z
ConvertWidth "T", "T"
8s^CE[TA
ConvertWidth "U", "U" 6^_:N1@
ConvertWidth "V", "V" r$7fw}'I
ConvertWidth "W", "W" fP<Tvf
ConvertWidth "X", "X" /<ODP6Yy;
ConvertWidth "Y", "Y" X <QSi
ConvertWidth "Z", "Z" G>"=Af(t?Y
ConvertWidth "^l", "^p" /=4 m4
ConvertWidth "(", "(" QlT{8uw)
ConvertWidth ")", ")" 0*G
=~:
>.'rN>B+
End If H?A&P4nZ
|e49F
With ActiveDocument _nW{Q-nh
Dim tbl As Table qbcaiU`-^"
For Each tbl In .Tables \[u7y. b
tbl.Rows.Alignment = wdAlignRowCenter 0*7N=
tbl.Range.Font.NameFarEast = "楷体" 6xI9%YDy
tbl.Range.Font.NameAscii = "Times New Roman" {6}H}_(]
tbl.Range.Font.Size = 10.5 MtWzGE=?
Next P|c[EUT
Set tbl = Nothing A9qbE
End With bn$a7\X-
^I2+$
,c }R*\
With ActiveDocument E$!0h_.(
#2AKO/
For i = 1 To .TablesOfContents.Count aLa{zB
.TablesOfContents(i).Delete $hv o^$
Next W:s`;8iM$
O.OPIQ=?:w
:K
J#_y\rt
wNQhz.>y
paraTotal = .Paragraphs.Count N1dv}!/*.+
paraCounter = 1 =@BVO@z@
6jS:_[p
LastTitle0No = 0 `?@7T-v
LastTitle1No = 0 /~=W3lhY
LastTitle2No = 0 A6-K~z^
LastTitle3No = 0 @q8h'@sX
LastTitle4No = 0 L>:YGM
"sL
LastTableNo = 0 l@:|OGD;8
LastFigureNo = 0 W`auQO
fH{ _X
Dim Sec As Long qk Hdr2
fviq}.
Sec = InputBox("正文从第一节开始?", "节设置", 6) abAX)R'
If Sec = 0 Then jNjm}8`t
Exit Sub NmbA~i
End If l6kq P
fSR+~Vy
k = 0 p@`]9tLP(K
Do While (paraCounter < paraTotal) And bContinue {DfXn1Cg0U
k = k + 1 M`m-@z
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then ~\uI&S5
Exit Do pCOtk'n
End If hzv4+1Wd[
paraCounter = paraCounter + 1 z''ITX)oG
If k Mod 20 = 0 Then VSf<(udGr
Me.lbCounter.Caption = paraCounter ,dyCuH!B
DoEvents <<#j?%
End If mQ~0cwo)
Loop ,e]|[,r#5
04npY+1
8%
VR:4|_o
Do While (paraCounter < paraTotal) And bContinue \Z~|ry0v{d
xb6y=L
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) [22>)1<(
ShapeHeight = 0 RQg7vv]%
ShapeWidth = 0 c_p7vvI&c0
G%Dhj)2}
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth 1^R
[kaY
]!%
p21e
Select Case ParaType {c|{okQ;Q
Case "【】表格内容" QY)hMo=|o8
.Paragraphs(paraCounter).Style = "QLNU表格内容" [yFf(>B
Case "章" _'OXrT#Q
LastTitle0No = LastTitle0No + 1 Nj~3FL
'新一章开始,复位其下属标题编号 k+nfW]UNF
LastTitle1No = 0 Lt|'("($*
LastTitle2No = 0 J%9)&aW
LastTitle3No = 0 Ih RWa|{I
LastTitle4No = 0 jEaU;
Wra$
k = Val(ttNo) .A6i?iROe
If k = 0 Then '非数字编号章节 Jw-?7O
If ttNo <> NoSeries1(LastTitle0No) Then qhE1
7Hf
rText = "第" & NoSeries1(LastTitle0No) & ttString a8Va3Y
Me.ErrMsg.AddItem "章节编号错误:" & ParaText mT:Z!sS
End If w^/jlddF
Else A.[~}ywH
If Val(ttNo) <> LastTitle0No Then o=%pR|
rText = "第" & LastTitle0No & ttString j*XhBWE?
Me.ErrMsg.AddItem "章节编号错误:" & ParaText
cZVVJUF
End If VgBZ@*z(x
coG_bX?e
End If ?^f=7e8]
{`KRr:w
'章段落设置 9?xD"Z
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 vZ0K1UTEXY
.Paragraphs(paraCounter).Style = "QLNU章节" d<,'9/a>
.Paragraphs(paraCounter).Range.Select ]?1n-w.}r
Selection.EndKey unit:=wdLine m@A?'gD
tc = Replace(rText, vbCr, "") 16pk4f8
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False PP1?UT=]
Case "一级标题" u[Ij4h.
LastTitle1No = LastTitle1No + 1 P84uEDY
'新一级标题开始,复位其下属标题编号 j*7#1<T
LastTitle2No = 0 8Pgw_ 21N1
LastTitle3No = 0 z&R
#j
LastTitle4No = 0 lPBWpHX
s28t'
If ttNo <> NoSeries1(LastTitle1No) Then _zuX6DO
rText = NoSeries1(LastTitle1No) & "、" & ttString
7~
f"8\
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText K*"Wq:T;B
End If =PQMd
WciL
zx/
Gt|m;o
'一级标题段落设置 格式:一、标题内容 \7\7i-Vo
.Paragraphs(paraCounter).Range.Text = rText 3 *g>kRMJ
.Paragraphs(paraCounter).Style = "QLNU一级标题" 8k.<