Dim bContinue As Boolean lN*beOj
(#8B
Dim regEX As New RegExp B[9y<FB+
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 &cwN&XBY
0[E\h
Dim LastTitle0String As String, LastTitle0No As Long V&7NN=
Dim LastTitle1String As String, LastTitle1No As Long L}rYh`bUP[
Dim LastTitle2String As String, LastTitle2No As Long a9NIK/9
Dim LastTitle3String As String, LastTitle3No As Long (C0Wty
Dim LastTitle4String As String, LastTitle4No As Long F ESl#.}
Dim LastTitle5String As String, LastTitle5No As Long 8J:=@X^}
Dim LastTabelString As String, LastTableNo As Long m"!Q5[
Dim LastFigureString As String, LastFigureNo As Long DMlr%)@{
D~ n-;T
Dim strSeperator As String oSIP{lfp2Q
~I;|ipK4m
Sub ConvertWidth(fTEXT As String, rText As String) N9 h|_ax
Selection.Find.ClearFormatting d|>
/eb.R
Selection.Find.Replacement.ClearFormatting l2ie\4dK@
Selection.Find.Wrap = wdFindContinue D7=Irz!O\7
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText
X
0]{8v%
DoEvents VxtX%McK
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True O_L>We@3E
End Sub G|u)eW
$$i
Gs6az
Sub ClearDomain() 2S-f5&o
With Selection.Find n;wViw
.ClearFormatting oxL)Jx\c9A
.Replacement.ClearFormatting 8.Ufw.
5
.Wrap = wdFindContinue wHh6y? g\
Me.txtStatus.Text = "清除所有域代码" c#TV2
@
DoEvents 2D/bMq
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False 3n~O&{
End With 3^5h:O
aT
End Sub A?ho<@^
\>x1#Vr>#V
Private Sub cmdCheck_Click() $PRUzFZ
bContinue = True RAWzQE}
Dim NoSeries1(1 To 16) As String oU se~
Dim NoSeries2(1 To 16) As String ~O|~M_Z
Dim NoSeries5(1 To 16) As String 2#/23(Wc
Dim NoSeriesRM(1 To 16) As String @0(%ayi2Y
Dim paraTotal As Long, ParaText As String &OA6Zw/A
Dim ttString As String, ttNo As String EvH/d4V;
FC
WF$'cO
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long @saK:z
u U%Z%O
Me.txtStatus.Visible = True #}l$<7ZU
Me.lbParaType.Visible = True YQb503W"d~
Me.cmdCheck.Enabled = False ZG-#YF.1
}QBL{\E!
>Y(JC#M;
-fp/3-
uh`5:V
Dim ParaType As String, rText As String EP^qj j@M
-ijzo%&qA
Selection.WholeStory TbLU[(m-n
Selection.NoProofing = True d0R;|p''Z
_D$1CaAYo
tm1 = Now H3 -?
cy
Rh#`AM`)j
ActiveWindow.View.Type = wdNormalView X,bhX/h
?d+ri
NoSeries1(1) = "一" ;hF}"s
hJN
NoSeries1(2) = "二" !{ fu(E
NoSeries1(3) = "三" >@Pw{Zh$
NoSeries1(4) = "四"
[w!T
NoSeries1(5) = "五" AN3oh1xe:
NoSeries1(6) = "六" &XCP@@T
NoSeries1(7) = "七" HJBGxyw
NoSeries1(8) = "八" 8 Vf#t!t
NoSeries1(9) = "九" Kp^"<%RT
NoSeries1(10) = "十" gu:vf/
NoSeries1(11) = "十一" Ve${g`7&
NoSeries1(12) = "十二" ix$
^1(
NoSeries1(13) = "十三" Y`d@4*FN$
NoSeries1(14) = "十四"
TO.STK`
NoSeries1(15) = "十五" RA?_j$
NoSeries1(16) = "十六" JI
cm$
6TTu[*0NT
NoSeries2(1) = "㈠" "U+c`V=w
NoSeries2(2) = "㈡" Y=?{TX=6<[
NoSeries2(3) = "㈢" 8!YQ9T [
NoSeries2(4) = "㈣" <v/aquLN
NoSeries2(5) = "㈤" 4>OS2b`.;
NoSeries2(6) = "㈥" $41<ldJ
NoSeries2(7) = "㈦" Zu2`IzrG#
NoSeries2(8) = "㈧" (:F]@vT
NoSeries2(9) = "㈨" /GX>L)
NoSeries2(10) = "㈩" vG7Mk8mIr
]=9 d'WL
NoSeries5(1) = "①" ZjY
,k
NoSeries5(1) = "②"
+ K`.ck
NoSeries5(3) = "③" (EvYrm4
NoSeries5(4) = "④" k`&FyN^)
NoSeries5(5) = "⑤" %@)R
NoSeries5(6) = "⑥" *JfGGI_E
NoSeries5(7) = "⑦" w>8kBQ?b
NoSeries5(8) = "⑧" $gN\%X/n"1
NoSeries5(9) = "⑨" v9FR
NoSeries5(10) = "⑩" M$Bb,s
1zCu1'Wv
''D7Bat@
NoSeriesRM(1) = "I" egBk7@Ko
NoSeriesRM(2) = "II" \ 4^zY'
NoSeriesRM(3) = "III" j}d):3!
NoSeriesRM(4) = "IV" W -HOl!)
NoSeriesRM(5) = "V" S(nQ?;9,
NoSeriesRM(6) = "VI" SP/b4
NoSeriesRM(7) = "VII" :5$ErI
NoSeriesRM(8) = "VIII" >F:1a\c
NoSeriesRM(9) = "IX" [PB73q8
NoSeriesRM(10) = "X" lJN#_V0qW
NoSeriesRM(11) = "XI" cJbv,RV<
NoSeriesRM(12) = "XII" `"PHhCG+z
NoSeriesRM(13) = "XIII" Thu_`QP^
NoSeriesRM(14) = "XIV"
GyMN;|
NoSeriesRM(15) = "XV"
~ @*q8lC
NoSeriesRM(16) = "XVI" M$.bC0}T
_KKux3a
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) B8?9L8M}
|&xaV-b9W
If i = vbNo Then rk4KAX_[
Exit Sub 1L+hI=\O
End If SvQ|SKE':
jMCd`Q]K
If Me.chkSuper.Value Then 4w'&:k47
Me.txtStatus.Text = "检查修改所有的上标格式" *aC[Tv[-P
6rj iZ%
CheckSuperScript ^*4#ZvpG2
QlV(D<
End If I\1"E y
Q)BSngW+
If Me.chkStyle.Value Then )P? F ni}
Me.txtStatus.Text = "设置样式,请稍候...." EpKZ.lCU
DoEvents YFPse.2$a
CeateOrModifyStyle >N 2kWSa
End If V= p"1!(
Fx}v.A5
:\'1x
D\+x/r?-I
ClearDomain 'jMs&
p`rjWpH
GD)paTwO<
8t=O=l\
If Me.chkLIST.Value Then kr|r-N`
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" 2O@ON/
XR9kxTuk
ConvertListToOrdinary ("ix!\1K@
End If !/tV}.*
H! 5Ka#B
W1<*9
O
Dim pType As String, trimpTEXT As String y9]7LETv\M
If Me.chkNum.Value = True Then R+0gn/a[ G
Me.txtStatus.Text = "转换全角数字形式为半角" DBHHJD/q
ConvertWidth "1", "1" -?:8sv*X
DoEvents 0^Vw^]
w
ConvertWidth "2", "2" rqiH!R
DoEvents qTRP2rH,L&
ConvertWidth "3", "3" 5Za<]qxr
DoEvents rPBsr<k#5
ConvertWidth "4", "4" <}A6 )=T
DoEvents rir,|y,
ConvertWidth "5", "5" =,q/FY:
DoEvents 2;*G!rE&*`
ConvertWidth "6", "6" }~=<7|N.
DoEvents re/u3\S
ConvertWidth "7", "7" 1%vE 7a>{
DoEvents
F):kF_ho
ConvertWidth "8", "8" /Dd x[P5p=
DoEvents Lg(G&ljE@k
ConvertWidth "9", "9" /m;Bwu
DoEvents 37:tu7e~c
ConvertWidth "0", "0" j^8HTa0Cy|
DoEvents -T1R}ew*t
ConvertWidth "a", "a" Ix,b -C~
DoEvents {d'B._#i
ConvertWidth "b", "b" ~PQR_?1
DoEvents ;<[!;8
ConvertWidth "c", "c" IKnf
DoEvents c^'bf_~-W
ConvertWidth "d", "d" OmZZTeGg1s
DoEvents Ye4
&4t
ConvertWidth "e", "e" 9S17Lr*c
DoEvents UMBeY[?
ConvertWidth "f", "f" Z:,\FB_U
DoEvents 'YGP42#
ConvertWidth "g", "g" dc4XX5Z
DoEvents ^GrSvl}v'
ConvertWidth "h", "h" Z.Z31yF:f
DoEvents l{.PyU5)
ConvertWidth "i", "i" [h-NX
DoEvents ~,};FI
ConvertWidth "j", "j" jg'"?KSU~
DoEvents 1|-C(UW>
ConvertWidth "k", "k" B8T5?bl
DoEvents T"3LO[j+
ConvertWidth "l", "l" mt0v (
DoEvents 5wh(Qdib
ConvertWidth "m", "m" 0
%,W5w
DoEvents 04=RoYMM
ConvertWidth "n", "n" 87 B$
ConvertWidth "o", "o" '_Pb\
jK
ConvertWidth "p", "p" *oIIcE4g7
ConvertWidth "q", "q" e 2NF.
ConvertWidth "r", "r" )'g4Ty
ConvertWidth "s", "s" *y|w9rp
ConvertWidth "t", "t" ]AM*9!
ConvertWidth "u", "u" F=5vAv1
ConvertWidth "v", "v" ZVJ6 {DS/
ConvertWidth "w", "w" i( +Uv tgs
ConvertWidth "x", "x" NX(
IX6^y
ConvertWidth "y", "y" g8&& W_BI
ConvertWidth "z", "z" *^7^g!=z2
ConvertWidth "A", "A" G7,v:dlK
ConvertWidth "B", "B" R+He6c!?9
ConvertWidth "C", "C" 35AH|U7b
ConvertWidth "D", "D" 9Z=hg[`]<
ConvertWidth "E", "E" IcQpbF0
ConvertWidth "F", "F" n#WOIweInf
ConvertWidth "G", "G" %La/E#
ConvertWidth "H", "H" 9
;vES^
ConvertWidth "I", "I" Gdx%#@/
ConvertWidth "J", "J" ow
6\j:
$?
ConvertWidth "K", "K" |5FEsts[
ConvertWidth "L", "L" z;@<J8I
ConvertWidth "M", "M" (QqeMG,Y
ConvertWidth "N", "N" `FNU-
I4s
ConvertWidth "O", "O" G.iQ\'1_h
ConvertWidth "P", "P" :N^B54o%6
ConvertWidth "Q", "Q" q[vO
mes
ConvertWidth "R", "R" ;,TT!vea
ConvertWidth "S", "S" g0a!auWM
ConvertWidth "T", "T" RT'5i$q[
ConvertWidth "U", "U" k5bv57@
ConvertWidth "V", "V" K*'AjT9wX+
ConvertWidth "W", "W" qFDy)4H)
ConvertWidth "X", "X" &WAU[{4W
ConvertWidth "Y", "Y" f>mEX='w
ConvertWidth "Z", "Z" U
v>^ Z2
ConvertWidth "^l", "^p" $^ir3f+
ConvertWidth "(", "(" Ekrpg^3qp"
ConvertWidth ")", ")" w^HI
lA
A>F&b1
End If o](ORS$~
yGWl8\,j0
With ActiveDocument cdH`#
X
Dim tbl As Table H&F2[ j$T
For Each tbl In .Tables &1=,?s]&
tbl.Rows.Alignment = wdAlignRowCenter ho~WD'i
tbl.Range.Font.NameFarEast = "楷体" xOg|<Nnl
tbl.Range.Font.NameAscii = "Times New Roman" `LIlR8&@aX
tbl.Range.Font.Size = 10.5
#z.\pd
Next i>G:*?a
Set tbl = Nothing d3?gh[$
End With ujX\^c
V_v+i c^
+JD^5J,-NJ
With ActiveDocument 2fc+PE
~
W8
M3(^
For i = 1 To .TablesOfContents.Count yJqDB$0
.TablesOfContents(i).Delete 0{o 8-#
Next 6rG7/
hZUS#75M5
Yu&\a?]\2
X%iqve"{nB
paraTotal = .Paragraphs.Count RN1KM
paraCounter = 1 L7(.dO0C
]k1N-/
LastTitle0No = 0 =8p[ (<F=
LastTitle1No = 0 3)&rj 7
LastTitle2No = 0 9S'\&mRl
LastTitle3No = 0 }l]r-
LastTitle4No = 0 Cx(HsJ!,
LastTableNo = 0 s%>u[-9U
LastFigureNo = 0 <>-gQ9
n
Zx^ej\
Dim Sec As Long "4smW>f:%
hN1[*cF
Sec = InputBox("正文从第一节开始?", "节设置", 6) 93w$ck},?G
If Sec = 0 Then DX3jE p2
Exit Sub >B;S;_5=
End If ?&1%&?cg9
[vY)y\W{
k = 0 aG@GJ@w
Do While (paraCounter < paraTotal) And bContinue C;70,!3
k = k + 1 WwSyw?T
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then WYCDEoqU2
Exit Do +&_n[;
End If /n,a0U/
paraCounter = paraCounter + 1 ;tD?a7
If k Mod 20 = 0 Then )F'hn+(B|G
Me.lbCounter.Caption = paraCounter cY~lDLyB
DoEvents !
c~3 `7v
End If )0;O<G] d
Loop Xe/7rhov
FEa%wS{
c No)LF
Do While (paraCounter < paraTotal) And bContinue +{)V%"{u:
<bv9
X?U
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) +'` ^ N
ShapeHeight = 0 vl%Pg!l
ShapeWidth = 0 T~}g{q,tR
OQuTM[W
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth ={ 190=\9
T[0CD'|E
Select Case ParaType MD> E0p)
Case "【】表格内容" <_bGV
.Paragraphs(paraCounter).Style = "QLNU表格内容" *;t_VlaZ
Case "章" ]Qx-f*
D6
LastTitle0No = LastTitle0No + 1 o1]1I9
'新一章开始,复位其下属标题编号 F>@z&a}(
LastTitle1No = 0 NH1|_2
LastTitle2No = 0 X)9|ZF2`
LastTitle3No = 0 m Ub2U&6(
LastTitle4No = 0 )s 1
Ei9J
F
'HYWH0?
k = Val(ttNo) Dp@m"_1`+
If k = 0 Then '非数字编号章节 2@ZuH^qhk
If ttNo <> NoSeries1(LastTitle0No) Then ?0s&Kz4B
rText = "第" & NoSeries1(LastTitle0No) & ttString _1$+S0G;
Me.ErrMsg.AddItem "章节编号错误:" & ParaText /h&>tYVio
End If )@.ODW;`
Else L#I
Y6t
If Val(ttNo) <> LastTitle0No Then AucX4J<
rText = "第" & LastTitle0No & ttString Z>@\!$Mc
Me.ErrMsg.AddItem "章节编号错误:" & ParaText !:g\Fe]
End If Rg~[X5
N *n?hN
End If 2b#>~
:J5CmU$
'章段落设置 1b!
5h
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 <("P5@cExU
.Paragraphs(paraCounter).Style = "QLNU章节" O,I7M?dRf
.Paragraphs(paraCounter).Range.Select `5~
<)
Selection.EndKey unit:=wdLine ju"j?2+F
tc = Replace(rText, vbCr, "") mA
3yM#
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False ,(#n8|q4
Case "一级标题" 9'p
pb
LastTitle1No = LastTitle1No + 1 AlgVsE%Va
'新一级标题开始,复位其下属标题编号 N9f;X{
LastTitle2No = 0 [vCZD8"Y8
LastTitle3No = 0 rIH+X2x
LastTitle4No = 0 kRz qgVr%
uC`)?f*I
If ttNo <> NoSeries1(LastTitle1No) Then 1;M
Uemnx`
rText = NoSeries1(LastTitle1No) & "、" & ttString ~BI! l
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText =OA7$z[
End If O}Do4>02
iF+50d
N_.`5I;e
'一级标题段落设置 格式:一、标题内容 1g|6
,J
.Paragraphs(paraCounter).Range.Text = rText r3Ih]|FK#
.Paragraphs(paraCounter).Style = "QLNU一级标题" dF
pP_U
.Paragraphs(paraCounter).Range.Select <,T#* fg
Selection.EndKey unit:=wdLine 'BEM:1)
tc = Replace(rText, vbCr, "") :4238J8
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False A)^A2xZQ
Case "二级标题" SY2((!n._
LastTitle2No = LastTitle2No + 1 !P _'n
'新二级标题开始,复位其下属标题编号 WOGMtT%
LastTitle3No = 0 v{U1B
LastTitle4No = 0 &\r_g!Mh
K9'AYFse
If ttNo <> NoSeries1(LastTitle2No) Then gJZ9XLPC
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString b@[5xv\J
ErrMsg.AddItem "二级标题编号错误:" & ParaText C1~Ro9si
End If vnz}Pr! c
Tj=g[)+K
'二级标题段落设置 格式:(一)、标题内容 !r0 z3^*N
.Paragraphs(paraCounter).Range.Text = rText FEg&EYI
.Paragraphs(paraCounter).Style = "QLNU二级标题" =j1Q5@vS
2)
A$bx
.Paragraphs(paraCounter).Range.Select S#7.y~e\
Selection.EndKey unit:=wdLine ds
QGj&
tc = Replace(rText, vbCr, "") rMUQh~a/
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False C?b_E
]p~,C*UH0
Case "三级标题" s0'Xih sw6
LastTitle3No = LastTitle3No + 1 v*e=oyx[
'新三级标题开始,复位其下属标题编号 zhde1JE
LastTitle4No = 0 K:sC6|wG
Dr"F5Wbg
If Val(ttNo) <> LastTitle3No Then N
&vQis
rText = LastTitle3No & ". " & ttString
nHL(v
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText 3^AS8%qG
af7\2g3*
End If _$4vk
'三级标题段落设置 格式:1. 标题内容 ( KG>lTdN
.Paragraphs(paraCounter).Range.Text = rText D#&N?<}
.Paragraphs(paraCounter).Style = "QLNU三级标题"
B3Esfk
.Paragraphs(paraCounter).Range.Select F(:]lM|
Selection.EndKey unit:=wdLine ?Wp{tB9N0
tc = Replace(rText, vbCr, "") wsfn>w?!V
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False 4,R1}.?BzJ
Case "四级标题" i+.b R.WO
LastTitle4No = LastTitle4No + 1 nF|m*_DW
QGd"Z lQ
If Val(ttNo) <> LastTitle4No Then b;sjw5cm_
rText = "(" & LastTitle4No & "). " & ttString `L}Irt}
ErrMsg.AddItem "四级标题编号错误:" & ParaText !Lj+&D|z
BhJ~ jV"
End If 6~Xe$fP(
'四级标题段落设置 格式:(1). 标题内容 V0
OT _F
.Paragraphs(paraCounter).Range.Text = rText ^)/oDyO
.Paragraphs(paraCounter).Style = "QLNU四级标题" )kNyl@m
.Paragraphs(paraCounter).Range.Select dCMW
v~>
Selection.EndKey unit:=wdLine ;tLu
tc = Replace(rText, vbCr, "") qdVExO&
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 4 ", PreserveFormatting:=False 0bk094
y3C$%yv0
Case "表格标题" lV !@h}mG
LastTableNo = LastTableNo + 1 #9Dixsl*Q
Eq/%k $6#1
If ttNo <> CStr(LastTableNo) Then xo_Es?
rText = "表" & LastTableNo & ". " & ttString ;-65~i0Iu
ErrMsg.AddItem "表格编号错误:" & ParaText g8w5X!Z
o%A@
OY
End If )<jT;cT!&
=2[cpF]
'表格名称段落设置 格式:表1. 表格名称
<:BhV82l
.Paragraphs(paraCounter).Style = "QLNU表格标题" hu
qQ0
xe = Replace(rText, vbCr, "") enJE#4Z5&s
.Paragraphs(paraCounter).Range.Select r&ex<(I{
Selection.MoveEnd wdCharacter, -1 '选择范围包括行尾的换行符。 m)?cXM
Selection.Range.Text = xe x:Kca3p v_
Selection.EndKey $
V"7UA22
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False 5gbJTh<JU
X\1'd,V
Case "表格首行" u_U51C\rb
.Paragraphs(paraCounter).Style = "QLNU表格首行" f8
M=P.jz
Case "图片标题" jW+L0RkX
LastFigureNo = LastFigureNo + 1 bKH8/*Yk
%.D@{O
If ttNo <> CStr(LastFigureNo) Then -xf=dzm)
rText = "图" & LastFigureNo & ". " & ttString . RNQlh3
ErrMsg.AddItem "表格编号错误:" & ParaText yf7p0;$?
eq\{*r"DCK
End If ~8EG0F;t
'图片名称段落设置 格式:图1. 图名称 "V cG3.
.Paragraphs(paraCounter).Range.Text = rText SNd]c
.Paragraphs(paraCounter).Style = "QLNU图片标题"
Eyu?T
.Paragraphs(paraCounter).Range.Select E8
Wgm
8
Selection.EndKey unit:=wdLine t=ry\h{Pc
xe = Replace(rText, vbCr, "") yeNC-U<
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False QJ
s/0iw
Case "正文" }3!.e
'正文名称段落设置 qN_jsJ
.Paragraphs(paraCounter).Style = "QLNU正文" l4d2i;4BK
Case "文献条目" hU
`H\LE
With .Paragraphs(paraCounter) EmR#)c~(W
'.Range.Select =j
mn
'Selection.ClearFormatting {N$G|bm]u<
'.Range.Find.Execute findtext:=rText, replacewith:=strSeperator 'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” =lG5Kc{B
.Style = "QLNU参考文献" q-}J0vu\K
End With rT
~qoA\
Case "图表注解" 0Q5ua`U
With .Paragraphs(paraCounter) G}\E{VvWh
.Range.Font.NameFarEast = "楷体" ,Tyh._sa
.Range.Font.NameAscii = "Times New Roman" 5X-cDY*|
.Range.Font.Size = 9 '小5号字 A{hWFSv
|nj%G<
.Alignment = wdAlignParagraphCenter Jj'~\j
.LeftIndent = 0 CtA0W\9w5a
.RightIndent = 0 vf(\?Js,
.FirstLineIndent = 0 rf8`|9h"7
.LineSpacing = 12 ^@`dsll
.LineSpacingRule = wdLineSpaceExactly =GjxqIv
.LineUnitAfter = 0 #sEbu^
.LineUnitBefore = 0 _A\c 6#
.OutlineLevel = wdOutlineLevelBodyText
p_QL{gn
.PageBreakBefore = False p]#%e0
.RightIndent = 0 MqI!i>
.WordWrap = True .)mw~ 3]
.LineUnitAfter = 0.5 -U=bC
B;':Eaa@
End With @Tzh3,F2
Case Else ZuF-$]oL&
'不作处理 E7axINca
End Select kf$0}T`
gKS0!U
'含有inlineshape的段落处理 O.*, e
If ShapeHeight > 30 Then J%_
:A"
.Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle '对有图片的段落设置为单倍行距 W 6~B~L
End If PhM3?$
e p;_'
If (ShapeWidth + ShapeHeight) > 150 Then m`-{ V<(M
.Paragraphs(paraCounter).Style = "QLNU图片段落" C(_xqn
End If TP oP%Yj"
c X553&
'段落计数器递 hun/H4f|
paraCounter = paraCounter + 1 y_8 8I:O
Me.lbCounter.Caption = "当前检测段落:" & paraCounter 6kKIDEX
Me.txtStatus.Text = ParaText Zl.}J,0F
DoEvents t1.5hsp
Loop r!etj3
End With )fR'1_
#2&_WM!
msg = "" >9|/sH@W
c0jC84*v
For i = 0 To Me.ErrMsg.ListCount - 1 dd>stp
msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) ?!~CX`eMZ
Next dM 7-,9Vc
!K1[o'o#
a3037~X
\ey3i((L
Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg ?E2/
CM
Me.cmdCheck.Enabled = True Pd\S{ Y~wk
Me.txtStatus.Visible = True oO>mGl36H
Me.lbParaType.Visible = False m^Btr
[*#ms=Zdc
bContinue = False 5>JrTO5
End Sub ?
S>"yAoe
O6;7'
Sub CheckPara(ByRef ChKRange As Range, ParaType As String, ReplaceTEXT As String, TitleString As String, TitleNo As String, shpCounter As Long, MaxShpHeight As Long, TotalShpWidth As Long) >t
O(S
Dim pTEXT As String hHdH#-O:4"
y#^d8
}+
pTEXT = ChKRange.Text -2mm
5E~N
j#0@%d
ParaType = "其它" SUfl`\O
TitleString = pTEXT Hc4]2pf
TitleNo = "N/A" uQ{ &x6.1
sL
XQ)Ce
shpCounter = ChKRange.InlineShapes.Count {v56k8uZ
If shpCounter <> 0 Then D'#Wc#b
MaxShpHeight = 0: TotalShpWidth = 0 k|nv[xY0
For i = 1 To shpCounter Bi)1*
k = ChKRange.InlineShapes(i).Height 4 ?,N;Q
l = ChKRange.InlineShapes(i).Width +dk}$w[g
If k > MaxShpHeight Then $ T. c>13
MaxShpHeight = k Z@ *^4Ve
End If ep Eg6
TotalShpWidth = TotalShpWidth + l ED @9,W0
Next ~(%nnG6x
If MaxShpHeight > 60 Or TotalShpWidth > 150 Then &jf :7y
Exit Sub 7
rOziKZ"
End If e&E""ye
End If ,)nO
Ylll4w62N
'空行 u-At k-
2M
If Len(pTEXT) <= 2 Then M"#xjP.
Exit Sub y}5H<ZcXA
End If z'
MOuz~Y
c63DuHA*C
soXeHjNl
'是否为表格中的文字 zVYX#- nv
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then '$PiyM|V
ParaType = "表格内容" vWcU+GBZI
k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) INE8@}e
If k = 1 Then Edc< 8-
ParaType = "表格首行" R-"A*/A 2
End If X4lz?Y:*
Exit Sub Lt.a@\J'_
End If 5EIh5Y EU>
!iA0u
'例外情况:脚注 ,D3?N2mB
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then ;dNKe.`Dg
ParaType = "脚注" \;}F6g
Exit Sub ;zIAh[z
End If [GX5jD#
1pVagLlb:7
'例外情况:尾注 :03w k)
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then m49
GCo k+
ParaType = "尾注" 'q8T*|/
Exit Sub 6+e@)[l.zc
End If ?
A;x%8}
sME3s-
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then )VID
;l;4
ParaType = "页眉页脚" lh&Q{t(+8
Exit Sub q<yp6Q3^
End If vZmM=hW ~
]i)m
#7+oM8b
With regEX #)2'I`_E
.Global = True xg k~y,F
KQj5o>} 6
.Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" g
N
Xg
If regEX.Test(pTEXT) Then a1_7plg
ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") x-+Hy\^@|
TitleString = regEX.Replace(pTEXT, "$3") 0p:FAvvNI
TitleNo = regEX.Replace(pTEXT, "$1") L\X
nTL{
ParaType = "章" (2Z-NVU#
Exit Sub B)O{+avu
End If %:sQ[^0
fa;\4#
.Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" &aqF||v%)
If regEX.Test(pTEXT) Then +dcB
h Dq
ParaType = "一级标题" PW x9CT
regEX.Execute (pTEXT) G<l+94(
ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") u1xCn\
TitleString = regEX.Replace(pTEXT, "$3")
vX;WxA<