Dim bContinue As Boolean M:{Aq&.
(S?Y3l|
Dim regEX As New RegExp rv(?%h`
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 9$Z0mz k
Qj;{Z*l%+
Dim LastTitle0String As String, LastTitle0No As Long tV`=o$`
Dim LastTitle1String As String, LastTitle1No As Long
q:TNf\/o
Dim LastTitle2String As String, LastTitle2No As Long g+4y^x(X@1
Dim LastTitle3String As String, LastTitle3No As Long ~^V&n`*7D
Dim LastTitle4String As String, LastTitle4No As Long Dr
kTM<
Dim LastTitle5String As String, LastTitle5No As Long L"%SU
Dim LastTabelString As String, LastTableNo As Long w$6Z}M1d
Dim LastFigureString As String, LastFigureNo As Long R-j*fO}
GPK\nz}
Dim strSeperator As String DegbjqZ#
cO*g4VL"[
Sub ConvertWidth(fTEXT As String, rText As String) 8ZVQM7O
Selection.Find.ClearFormatting a
\1QnCy
Selection.Find.Replacement.ClearFormatting .WqqP
Selection.Find.Wrap = wdFindContinue Lr D@QBT
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText j}eb
_K+I
DoEvents DkEv1]6JI_
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True L;%w{,Ji
End Sub ~(ke'`gJ0-
e5>'H!)
Sub ClearDomain() V7Cnu:0_
With Selection.Find xlS*9>Ij
.ClearFormatting f4b9o[,s2e
.Replacement.ClearFormatting P .m@|w&.K
.Wrap = wdFindContinue .Mb[j1L^
Me.txtStatus.Text = "清除所有域代码" ur\6~'l4
DoEvents L|T?,^
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False
Rbf6/C
End With ,
:#bo]3
End Sub 32<D9_
Qk:Lo*!
Private Sub cmdCheck_Click() mGj)Zrx>
bContinue = True 5M~{MdF|.
Dim NoSeries1(1 To 16) As String P,{Q k~iu
Dim NoSeries2(1 To 16) As String p@su:B2Rl
Dim NoSeries5(1 To 16) As String 2C
O/K_Q
Dim NoSeriesRM(1 To 16) As String KU/r"lMNlU
Dim paraTotal As Long, ParaText As String 'R79,)|;[
Dim ttString As String, ttNo As String #BUq;5
7TMq#Pb
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long d"9tP&
Q
>8"Svt$
Me.txtStatus.Visible = True M% \T5
Me.lbParaType.Visible = True b4e~Z
Me.cmdCheck.Enabled = False su1
lv#
SQ_?4 s::
j)mU`b_
3!{imQT
P3&s<mh
Dim ParaType As String, rText As String D4!;*2t
lx%c&~.DiB
Selection.WholeStory #dWz,e3
Selection.NoProofing = True tF`L]1r>
y9 {7+]
tm1 = Now `
Npa/Q
THp_ dTD
ActiveWindow.View.Type = wdNormalView "/aZ*mkjfJ
Xb%q9Z
NoSeries1(1) = "一" K=[7<b,:3
NoSeries1(2) = "二" \5r^D|Rp}
NoSeries1(3) = "三" 9:USxFM
NoSeries1(4) = "四" z3tx]Ade
NoSeries1(5) = "五" 6(bN*.
NoSeries1(6) = "六" [Y
.8C$0
NoSeries1(7) = "七" @|anu&Hm
NoSeries1(8) = "八" xz8e1M
NoSeries1(9) = "九" ltNCti{Q
NoSeries1(10) = "十" iWf+wC|
NoSeries1(11) = "十一" G&g;ROgY
NoSeries1(12) = "十二" 0+FPAqX
NoSeries1(13) = "十三" E(r_mF7:
NoSeries1(14) = "十四" V#7,vas
NoSeries1(15) = "十五" ,=u;1
NoSeries1(16) = "十六" XIl<rN@-
N>H@vt~
NoSeries2(1) = "㈠" yxt"vm;
NoSeries2(2) = "㈡" L7C ;l,ot
NoSeries2(3) = "㈢" |IcW7(
NoSeries2(4) = "㈣" F]
c\Qt
NoSeries2(5) = "㈤" "[_j8,t`
NoSeries2(6) = "㈥" .`OU\LA
NoSeries2(7) = "㈦" F}_b7|^
NoSeries2(8) = "㈧" ,TQec:B
NoSeries2(9) = "㈨" XjG S.&'I
NoSeries2(10) = "㈩" >&PM'k
k<<
x}=
NoSeries5(1) = "①" VhUWws3E
NoSeries5(1) = "②" m^3x%ENZ
NoSeries5(3) = "③" \)~d,M}kK
NoSeries5(4) = "④" !/XNp QP
NoSeries5(5) = "⑤" ,<Q
NoSeries5(6) = "⑥" pWV_KS
NoSeries5(7) = "⑦" d?*]/ZiR
NoSeries5(8) = "⑧" PlkZ)S7C
NoSeries5(9) = "⑨" 6<];}M_{
NoSeries5(10) = "⑩" H0af u)$,
|H?t+Dyn)q
+ `
|A/w
NoSeriesRM(1) = "I" s:3[#&PQpN
NoSeriesRM(2) = "II" .Fo#Dmq3
NoSeriesRM(3) = "III" "JB4Uaa
NoSeriesRM(4) = "IV" )UKX\nD"0
NoSeriesRM(5) = "V" -#|;qFD]
NoSeriesRM(6) = "VI" l)%PvLbL
NoSeriesRM(7) = "VII" Tx;a2:6\[
NoSeriesRM(8) = "VIII" 7?Wte&C];p
NoSeriesRM(9) = "IX" ..)J6L5l
NoSeriesRM(10) = "X" (s3k2Z
NoSeriesRM(11) = "XI" E!9WZY
NoSeriesRM(12) = "XII" k H.dtg_
NoSeriesRM(13) = "XIII"
A(FnU:
NoSeriesRM(14) = "XIV" FCEy1^u
NoSeriesRM(15) = "XV" [CJ<$R !
NoSeriesRM(16) = "XVI" ^K?-+
U]cXE1c>F
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) qbv\uYow3k
7iP+!e}$.
If i = vbNo Then o}rG:rhIh
Exit Sub h9)S&Sk{s
End If ybBmg'198
|R}=HsYey
If Me.chkSuper.Value Then >w
S'z]T9
Me.txtStatus.Text = "检查修改所有的上标格式" e(0OZ_ w
nI*.(+h
CheckSuperScript <fUo@]Lv
io4<HN
End If Cyg2o<O@
) E^S+ps
If Me.chkStyle.Value Then V`I4"}M1
Me.txtStatus.Text = "设置样式,请稍候...." 7}kJp%-
DoEvents ! ?g+'
OM
CeateOrModifyStyle VQ9A/DH/
End If E-z5mX.2
=^4Z]d
;st0Ekni)
oYqHl1cs
ClearDomain ;,f\Wf"BW
~|+ ~/
*ub2dH4/
m+(Cl#+
If Me.chkLIST.Value Then y :;.r:
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式"
@2>UR9j
k =! Q
ConvertListToOrdinary
{MgRi7
End If xKUL}>8
6
VEB2F
n28JWkK8
Dim pType As String, trimpTEXT As String [dJ!JT/X{
If Me.chkNum.Value = True Then PgkU~68`
Me.txtStatus.Text = "转换全角数字形式为半角" Ob$``31{s
ConvertWidth "1", "1" w(oK
DoEvents hF2e--
ConvertWidth "2", "2" M"3"6U/ e
DoEvents , PlH|
ConvertWidth "3", "3" ,H]%4
@]|o
DoEvents 6w^P{%ul
ConvertWidth "4", "4" ( /]'e}
DoEvents Z8SwW<{ $
ConvertWidth "5", "5"
2v{WX
DoEvents FLi'}C
ConvertWidth "6", "6" &A0OYV3i.
DoEvents z<%P"
ConvertWidth "7", "7" N
r
4}x7
DoEvents 6
5govor
ConvertWidth "8", "8" %f]#P8VP
DoEvents Aw#<: 6-
ConvertWidth "9", "9" _uIS[%4g
DoEvents FZi@h
ConvertWidth "0", "0" Sm'Tz&!
DoEvents h( | T.
ConvertWidth "a", "a" K\K& K~Z
DoEvents Hyb(.hlZh
ConvertWidth "b", "b" }3#\vn0gT
DoEvents 4XpWDfa.}
ConvertWidth "c", "c" BSm"]!D8*
DoEvents ,L<JG
ConvertWidth "d", "d" ]+D@E2E
DoEvents rB[
J*5v
ConvertWidth "e", "e" #mQ@4k9i
DoEvents J K/{IkF
ConvertWidth "f", "f" 6K.2VY#
DoEvents As,`($=
ConvertWidth "g", "g" 6v)TCj/
DoEvents SQN?[v
ConvertWidth "h", "h" N5
?bflY
DoEvents ^k6_j\5j
ConvertWidth "i", "i" ?ko#N?hgI
DoEvents D3o,2E(o
ConvertWidth "j", "j" ] ?DU8
DoEvents B>2R-pa4~
ConvertWidth "k", "k" ` Ig5*X4|
DoEvents V*?cMJ_G
ConvertWidth "l", "l" F^%w%E\
DoEvents _b&|0j:Ud
ConvertWidth "m", "m" m+c-"arIpA
DoEvents uxfh?gsL
ConvertWidth "n", "n" )iN
;1>
ConvertWidth "o", "o" f}-'67*Y
ConvertWidth "p", "p" Hx.|5n,5
ConvertWidth "q", "q" Q|_F
P:
ConvertWidth "r", "r" ~]KdsT(=_
ConvertWidth "s", "s" k|;a"56F
ConvertWidth "t", "t" JxVGzb`8
ConvertWidth "u", "u" Vl_6nY;
ConvertWidth "v", "v" gFaZ ._
ConvertWidth "w", "w" }1#m+ (;
ConvertWidth "x", "x" Hv;xaT<}V
ConvertWidth "y", "y" GHv6UIe&
ConvertWidth "z", "z"
x=*Y|
ConvertWidth "A", "A" *Soi
ConvertWidth "B", "B" R$&;
ConvertWidth "C", "C" m.<_WXH
ConvertWidth "D", "D" B!RfPk1B<*
ConvertWidth "E", "E" u zZ|0
ConvertWidth "F", "F" U^PXpNQ'
ConvertWidth "G", "G" o#qdgZ
ConvertWidth "H", "H"
<F
9-$_m
ConvertWidth "I", "I" Hx#YN*\.M
ConvertWidth "J", "J" qTuR[(
ConvertWidth "K", "K" Mq>
4!
ConvertWidth "L", "L" 6"-$WUlg
ConvertWidth "M", "M" nb_/1{F
ConvertWidth "N", "N" $ f:uBhM
ConvertWidth "O", "O" r^
r+h[V
ConvertWidth "P", "P" _}R$h=YD
ConvertWidth "Q", "Q" ^6W}ZLp
ConvertWidth "R", "R" k~[jk5te
ConvertWidth "S", "S" LK'(OZ
ConvertWidth "T", "T" H{}&|;0
ConvertWidth "U", "U" +#IUn
ConvertWidth "V", "V" P+CV4;Xz
ConvertWidth "W", "W" p$Tk;;wm
ConvertWidth "X", "X" j97+'AKX
ConvertWidth "Y", "Y" ^|/mn!7wD
ConvertWidth "Z", "Z" ?mH=3
:~
ConvertWidth "^l", "^p" ifn=De3+
ConvertWidth "(", "(" zhJeTctRz
ConvertWidth ")", ")" O nXo0PV/(
o#m31*o
End If {it.F4.
D6ZHvY8R
With ActiveDocument MdBmq/[O
Dim tbl As Table oG,>Pk
For Each tbl In .Tables O,%UNjx9K
tbl.Rows.Alignment = wdAlignRowCenter mE~WE+lw9
tbl.Range.Font.NameFarEast = "楷体" y [Vd*8
tbl.Range.Font.NameAscii = "Times New Roman" u&~Xgq5[
tbl.Range.Font.Size = 10.5 5_9`v@-4_
Next }3z3GU8Q-
Set tbl = Nothing X'OpR
End With k0Vri$x
u$?!
A'EI1_3{
With ActiveDocument {K|?i9K
+`>7cy%cZ
For i = 1 To .TablesOfContents.Count m>uG{4<-
.TablesOfContents(i).Delete MHwfJ{"zo
Next W|<c[S
KM &P5}
8^_:9
&) i
-ssb|r
paraTotal = .Paragraphs.Count 'o&d!
paraCounter = 1 S*l/
Sa@
D`XXR}8V
LastTitle0No = 0 ;@;aeu
LastTitle1No = 0 w
UvE
LastTitle2No = 0 ? 2}%Rb39
LastTitle3No = 0 S?v/diK ]J
LastTitle4No = 0 H;`F}qQ3
LastTableNo = 0 l,|Llb
LastFigureNo = 0 CPZ{
SK}jhm
"y
Dim Sec As Long Fo3*PcUv
,i_+Z
|Ls
Sec = InputBox("正文从第一节开始?", "节设置", 6) ;f%@s1u
If Sec = 0 Then =1[_#Moc6
Exit Sub Zfs-M)
End If 8~U
^G[!
?0~g1"Y-*K
k = 0 ykQb;ZP8jh
Do While (paraCounter < paraTotal) And bContinue qT
?{}I
k = k + 1 ~W@dF~r
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then OP!R>|
Exit Do (aYu[ML
End If
`n>/MY
paraCounter = paraCounter + 1 cyNE}
If k Mod 20 = 0 Then O/eZ1YAC
Me.lbCounter.Caption = paraCounter ?;tPqOs&
DoEvents z$&B7?
End If |5flvkid
Loop s8
WB!x {t
Y%i<~"k
CDJ@Tdp
Do While (paraCounter < paraTotal) And bContinue rl.K{Uad
| V(sCF
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) 7nPg2K&
ShapeHeight = 0 59nRk}^$se
ShapeWidth = 0 ]*NYuEgc
@,<jPR.
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth /3)\^Pof
HD<$0M|
Select Case ParaType #JYl%=#,
Case "【】表格内容" C2<TR PT
.Paragraphs(paraCounter).Style = "QLNU表格内容" :s_o'8z7L
Case "章" q%,86A>
LastTitle0No = LastTitle0No + 1 knO
X5UnS
'新一章开始,复位其下属标题编号 gb,ZN^3<-
LastTitle1No = 0 ltOS()[X
LastTitle2No = 0 g:uVl;>
LastTitle3No = 0 P 0\`4Cr!
LastTitle4No = 0 !$n@:W/
bofI0f}5.
k = Val(ttNo) La6
9or
If k = 0 Then '非数字编号章节 &_3#W.w~Z
If ttNo <> NoSeries1(LastTitle0No) Then @*rMMy 4
rText = "第" & NoSeries1(LastTitle0No) & ttString |2'WSAWG
Me.ErrMsg.AddItem "章节编号错误:" & ParaText jA"}\^%3
End If D@p{EH
Else
fDYTupKXH
If Val(ttNo) <> LastTitle0No Then POk5+^
rText = "第" & LastTitle0No & ttString R\cx-h*
Me.ErrMsg.AddItem "章节编号错误:" & ParaText Um/l{:S
End If OK4r)
:G6CWE
End If 09McUR@
3^KR{N p
'章段落设置 9{(q[C5m
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 #j7&2L
.Paragraphs(paraCounter).Style = "QLNU章节" i).Vu}W#S
.Paragraphs(paraCounter).Range.Select MO0t
Selection.EndKey unit:=wdLine yoGG[l2k>s
tc = Replace(rText, vbCr, "") & *tL)qKDc
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False =9TwBr.CJ
Case "一级标题" DD/B\
LastTitle1No = LastTitle1No + 1 `Fcr`[
'新一级标题开始,复位其下属标题编号 "(jD*\8x
LastTitle2No = 0 bB0/FiY7o
LastTitle3No = 0 0;x&\x7K
LastTitle4No = 0 W7C1\'T
~> )>hy)
If ttNo <> NoSeries1(LastTitle1No) Then _#M4zO7
rText = NoSeries1(LastTitle1No) & "、" & ttString a6zWg7 PN
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText 5ppr;QaB
End If ,i6U*
QcWg
~_i=hx
'一级标题段落设置 格式:一、标题内容 ms3"
.Paragraphs(paraCounter).Range.Text = rText 7x.j:{2
.Paragraphs(paraCounter).Style = "QLNU一级标题" yVVyWte,
.Paragraphs(paraCounter).Range.Select Dlz0*eHD
Selection.EndKey unit:=wdLine v,opyTwG|
tc = Replace(rText, vbCr, "") $<nD-4p
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False O!>#q4&]
Case "二级标题" xV
sI#`<a
LastTitle2No = LastTitle2No + 1 h% >ZN-K)
'新二级标题开始,复位其下属标题编号 #
Ey_.4S
LastTitle3No = 0 ,fiV xn Q
LastTitle4No = 0 qJ5b;=
F&`%L#s|
If ttNo <> NoSeries1(LastTitle2No) Then LV ]10v6
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString &W3srJo
ErrMsg.AddItem "二级标题编号错误:" & ParaText t[;-gi,,
End If 5OPvy,e6
G5
|nt#>
'二级标题段落设置 格式:(一)、标题内容 #e =E
.Paragraphs(paraCounter).Range.Text = rText L_T+KaQCH
.Paragraphs(paraCounter).Style = "QLNU二级标题" ^PC;fn,I
7%$3`4i`O
.Paragraphs(paraCounter).Range.Select <FR!x#!
Selection.EndKey unit:=wdLine f#Ud=& >j
tc = Replace(rText, vbCr, "") o5RvxGN
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False x?rd9c
/\qzTo
Case "三级标题" .Erv\lv*
LastTitle3No = LastTitle3No + 1 l?b*T#uIk
'新三级标题开始,复位其下属标题编号 '_Q';T_n99
LastTitle4No = 0 )Ko~6.:5H
z(,j)".
If Val(ttNo) <> LastTitle3No Then +P+h$gQ
rText = LastTitle3No & ". " & ttString Lo}T%0"G
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText rR
^o
"*HEXru#B
End If ^:$ShbX"P
'三级标题段落设置 格式:1. 标题内容 cxQ %tL+S&
.Paragraphs(paraCounter).Range.Text = rText XFWE^*e=B
.Paragraphs(paraCounter).Style = "QLNU三级标题" @-
0mE_$[
.Paragraphs(paraCounter).Range.Select OI0@lSAo
<
Selection.EndKey unit:=wdLine 'I}wN5`
tc = Replace(rText, vbCr, "") @/N]_2@8;
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False v6wg,,T
Case "四级标题"
n gJ{az
LastTitle4No = LastTitle4No + 1 ]):>9q$C
'
Hj([N
If Val(ttNo) <> LastTitle4No Then fg,vTpBk
rText = "(" & LastTitle4No & "). " & ttString <
}.!G>X
ErrMsg.AddItem "四级标题编号错误:" & ParaText 45
BpZ~-
E|oOd<z
End If {|0Y
cL
'四级标题段落设置 格式:(1). 标题内容 OK-*TPrc
.Paragraphs(paraCounter).Range.Text = rText T+gH38!e
.Paragraphs(paraCounter).Style = "QLNU四级标题" YHY*dk*|C
.Paragraphs(paraCounter).Range.Select yzl}!& E
Selection.EndKey unit:=wdLine )b%zYD9p
tc = Replace(rText, vbCr, "") QxbG-B^)=
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 4 ", PreserveFormatting:=False x8c>2w;6x^
toU<InN
Case "表格标题" EqBTN07dZS
LastTableNo = LastTableNo + 1 v.sjWF
@+
T33X)h%
If ttNo <> CStr(LastTableNo) Then O9<oq
rText = "表" & LastTableNo & ". " & ttString sSk qU
ErrMsg.AddItem "表格编号错误:" & ParaText ?Vh#Gr
}Q9+krrow
End If 7wY0JS$fz
rmC7!^/
'表格名称段落设置 格式:表1. 表格名称 Rxr?T-
.Paragraphs(paraCounter).Style = "QLNU表格标题" cM<08-:v
xe = Replace(rText, vbCr, "") 4Wvefq"
.Paragraphs(paraCounter).Range.Select dEI!r1~n
Selection.MoveEnd wdCharacter, -1 '选择范围包括行尾的换行符。 [_ uT+q3
Selection.Range.Text = xe GbQg(%2F
Selection.EndKey "9X!Ewm"P
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False Pd;8<UMk
Kv:.bHN}
Case "表格首行" pI.8Ip_r
.Paragraphs(paraCounter).Style = "QLNU表格首行" u^i3 @JuX
Case "图片标题" n'j}u
LastFigureNo = LastFigureNo + 1 :)4c_51 `
Z:<wB#G
If ttNo <> CStr(LastFigureNo) Then n``9H91
rText = "图" & LastFigureNo & ". " & ttString #Ry
Ta
/L
ErrMsg.AddItem "表格编号错误:" & ParaText )Pc>+}D
2[1t
)EW
End If F.@|-wq&
'图片名称段落设置 格式:图1. 图名称 p1.3)=T
.Paragraphs(paraCounter).Range.Text = rText B7Zi|-F
.Paragraphs(paraCounter).Style = "QLNU图片标题" +~:OUR*>
.Paragraphs(paraCounter).Range.Select b&Laxki
Selection.EndKey unit:=wdLine 2dB]Lw@s
xe = Replace(rText, vbCr, "") K:VZ#U(_
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False B>S>t5$
Case "正文" C
Qmozh-
'正文名称段落设置 ^U*1_|Jh
.Paragraphs(paraCounter).Style = "QLNU正文" \J#&]o)Y
Case "文献条目" ;;C2t&(
With .Paragraphs(paraCounter) uvR l`"Y
'.Range.Select
x|c_(
'Selection.ClearFormatting Hj `\Fm*A
'.Range.Find.Execute findtext:=rText, replacewith:=strSeperator 'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” cdGBo4
.Style = "QLNU参考文献"
V_e
End With RU/SJ1wM"
Case "图表注解" I#]pk!
With .Paragraphs(paraCounter) (!efaj
.Range.Font.NameFarEast = "楷体" >o3R~ [
.Range.Font.NameAscii = "Times New Roman" 4MzPm~Ct
.Range.Font.Size = 9 '小5号字 }}rp/16
e7-IqQA{3C
.Alignment = wdAlignParagraphCenter 9@mvG^
.LeftIndent = 0 5yj# 9H
.RightIndent = 0 \"L0d1DK)
.FirstLineIndent = 0 +T4}wm
.LineSpacing = 12 Q`;eI
a6U
.LineSpacingRule = wdLineSpaceExactly WWOt>C~zV
.LineUnitAfter = 0 r=7!S8'
.LineUnitBefore = 0 jS8
B:>
.OutlineLevel = wdOutlineLevelBodyText [#G*GAa6*
.PageBreakBefore = False ^wwS`vPb
.RightIndent = 0 @J qo'\~&
.WordWrap = True M0?%r`
.LineUnitAfter = 0.5 ly_8p63-
A>mk0P)~Q
End With G^.tAO5:f
Case Else >lyE@S s
A
'不作处理
0r i
End Select 8<ev5a
f
SXE@\Afj
'含有inlineshape的段落处理 (c"!&&S^ =
If ShapeHeight > 30 Then q
\fyp\z
.Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle '对有图片的段落设置为单倍行距 =[Z3]#h
End If G;[O~N3n.
l,3,$
If (ShapeWidth + ShapeHeight) > 150 Then darbL_1
.Paragraphs(paraCounter).Style = "QLNU图片段落" 5}! 36SO\
End If 5:5d=7WX
^
uwth
'段落计数器递 Aeo=m}C;
paraCounter = paraCounter + 1 9x8Vsd
Me.lbCounter.Caption = "当前检测段落:" & paraCounter %BT]h3dcSS
Me.txtStatus.Text = ParaText u~JR]
T
DoEvents
^^n (s_g
Loop u
i$4
End With Bu?Qyz2O
m6}_kzFz
msg = "" !mB
`F C
L`wr~E2u
For i = 0 To Me.ErrMsg.ListCount - 1 O
9M?Wk
:
msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) E`C!q
X>
Next suFk<^3
f#m@eb
wq!9wk9
f8=qnY2j
Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg W/ WP }QM
Me.cmdCheck.Enabled = True MU2kA&LH
Me.txtStatus.Visible = True
"^ BA5
Me.lbParaType.Visible = False L:mE)Xq2
% WXl*
bContinue = False Z(tO]tQE
End Sub Nq\)o{<1
CR2.kuM0~
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) ,{msJyacmR
Dim pTEXT As String v@8SMOe%
*8;<w~
pTEXT = ChKRange.Text U 0~BcFpD
c;-NRvVb
ParaType = "其它" F$|:'#KN
TitleString = pTEXT /YU8L
TitleNo = "N/A" x?u@
j7[
-)Vy)hD,
shpCounter = ChKRange.InlineShapes.Count bwP@}(K
If shpCounter <> 0 Then f}4A,%:1
MaxShpHeight = 0: TotalShpWidth = 0 HINk&)FC
For i = 1 To shpCounter c&wiTvRV
k = ChKRange.InlineShapes(i).Height !wfUD2K1
l = ChKRange.InlineShapes(i).Width aaN/HE_
If k > MaxShpHeight Then k\*?<g
MaxShpHeight = k HkhZB^_V
End If vlZmmQeJm
TotalShpWidth = TotalShpWidth + l V
EsM
Next b\o>4T
If MaxShpHeight > 60 Or TotalShpWidth > 150 Then Ie=gI+2
Exit Sub xx7&y!_
End If uV@'898%5
End If s6(md<r
Q)M-f;O
'空行 Q*1'k%7
If Len(pTEXT) <= 2 Then ^-mW k?>
Exit Sub _5(p=Zc
End If matm>3n
*<SXzJ(
,)J>8eV
'是否为表格中的文字 C!+PBk[9
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then qp#Euq6
ParaType = "表格内容" ]GCw3r(!
k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) -b8SaLak
If k = 1 Then )D'#>!Y
ParaType = "表格首行" z[R
dM#L
End If i[FYR;C
Exit Sub {}iS5[H]
End If @"/H
er
!Y7$cU &
'例外情况:脚注 'Z9UqEGV
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then DKem;_6OQ
ParaType = "脚注" /YJBRU2
Exit Sub 0c!^=(
End If pr4y*!|Y$
)1@%!fr
'例外情况:尾注 n&|N=zh
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then ; !t?*
ParaType = "尾注" b2[U3)|oO
Exit Sub 1uG)U)y/Q
End If N=T}
w\N\J^5,Q
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then SK@ p0:
ParaType = "页眉页脚" Z,O-P9jC
Exit Sub ya^8mp-
End If /0|1xHs
fG
s\R]
>t'A1`W
With regEX 0]MD?6-
.Global = True +_S0
yENAc sv
.Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" j;D$qd'J
If regEX.Test(pTEXT) Then 7
<]YK`a2d
ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") T@#?{eA
TitleString = regEX.Replace(pTEXT, "$3") Z(R0IW
TitleNo = regEX.Replace(pTEXT, "$1") <
]+Mdy
ParaType = "章" :
)B1|1
Exit Sub C0Fd<