Dim bContinue As Boolean LB({,0mcX
0s Jp,4Vv
Dim regEX As New RegExp 2rC&
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 UlNiH
!5h8sD;
Dim LastTitle0String As String, LastTitle0No As Long -Ju;
i<
Dim LastTitle1String As String, LastTitle1No As Long MGK?FJn_?
Dim LastTitle2String As String, LastTitle2No As Long _B^X3EOc
Dim LastTitle3String As String, LastTitle3No As Long a;Pn.@NVq
Dim LastTitle4String As String, LastTitle4No As Long ,o0Kev z
Dim LastTitle5String As String, LastTitle5No As Long E`xpZ>$mPx
Dim LastTabelString As String, LastTableNo As Long CY.92I@S
Dim LastFigureString As String, LastFigureNo As Long T12Zak4.=
4o";p}[b
Dim strSeperator As String EUh_`R
LPs5L
E[Pm
Sub ConvertWidth(fTEXT As String, rText As String) 2 ( I4h[
Selection.Find.ClearFormatting .nNZdta&=
Selection.Find.Replacement.ClearFormatting ;"#y HP`
Selection.Find.Wrap = wdFindContinue K}
T=j+
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText R'vNJDFY
DoEvents #=0 BjW*
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True y$di_)&g
End Sub [+l
6x1Am
O8>&J-+2
Sub ClearDomain() +*`k
J)uP
With Selection.Find Jqgm>\y
.ClearFormatting +84
p/B#
.Replacement.ClearFormatting SmvMjZ+7Y
.Wrap = wdFindContinue r9!s@n
Me.txtStatus.Text = "清除所有域代码" Yv)c\hm(7j
DoEvents :.=j)ljTx
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False =z"8#_3A
End With ShlTMTgS
End Sub @(*A<2;N
PJ&L7
Private Sub cmdCheck_Click() o~CEja&(
bContinue = True Dk$<fMS,7c
Dim NoSeries1(1 To 16) As String bJ9*z~z)e
Dim NoSeries2(1 To 16) As String !Ea9
fe
Dim NoSeries5(1 To 16) As String R
i,_x
Dim NoSeriesRM(1 To 16) As String 1M_Vhs^
Dim paraTotal As Long, ParaText As String T~L V\}h
Dim ttString As String, ttNo As String (~bx %
BHU$QX
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long FG!hb?_1
]t&^o**
Me.txtStatus.Visible = True IG\Cj7{K^
Me.lbParaType.Visible = True ;ThFB
Me.cmdCheck.Enabled = False qQ3pe:n?
t,r:='
Qv'x+GVW]
QBi]gT@&g
8D@J d
Dim ParaType As String, rText As String ZNDi;6e
lup2>"?*
Selection.WholeStory 0WKS
Selection.NoProofing = True =vQ J2Rg
tux0}|[^'
tm1 = Now cX4]ViXSr
KXl!VD,#`=
ActiveWindow.View.Type = wdNormalView K0B<9Wi|
9c*B%A8J
NoSeries1(1) = "一" X<$DNRN
NoSeries1(2) = "二" g)ZMU^1
NoSeries1(3) = "三" Bxw(pACf
NoSeries1(4) = "四" ~:0w%
NoSeries1(5) = "五" 01&E.A
NoSeries1(6) = "六" 4{vEW(
NoSeries1(7) = "七" <s\ZqL$f
NoSeries1(8) = "八" /d!
NoSeries1(9) = "九" |*b-m k
NoSeries1(10) = "十" _Yp~Oj
NoSeries1(11) = "十一" $%M]2_W(
NoSeries1(12) = "十二" |&
jrU-(
NoSeries1(13) = "十三" ^Z\"d#A
NoSeries1(14) = "十四" dKD:mU",M
NoSeries1(15) = "十五" &%@O V:C
NoSeries1(16) = "十六" &Ruq8n<
-&]!ig5v
NoSeries2(1) = "㈠" Nmt~1.J
NoSeries2(2) = "㈡" qP&:9eL
NoSeries2(3) = "㈢" D:IG;Rsc
NoSeries2(4) = "㈣" vGPsjxk&
NoSeries2(5) = "㈤" @x743}Y\
NoSeries2(6) = "㈥" @OFx
nF`
NoSeries2(7) = "㈦" ZQ*Us*9I
NoSeries2(8) = "㈧" S-3hLw&?
NoSeries2(9) = "㈨" \G)F*
NoSeries2(10) = "㈩" kw#-\RR_c
:?y Ma$
NoSeries5(1) = "①" S3WUccv
NoSeries5(1) = "②" Fsx<Sa
NoSeries5(3) = "③" YAeF*vP
NoSeries5(4) = "④" cPAR.h,b?
NoSeries5(5) = "⑤" F&7|`o3
NoSeries5(6) = "⑥" <-N2<sl
NoSeries5(7) = "⑦" S-Bx`e9 '
NoSeries5(8) = "⑧" KUm?gFh
NoSeries5(9) = "⑨" ,LSiQmV5
NoSeries5(10) = "⑩" )cP)HbOd=
gJ9"$fIPc
v@M^ukk'}
NoSeriesRM(1) = "I" 'DpJ#w\81
NoSeriesRM(2) = "II" VlL%dN;
0
NoSeriesRM(3) = "III"
h7T),UL
NoSeriesRM(4) = "IV" n|rKo<Y0
NoSeriesRM(5) = "V" [.Kp/,JY
NoSeriesRM(6) = "VI" *TI?t
D
NoSeriesRM(7) = "VII" liLhvcd
NoSeriesRM(8) = "VIII" #,6T. O
NoSeriesRM(9) = "IX" "dDrw ]P;
NoSeriesRM(10) = "X" Z_S{$D
NoSeriesRM(11) = "XI" T,>L
NoSeriesRM(12) = "XII" 7m]J7 +4
NoSeriesRM(13) = "XIII" 0WSZhzNyY
NoSeriesRM(14) = "XIV" kQ lwl9
NoSeriesRM(15) = "XV" q TN)2G
NoSeriesRM(16) = "XVI" gGM QRRq
cL03V? }
~
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) 1 JIU5u)
jf)l; \u
If i = vbNo Then +w?R4Sxjn
Exit Sub SA=>9L,2
End If &|RTLGwX
[2Nux0g
If Me.chkSuper.Value Then
dkCUU
Me.txtStatus.Text = "检查修改所有的上标格式" t#t[cgI
LGW_7&0<<
CheckSuperScript )$df6sq
SZ$WC8AX
End If NW 2`)e'
Qr7v^H~E4.
If Me.chkStyle.Value Then z,^~H
Me.txtStatus.Text = "设置样式,请稍候...." b.\xPb
DoEvents RB% y($
CeateOrModifyStyle q-_!&kDK"
End If 3b]M\F9
(*Q:'2e
"&4r!2A
BbCO K
ClearDomain |Nj6RB7
NsM`kZM4H
3/Z>W|w#w
[>\|QS|
If Me.chkLIST.Value Then +`{OOp=
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" t:vBVDkD
B{:a,V7
ConvertListToOrdinary 'U`;4AN
End If Qs59IZ
%-.;sO=g
u-4@[*^T$
Dim pType As String, trimpTEXT As String Hk h'h"_r
If Me.chkNum.Value = True Then !3mt<i]a"
Me.txtStatus.Text = "转换全角数字形式为半角" CAs:>s
'8
ConvertWidth "1", "1" Pgy[\t 2K
DoEvents |rZMcl/
ConvertWidth "2", "2" iQ2j ejd3(
DoEvents 7C3YVm6g
ConvertWidth "3", "3" 2E!~RjxSY
DoEvents %P
t){9b
ConvertWidth "4", "4" '/@wk#,
DoEvents nQ_{IO8/6W
ConvertWidth "5", "5" &TA{US3~
DoEvents P#XV_2
ConvertWidth "6", "6" i 61k
DoEvents x(eX.>o\
ConvertWidth "7", "7" i-5,*0e6m
DoEvents
\( #"g
ConvertWidth "8", "8" v}V[sIs}
DoEvents PRTjXq6)5
ConvertWidth "9", "9" ykPiZK
DoEvents u5glKE
ConvertWidth "0", "0" 09G47YkSy1
DoEvents 73Jm
ConvertWidth "a", "a" 1,bE[_
DoEvents p:Lmf8EI
ConvertWidth "b", "b" Fr
DoEvents 5Lej_uqF
ConvertWidth "c", "c" |
C<#M<
DoEvents v*=P
ConvertWidth "d", "d"
lG94^|U
DoEvents rZaO^}u]
ConvertWidth "e", "e" 0*rD'?)K+
DoEvents pWJEFm
ConvertWidth "f", "f" ,%l}TSs
DoEvents .#|?-5q/iN
ConvertWidth "g", "g" <"P-7/j3j
DoEvents foQo`}"5
ConvertWidth "h", "h" b7Z o~Z
DoEvents ^ W?cuJ8
ConvertWidth "i", "i" vI5lp5( -3
DoEvents $#u'XyA
ConvertWidth "j", "j" X|eZpIA45
DoEvents }AJoF41X
ConvertWidth "k", "k" &s(&B>M
DoEvents ?&~q^t?u
ConvertWidth "l", "l" A!x
&,<
DoEvents Cgh84
2%
ConvertWidth "m", "m" Tsa]SN14
DoEvents 1nskf*Z
ConvertWidth "n", "n" tB,(12@W
ConvertWidth "o", "o" Y-YuY
ConvertWidth "p", "p" *pS 7,Hm
ConvertWidth "q", "q" DyGls8<\!
ConvertWidth "r", "r" \P?X`]NwnO
ConvertWidth "s", "s"
G7al@
ConvertWidth "t", "t" :Z6j5V;s
ConvertWidth "u", "u" }F _c0zM
ConvertWidth "v", "v"
l&qCgw
ConvertWidth "w", "w" %KT}Map
ConvertWidth "x", "x"
R( FQ+h
ConvertWidth "y", "y" e}d(.H%l0
ConvertWidth "z", "z" oR=i5lAU
ConvertWidth "A", "A" G`>]ng
ConvertWidth "B", "B" !+^'Ej)z
ConvertWidth "C", "C" :\His{%
ConvertWidth "D", "D" Em@:QmEN
ConvertWidth "E", "E" Op?"G
ConvertWidth "F", "F" I_u/
ConvertWidth "G", "G" Xzf,S;XV~
ConvertWidth "H", "H" }>u `8'2v
ConvertWidth "I", "I" .)!QsBU
ConvertWidth "J", "J" @&O4a2+
ConvertWidth "K", "K" u%)gnj_
ConvertWidth "L", "L" Wx{E\ l
ConvertWidth "M", "M" p.=9[`
ConvertWidth "N", "N" NBc^(F
"
ConvertWidth "O", "O" 'Uf?-t*LT@
ConvertWidth "P", "P" o5F:U4sG
ConvertWidth "Q", "Q" SNH 3C1
ConvertWidth "R", "R" &.*UVc2+Y
ConvertWidth "S", "S" <c pc
k
ConvertWidth "T", "T" }a6t <m`V
ConvertWidth "U", "U" $%cc[[/U
ConvertWidth "V", "V" PKSfu++Z
ConvertWidth "W", "W" ^Q$OzsEk
ConvertWidth "X", "X" 4#0 3x:/<\
ConvertWidth "Y", "Y" <dH@e
ConvertWidth "Z", "Z" y-1e(:GF
ConvertWidth "^l", "^p" `/P/2{,~
ConvertWidth "(", "(" l_+@Xpl
ConvertWidth ")", ")" D@*<O=_D(
i!
?gga
End If p#ar`-vQ
m3lz#Pm'0
With ActiveDocument _2
hLc\#
Dim tbl As Table qEST[S V
For Each tbl In .Tables CG=c@-"n/
tbl.Rows.Alignment = wdAlignRowCenter eNAxVF0
tbl.Range.Font.NameFarEast = "楷体" 1Qf}nWy
tbl.Range.Font.NameAscii = "Times New Roman" UGhEaKH~R
tbl.Range.Font.Size = 10.5 YoKyiO!
Next gtA34iw
Set tbl = Nothing IFX$\+-
End With _q27
3QG/"
4F~^RR"
d-UeItyW*
With ActiveDocument hb5K"9Y
w#9KtW,tt
For i = 1 To .TablesOfContents.Count $El-pMq
.TablesOfContents(i).Delete x^f)I|t
Next PFh ^Z L
@9gZH_ur>E
ZLv/otf:|"
s.}K?)mH
paraTotal = .Paragraphs.Count &P|[YP37_
paraCounter = 1 e}e8
WR=B
U+)p'%f;
LastTitle0No = 0 -Qn7+?P
LastTitle1No = 0 x 6`!
LastTitle2No = 0 %7)=k}4
LastTitle3No = 0 2L^)k?9>g+
LastTitle4No = 0 +&`W\?.~
LastTableNo = 0 YNU}R/u6^
LastFigureNo = 0 L9D`hefz
!rM~
Dim Sec As Long ,94<j,"
K}R+~<bIY
Sec = InputBox("正文从第一节开始?", "节设置", 6) E6A"Xo
If Sec = 0 Then i
U$~H
Exit Sub &&X,1/
End If Fr8GGN~/
uPA
(1
k = 0 b]+F/@h~]
Do While (paraCounter < paraTotal) And bContinue oY18a*_>M1
k = k + 1 ^QRg9s,T<
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then A]/o-S_
Exit Do y~
=H`PAE
End If /8h=6"
paraCounter = paraCounter + 1 d qn5G!fI
If k Mod 20 = 0 Then Yv;s3>r
Me.lbCounter.Caption = paraCounter
KeQcL4<
DoEvents 5:h[%3'bB
End If )S)L9('IxT
Loop JF.Lo;
((k"*f2%
_6ZjF>f
Do While (paraCounter < paraTotal) And bContinue lS.Adl^k
my.EvN
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) \beO5]KS<
ShapeHeight = 0 %T{]l;5
ShapeWidth = 0 pS
w/QO9
!.]JiT'o
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth )#}>,,S
d!y*z
Select Case ParaType %X{Eupi
FA
Case "【】表格内容" "#j}F u_!
.Paragraphs(paraCounter).Style = "QLNU表格内容" 8vY-bm,e
Case "章" ;!4gDvm
LastTitle0No = LastTitle0No + 1 senK(kbc
'新一章开始,复位其下属标题编号 Q6@<7E]y
LastTitle1No = 0 z*eBjHbF
LastTitle2No = 0 HgF;[rq3Q
LastTitle3No = 0 Cl}nPUoL
LastTitle4No = 0 EiW|+@1
1PkCWRpR
k = Val(ttNo) )|F|\6:ne
If k = 0 Then '非数字编号章节 2d !'9mA
If ttNo <> NoSeries1(LastTitle0No) Then `C+<!)2
rText = "第" & NoSeries1(LastTitle0No) & ttString pE4a ~:
Me.ErrMsg.AddItem "章节编号错误:" & ParaText \2i7\U
End If $"^K~5Q
Else N6Ud(8*
If Val(ttNo) <> LastTitle0No Then )u
)=@@k21
rText = "第" & LastTitle0No & ttString >1~
/:DJ
Me.ErrMsg.AddItem "章节编号错误:" & ParaText p~qe/
End If x%G3L\5
_IDZ.\'>$
End If k"(]V
9oWU]A\k>
'章段落设置 $<^t][{
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 bmfM_oz
.Paragraphs(paraCounter).Style = "QLNU章节" |W">&Rb<t#
.Paragraphs(paraCounter).Range.Select 5</$dcG
Selection.EndKey unit:=wdLine 7~/ cz_
tc = Replace(rText, vbCr, "") W(s4R,j
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False RdTM5ANT
Case "一级标题" aLJm%uW6m&
LastTitle1No = LastTitle1No + 1 Eah6"j!B8n
'新一级标题开始,复位其下属标题编号 Sjpx G@k
LastTitle2No = 0 XIHN6aQ{X
LastTitle3No = 0 E
$@W~).!
LastTitle4No = 0 11[lc2
Lx^ eaP5
If ttNo <> NoSeries1(LastTitle1No) Then [. 5m}V
rText = NoSeries1(LastTitle1No) & "、" & ttString (jgk !
6
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText %BqaVOKJ"f
End If !_<6}:ZB
x *Lt]]A
qLN^9PdEE
'一级标题段落设置 格式:一、标题内容 -u2i"
I730
.Paragraphs(paraCounter).Range.Text = rText d8j1L/e
.Paragraphs(paraCounter).Style = "QLNU一级标题" }htjT/Nm
.Paragraphs(paraCounter).Range.Select }SN( ^3N
Selection.EndKey unit:=wdLine =!O->C:
tc = Replace(rText, vbCr, "") XIeLu"TSL
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False
BX,)G HE
Case "二级标题" 7 F^d-
LastTitle2No = LastTitle2No + 1 Sqo+cZ
'新二级标题开始,复位其下属标题编号 ;;Q^/rkC
LastTitle3No = 0 gE-y`2SU
LastTitle4No = 0 >qjV{M
`FP?9R6Y
If ttNo <> NoSeries1(LastTitle2No) Then 1uw#;3<L
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString K}VCFV
ErrMsg.AddItem "二级标题编号错误:" & ParaText Mqf Ns<2
End If 6OES'3 Cy
~GaGDS\V
'二级标题段落设置 格式:(一)、标题内容 <B"sp r&1
.Paragraphs(paraCounter).Range.Text = rText n_8[bkbi
.Paragraphs(paraCounter).Style = "QLNU二级标题" EdJL&*
yPm2??5MW>
.Paragraphs(paraCounter).Range.Select a&y^Ps6=
Selection.EndKey unit:=wdLine 3FEJ
9ZyG
tc = Replace(rText, vbCr, "") Lsmcj{1d
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False a
V3:{oL
|?` 5 ~f
Case "三级标题" hRcb}>pr
LastTitle3No = LastTitle3No + 1 C_.9qo]DT7
'新三级标题开始,复位其下属标题编号 Y?VbgOM)
LastTitle4No = 0 24mdhT|
tT$OnZu&
If Val(ttNo) <> LastTitle3No Then Ykbg5Z
rText = LastTitle3No & ". " & ttString C$3*[
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText xvr5$x|h
UkV?,P@l
End If GF'wDi}
'三级标题段落设置 格式:1. 标题内容 w2)Ro:G
.Paragraphs(paraCounter).Range.Text = rText OZ,kz2SF#
.Paragraphs(paraCounter).Style = "QLNU三级标题" g*|j+<:7
.Paragraphs(paraCounter).Range.Select -EjXVn! vQ
Selection.EndKey unit:=wdLine 5Wt){rG0Z
tc = Replace(rText, vbCr, "") 0J)s2&H
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False i=8iK#2 h
Case "四级标题" lo1Ui`V
LastTitle4No = LastTitle4No + 1 kX 1}/l
GP|=4T}Bf
If Val(ttNo) <> LastTitle4No Then E h%61/
rText = "(" & LastTitle4No & "). " & ttString `&$8/_`
ErrMsg.AddItem "四级标题编号错误:" & ParaText Y Y:BwW:
jcH@*c=%e
End If )xGAe#E~j
'四级标题段落设置 格式:(1). 标题内容 S;Bk/\2
.Paragraphs(paraCounter).Range.Text = rText ])x1MmRg\
.Paragraphs(paraCounter).Style = "QLNU四级标题" [uq>b|`RG
.Paragraphs(paraCounter).Range.Select e%4?-{(
Selection.EndKey unit:=wdLine )
nfoDG#O
tc = Replace(rText, vbCr, "") yC,/R371k
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 4 ", PreserveFormatting:=False #x%'U}sF
v\0 G`&^1
Case "表格标题" P:qmg"i@3
LastTableNo = LastTableNo + 1 ,g`%+s7 u
qfkHGW?1/j
If ttNo <> CStr(LastTableNo) Then G1"iu89d
rText = "表" & LastTableNo & ". " & ttString weitDr6
ErrMsg.AddItem "表格编号错误:" & ParaText ^S9y7b^;r
z`y9<+
End If o_b[ *
{Z.6\G&q
'表格名称段落设置 格式:表1. 表格名称 ));#oQol9
.Paragraphs(paraCounter).Style = "QLNU表格标题" f0Q6sV ZHa
xe = Replace(rText, vbCr, "") !,WGd|oJ
.Paragraphs(paraCounter).Range.Select p|4qkJK8
Selection.MoveEnd wdCharacter, -1 '选择范围包括行尾的换行符。 ?0tg}0|
Selection.Range.Text = xe
^?69|,
Selection.EndKey .p`4>XA
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False h$>F}n
j
'm%{Rz>j
Case "表格首行" # kI>
.Paragraphs(paraCounter).Style = "QLNU表格首行" WA{igj@\
Case "图片标题" <_tmkLeZf
LastFigureNo = LastFigureNo + 1 &v\F ah U
ntiS7g e1
If ttNo <> CStr(LastFigureNo) Then ]6&NIz`:,
rText = "图" & LastFigureNo & ". " & ttString -wlj;U
ErrMsg.AddItem "表格编号错误:" & ParaText _`$LdqgE
l?Y^3x}j
End If e5=d
Ev
'图片名称段落设置 格式:图1. 图名称 A5?"
.Paragraphs(paraCounter).Range.Text = rText 8OfQ :
.Paragraphs(paraCounter).Style = "QLNU图片标题" D)_
C@*q
.Paragraphs(paraCounter).Range.Select <3YZ0f f>
Selection.EndKey unit:=wdLine ;`9f<d#\
xe = Replace(rText, vbCr, "") >%JPgr/
8
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False \/-c)
Case "正文" tiK?VwaKI
'正文名称段落设置 Ycm)PU ["
.Paragraphs(paraCounter).Style = "QLNU正文" OI R5QH
Case "文献条目" 4DXbeQs:
With .Paragraphs(paraCounter) #%"q0
"
'.Range.Select lG*Rw-?a
'Selection.ClearFormatting WKf<%
E$
'.Range.Find.Execute findtext:=rText, replacewith:=strSeperator 'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” k1 5vs
.Style = "QLNU参考文献" ] m]`J|%i
End With z(PUoV:?
Case "图表注解" -!\3;/
With .Paragraphs(paraCounter) 3KLUH=)P
.Range.Font.NameFarEast = "楷体" _Fb}zPU!
.Range.Font.NameAscii = "Times New Roman" kH!Z|Ps?R
.Range.Font.Size = 9 '小5号字 I Mgd2qIC
<?jdNM
.Alignment = wdAlignParagraphCenter sE9FT#iE
.LeftIndent = 0 ?@V R%z
.RightIndent = 0 XGlt^<`
.FirstLineIndent = 0 e_BG%+;G,
.LineSpacing = 12 ,N/@=As9$
.LineSpacingRule = wdLineSpaceExactly -H1=N
.LineUnitAfter = 0 IS C.~q2
.LineUnitBefore = 0 > =>/~dIb
.OutlineLevel = wdOutlineLevelBodyText <QtZ6-;_f
.PageBreakBefore = False BT_]=
\zi
.RightIndent = 0
K
+7
.WordWrap = True ^s,3*cAU
.LineUnitAfter = 0.5
^-;S&=
lwn
O
End With wZrFu(_
Case Else .@dC]$2=
'不作处理 wak 26W>I3
End Select myx/ |-V"F
<sdgL+&1h
'含有inlineshape的段落处理 A#uU]S
If ShapeHeight > 30 Then (Guzj*1 2
.Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle '对有图片的段落设置为单倍行距 w$gvgz
End If gfk)`>E
e r"
w{
If (ShapeWidth + ShapeHeight) > 150 Then a"~o'W7
.Paragraphs(paraCounter).Style = "QLNU图片段落" ?0b-fL^^+l
End If 3f|}p{3
P{L=u74b{x
'段落计数器递 [ X*p
[
paraCounter = paraCounter + 1 Jx*cq;`Vee
Me.lbCounter.Caption = "当前检测段落:" & paraCounter ` ]|X_!J-
Me.txtStatus.Text = ParaText e~h>b.~
DoEvents gW,[X(
Loop F
[qXIL)
End With H$6RDMU
<+8'H:wz
msg = "" :WhJDx`j
,'NasL8?We
For i = 0 To Me.ErrMsg.ListCount - 1 6K2e]r
msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) &K[*vyD
Next D6SUzI1+H
B6XO&I1c
CB7dr&>
FU|brSt
Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg _sjS'*]
Me.cmdCheck.Enabled = True rK~-Wzwu
Me.txtStatus.Visible = True '1<Z"InU
Me.lbParaType.Visible = False *%-<Ldv
0SpB2>_
bContinue = False zVh yAf
End Sub &\zYbGU
8K8u|]i
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) 3CUQQ_
Dim pTEXT As String ;w{<1NH2+.
Z[vx0[av&
pTEXT = ChKRange.Text 3F9V,zWtTi
uf(ayDE
ParaType = "其它" D?|D)"?qb
TitleString = pTEXT D)
*
TitleNo = "N/A" mrGV{ {.
[hJ1]RW8
shpCounter = ChKRange.InlineShapes.Count <H[w0Z$
If shpCounter <> 0 Then s8j |>R|k
MaxShpHeight = 0: TotalShpWidth = 0 01bCP
For i = 1 To shpCounter ;qx#]Z0 <
k = ChKRange.InlineShapes(i).Height sYTz6-
l = ChKRange.InlineShapes(i).Width Rq4;{a/j
If k > MaxShpHeight Then C|{Sj`,XG
MaxShpHeight = k =4ygbk
End If Y#U.9>h
TotalShpWidth = TotalShpWidth + l D(cD8fn,J
Next v|?@k^Ms
If MaxShpHeight > 60 Or TotalShpWidth > 150 Then ,n|si#
Exit Sub 1-RY5R}VR
End If Iil2R}1
End If `RTxc
6iFlz9XiI
'空行 !0
7jr%-~
If Len(pTEXT) <= 2 Then , c.^"5
Exit Sub I#l}5e5
End If s"L&y <?)
gqaM<!]
kuY^o,u-1e
'是否为表格中的文字 >OG189O
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then !_glZ*tL
ParaType = "表格内容" X<ex
>sM
k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) a[{qb
If k = 1 Then ; :e7Z^\/k
ParaType = "表格首行" N,t9X7G&
End If J
_s`G
Exit Sub l9p
6I
End If E4#{&sRT
09Hrn
'例外情况:脚注 /%$Zm^8c
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then l;F"m+B!$
ParaType = "脚注" 9#E *o~1
Exit Sub iUKjCq02
End If ,%i
Scr,z
ci,(]T+!
'例外情况:尾注 .[={Yx0!I
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then vrn4yHoZ
ParaType = "尾注" +]l?JKV
Exit Sub ^`H'L
D
End If YOxgpQ:i
M-WSdG[AJ
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then [o^$WL?c
ParaType = "页眉页脚" B=Hd:P|
Exit Sub .EYL
End If h*%p
%t<