Dim bContinue As Boolean (j I|F-i
$"(YE #]|
Dim regEX As New RegExp Y_B 4s-
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 4|L@oTzx
Q(IS=
Dim LastTitle0String As String, LastTitle0No As Long :&-}S>pC
Dim LastTitle1String As String, LastTitle1No As Long 3# (5Kco
Dim LastTitle2String As String, LastTitle2No As Long _Kj.
Dim LastTitle3String As String, LastTitle3No As Long yfW^wyDd2o
Dim LastTitle4String As String, LastTitle4No As Long \xZBu"
Dim LastTitle5String As String, LastTitle5No As Long -:>#w`
H
Dim LastTabelString As String, LastTableNo As Long vWovR`
Dim LastFigureString As String, LastFigureNo As Long K{P#[X*5
JT9<kB/07
Dim strSeperator As String Pb;`'<*U
[Z+,)-ke
Sub ConvertWidth(fTEXT As String, rText As String) H7=z%Y9y
Selection.Find.ClearFormatting n6Zx0ad?
Selection.Find.Replacement.ClearFormatting b?NeSiswn
Selection.Find.Wrap = wdFindContinue t5APD?5 c
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText /#=J`*m_
DoEvents R qz()M
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 4<K`yU]"
End Sub FlG^
'U
D
.Topg.7W
Sub ClearDomain() xwxj j
With Selection.Find 4w6K|v<X
.ClearFormatting e;'T?&t
.Replacement.ClearFormatting D5b_m|7%
.Wrap = wdFindContinue )It4al^\
Me.txtStatus.Text = "清除所有域代码" B3t>M)
9
DoEvents NXNon*"
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False sZB6zTX
J
End With c):*R ]=
End Sub S:uEK
zs:7!
Private Sub cmdCheck_Click() jq)|7_N
bContinue = True +"cyOC
Dim NoSeries1(1 To 16) As String Umt ia~x=&
Dim NoSeries2(1 To 16) As String n1>nnH]G
Dim NoSeries5(1 To 16) As String wIj2 IAD
Dim NoSeriesRM(1 To 16) As String |P7f^0idk
Dim paraTotal As Long, ParaText As String 7uxPkZbb
Dim ttString As String, ttNo As String ]+dl=SmF
[\
YP8^..
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long _q_[<{#
\>`$
x:
Me.txtStatus.Visible = True yjR
O9
Me.lbParaType.Visible = True ^z;,deoGh
Me.cmdCheck.Enabled = False (NC>[
d@4!^vD;
;T+U&U0d|
vxT"BvN
* _lo;
Dim ParaType As String, rText As String ]r1{%:8
-\$cGIL
Selection.WholeStory %Nl(Y@dD*
Selection.NoProofing = True #/dde9y
$)]FCuv
tm1 = Now [s{:}ZuKc
B/hHkOoo
ActiveWindow.View.Type = wdNormalView j/pQSlV
%pkq ?9
NoSeries1(1) = "一" z]|[VM?4L
NoSeries1(2) = "二" ee^_Dh4
NoSeries1(3) = "三" Kn$1W=B1.
NoSeries1(4) = "四" 'aP*++^
NoSeries1(5) = "五" I<K/d
NoSeries1(6) = "六" N:[;E3?O
NoSeries1(7) = "七" AJd.K'=8
NoSeries1(8) = "八" 5 hadA>d
NoSeries1(9) = "九" UjOhaj "h
NoSeries1(10) = "十" l_-n&(N2<[
NoSeries1(11) = "十一" }n%Rl\p
NoSeries1(12) = "十二" cEjdImAzU
NoSeries1(13) = "十三" Z;'.pU~
NoSeries1(14) = "十四" n{r#K_
NoSeries1(15) = "十五" }t3FAy(%
NoSeries1(16) = "十六" y]_8.
0zM
G)Bq?=P
NoSeries2(1) = "㈠" MxEAs}MDv
NoSeries2(2) = "㈡" k1U8wdoT
NoSeries2(3) = "㈢" #
pB:LPEsK
NoSeries2(4) = "㈣" 2\\3<
NoSeries2(5) = "㈤"
f}Tr$r
NoSeries2(6) = "㈥" >#U<#
NoSeries2(7) = "㈦" 1 "7#|=1/
NoSeries2(8) = "㈧" ~*c=
NoSeries2(9) = "㈨" MH;%Y"EI
NoSeries2(10) = "㈩" ]U1,NhZu
qg{<&V7fE
NoSeries5(1) = "①" Q]5^Eiq8
NoSeries5(1) = "②" Sw@,<4S
NoSeries5(3) = "③" o[[r_v_d
NoSeries5(4) = "④" *>p(]_s,
NoSeries5(5) = "⑤" ,wi=!KzX
NoSeries5(6) = "⑥" 3ZlGbP#3w
NoSeries5(7) = "⑦" Zt2@?w;
NoSeries5(8) = "⑧" U"Hquo
NoSeries5(9) = "⑨" _xgVuJ
NoSeries5(10) = "⑩" M6*{#Y?
PbHh?iH
$,,>R[; w
NoSeriesRM(1) = "I" fP1OH&Ar
NoSeriesRM(2) = "II" WTYFtZD[yH
NoSeriesRM(3) = "III" WriN]/yD
NoSeriesRM(4) = "IV" ('6g)@=\U
NoSeriesRM(5) = "V" ls7A5 <
NoSeriesRM(6) = "VI" %e7(HfW-U
NoSeriesRM(7) = "VII" tZ
j,A%<
NoSeriesRM(8) = "VIII" `N.$LY;8
NoSeriesRM(9) = "IX" 51 +M_~
NoSeriesRM(10) = "X" %=4ak]As
NoSeriesRM(11) = "XI" Z;~[@7`
NoSeriesRM(12) = "XII" Q_0x6]/!
NoSeriesRM(13) = "XIII" u\6]^T6
NoSeriesRM(14) = "XIV" zHOE.V2Qo
NoSeriesRM(15) = "XV" '(X[
w=WXy
NoSeriesRM(16) = "XVI" y*b.eO
|z]2KjF&w-
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) 3|+f si)x
{Y:ZY+
If i = vbNo Then }R&5qpl
Exit Sub G+X[R^RD
End If &f<1=2dm
N[<`6dpE
If Me.chkSuper.Value Then !GGGh0Bj
Me.txtStatus.Text = "检查修改所有的上标格式" o$`kpr
IPR tm!
CheckSuperScript t<k[W'#
J1p75c%
End If */^2RZg|W
jc.JX_/
If Me.chkStyle.Value Then kTZx-7~
Me.txtStatus.Text = "设置样式,请稍候...." t?nc0;Q9,@
DoEvents 5J+V:Xu{
CeateOrModifyStyle km\ld&d]$
End If <h_P+ nz
.`&/QiD
%;\G@q_p{
'cF%4F
ClearDomain GP[r^Z
/4
LR0`A'
JD{MdhhV
RYZE*lWUh
If Me.chkLIST.Value Then iq
ednk%
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" n?LIphc\
4JZHjf0M6
ConvertListToOrdinary OW^2S_H5
End If YqSXi~.
ki~y@@3I
R=?po=
Dim pType As String, trimpTEXT As String _/
}6
If Me.chkNum.Value = True Then ff}a <w
Me.txtStatus.Text = "转换全角数字形式为半角" Ryq"\Q>+
ConvertWidth "1", "1" U\Ar*b) /T
DoEvents LJ(n?/z%
ConvertWidth "2", "2" -yAnn
DoEvents n1>,#|#
ConvertWidth "3", "3" CFJjh^
~=
DoEvents ^'[@M'`~L
ConvertWidth "4", "4" ,#bb8+z&p
DoEvents x:?a;m uf
ConvertWidth "5", "5" YZH#5]o8
DoEvents #xP!!.DF(
ConvertWidth "6", "6" Hg9.<|+yo
DoEvents $?)3&\)R
ConvertWidth "7", "7" M=AvD(+ha
DoEvents i,IM?+4
ConvertWidth "8", "8" X
s>s|_T
DoEvents OOBcJC
ConvertWidth "9", "9" 3U~lI&
DoEvents G4`Ut1g^
ConvertWidth "0", "0" q#(/*AoU
DoEvents +:,`sdv6o
ConvertWidth "a", "a" XJh:U0
DoEvents ft/^4QcyAM
ConvertWidth "b", "b" N8XC~Dh{
DoEvents IjDT'p_
ConvertWidth "c", "c" mheU#&|
DoEvents +~4bB$6*4)
ConvertWidth "d", "d" _MdZDhtm
DoEvents .^LL9{?
ConvertWidth "e", "e" 0/:=wn^pg
DoEvents [Yy\>
ConvertWidth "f", "f" ;sChxQ=.^
DoEvents j|&DP-@g/
ConvertWidth "g", "g" W~u
DoEvents WR
a+zii,
ConvertWidth "h", "h" 27a*H1iQ
DoEvents mUt,Z^ l`
ConvertWidth "i", "i" e*P=2*]M
DoEvents i2:+h}o$e
ConvertWidth "j", "j" =\Vu=I
DoEvents Sc/`=h]T
ConvertWidth "k", "k" 9fuJJ3L[
DoEvents v<%kd[N
ConvertWidth "l", "l" ^b"bRQqm
DoEvents {b,2;w}95
ConvertWidth "m", "m" \+{t4Im
DoEvents q qe2,X?
ConvertWidth "n", "n" Sn(l$wk=
ConvertWidth "o", "o" N2tkCkl^x9
ConvertWidth "p", "p" !)%>AH'
ConvertWidth "q", "q" ~n/Aq*
ConvertWidth "r", "r"
MV<!<Qmj
ConvertWidth "s", "s" G;Wkm|
ConvertWidth "t", "t" Cfr<D3&,]
ConvertWidth "u", "u" ]<q}WjXD'
ConvertWidth "v", "v" EDHg'q
ConvertWidth "w", "w" ; wbUk5Tf/
ConvertWidth "x", "x" `.>k)=F&
ConvertWidth "y", "y" #H;hRl
ConvertWidth "z", "z" ~#x:z^U
ConvertWidth "A", "A" afY _9g!\
ConvertWidth "B", "B" w<Yv`$-`
ConvertWidth "C", "C" |)-|2cPRur
ConvertWidth "D", "D" NT@YLhs?
ConvertWidth "E", "E"
W
`N}
ConvertWidth "F", "F" B.YMP;7>
ConvertWidth "G", "G" <rB3[IJo
ConvertWidth "H", "H" wHtJ_Y
ConvertWidth "I", "I" 1 Itil~
ConvertWidth "J", "J" GOf`Z'\xt
ConvertWidth "K", "K" zkh hN"bX
ConvertWidth "L", "L" o9ctJf=qn
ConvertWidth "M", "M" &"[)s[m+t
ConvertWidth "N", "N" oQ
%\[s$
ConvertWidth "O", "O" U=kx`j>
ConvertWidth "P", "P" ;+i'0$;*w
ConvertWidth "Q", "Q" *qPdZ
ConvertWidth "R", "R" "]T$\PJun
ConvertWidth "S", "S" TX23D)CX
ConvertWidth "T", "T" qx2E-PDL;<
ConvertWidth "U", "U" +5HnZ?E\
ConvertWidth "V", "V" BIV<ti$.
ConvertWidth "W", "W" W-z90k4Z5
ConvertWidth "X", "X" ~!ZmF(:
ConvertWidth "Y", "Y" qX5yN| A4
ConvertWidth "Z", "Z" q]eFd6
ConvertWidth "^l", "^p" ou'~{-_xd
ConvertWidth "(", "(" fVDDYo2\
ConvertWidth ")", ")" M@~~f
gMs+?SNHAh
End If #v4L
oNm
2~!R*i
With ActiveDocument CGC-"A/W
Dim tbl As Table +}^|dkc
For Each tbl In .Tables ufw3H9F(O
tbl.Rows.Alignment = wdAlignRowCenter 5{13V*<
tbl.Range.Font.NameFarEast = "楷体" ^sifEgG *d
tbl.Range.Font.NameAscii = "Times New Roman" Zk=*7?!!
tbl.Range.Font.Size = 10.5 =`Po<7D
Next oTCzY Y
Set tbl = Nothing J3e:Y!
End With KdT[*-
6Wpxp\
]cm6 |`pz
With ActiveDocument GIm
" )}W
T-|9o|~z
For i = 1 To .TablesOfContents.Count (#6AKr9K
.TablesOfContents(i).Delete jg
[H}
Next MzQ\rg_B7
`KpFH.k.K
(#!]fF"!x
]*N:;J
paraTotal = .Paragraphs.Count oZvA~]x9\
paraCounter = 1 eOm< !H
!K3})& w
LastTitle0No = 0 Vd+td;9(
LastTitle1No = 0 9Uh
a2o
LastTitle2No = 0 p}3NJV
LastTitle3No = 0 XXW]0{k:y
LastTitle4No = 0 #bT8QbJ(
LastTableNo = 0 e}42/>}#D
LastFigureNo = 0 ;} l T
oW1"%i%
Dim Sec As Long bLgL0}=n
VL+N:wb>
Sec = InputBox("正文从第一节开始?", "节设置", 6) @Od^k#
If Sec = 0 Then E6Q]A~
Exit Sub EntF@ln!
End If "z^(dF|
T[;;9z
k = 0 KD% TxK
Do While (paraCounter < paraTotal) And bContinue e
~{^oM
k = k + 1 }zFf0.82
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then Eh\ 1O(a(
Exit Do E *F*nd]K
End If l|YT[LR7
paraCounter = paraCounter + 1 B.$PhmCG
If k Mod 20 = 0 Then A4G,}r *n
Me.lbCounter.Caption = paraCounter }I]j&\
DoEvents jn-QKdqM
End If VF)uu[
f9
Loop 7J9l
.cM3
TUh&d5a9H
D
]OD.
Do While (paraCounter < paraTotal) And bContinue DY9fF4
[9a
gmh5
%2M
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) .yZm^&
ShapeHeight = 0 'LVn^TB_f&
ShapeWidth = 0 fb\DiKsW
c$0_R;4/
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth QyPg
|#T2>
/+VIw`E
Select Case ParaType ^P`NMSw
Case "【】表格内容" ]3*P:$Rq
.Paragraphs(paraCounter).Style = "QLNU表格内容" R?cUy8?'S
Case "章" iF!mV5#
LastTitle0No = LastTitle0No + 1 ~>V-*NT8
'新一章开始,复位其下属标题编号 QR<`pmB~y
LastTitle1No = 0 ^=EjadVQ
LastTitle2No = 0 1O
|V=K
LastTitle3No = 0 +TC1nkX
LastTitle4No = 0 .K IVf8)"
?c!:81+\
k = Val(ttNo) R7K!A
%
If k = 0 Then '非数字编号章节 gH %y
If ttNo <> NoSeries1(LastTitle0No) Then xS'zZ%?
rText = "第" & NoSeries1(LastTitle0No) & ttString g"wxC@IR
Me.ErrMsg.AddItem "章节编号错误:" & ParaText \6sqyWI
%
End If kG/X"6pZ
Else wGvhB%8K
If Val(ttNo) <> LastTitle0No Then b'i'GJBQ+$
rText = "第" & LastTitle0No & ttString GCT@o!
Me.ErrMsg.AddItem "章节编号错误:" & ParaText dUS ZNY
End If CRFCqmevR
5h0>!0
End If h#i\iK&A
EYL]TeS
'章段落设置 ![ZmV
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 Z@3l%p6V
.Paragraphs(paraCounter).Style = "QLNU章节" XCDSmZ
.Paragraphs(paraCounter).Range.Select nV}8M
Selection.EndKey unit:=wdLine LP:nba :
tc = Replace(rText, vbCr, "") #G_F`&
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False >$\Bu]{1
Case "一级标题" JqEW=5
LastTitle1No = LastTitle1No + 1 ncv7t|ZN
'新一级标题开始,复位其下属标题编号 8L%M<JRg~
LastTitle2No = 0 OifvUTl9b
LastTitle3No = 0 `
)32&\
LastTitle4No = 0 Y\xUT>(J7
?Gd sOg^
If ttNo <> NoSeries1(LastTitle1No) Then St@l]u9
rText = NoSeries1(LastTitle1No) & "、" & ttString nnNv0?>d(
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText k#O,j pbB
End If t<nFy
l&Z
Sm
oid[syPB
'一级标题段落设置 格式:一、标题内容 [*8Y'KX <
.Paragraphs(paraCounter).Range.Text = rText dpwD8Q<
U
.Paragraphs(paraCounter).Style = "QLNU一级标题" IdPn%)>6
.Paragraphs(paraCounter).Range.Select XS?gn.o\
Selection.EndKey unit:=wdLine }j46L1T
tc = Replace(rText, vbCr, "") Cq>6rn
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False +t9 8@
Case "二级标题" *8bK')W
LastTitle2No = LastTitle2No + 1 z{:-!oF&CB
'新二级标题开始,复位其下属标题编号 #^6^
LastTitle3No = 0 L=O lyHO
LastTitle4No = 0 X7aYpt;
Z%}4bJ
If ttNo <> NoSeries1(LastTitle2No) Then OL'P]=U
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString &