Dim bContinue As Boolean
qML*Kwg
X3O$Sd(D
Dim regEX As New RegExp h:sG23@=
Dim paraCounter As Long '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 jF_I4H
kD7(}N8YR
Dim LastTitle0String As String, LastTitle0No As Long pP,bW~rk
Dim LastTitle1String As String, LastTitle1No As Long iQ"F`C
Dim LastTitle2String As String, LastTitle2No As Long Z|S7",
Dim LastTitle3String As String, LastTitle3No As Long Hll}8d6[
Dim LastTitle4String As String, LastTitle4No As Long }V;]c~Q/H
Dim LastTitle5String As String, LastTitle5No As Long &*GX:0=/>
Dim LastTabelString As String, LastTableNo As Long M #&L@fg!
Dim LastFigureString As String, LastFigureNo As Long X )s7_
S)|b%mVwR
Dim strSeperator As String V>92/w.fe
+##I4vP
Sub ConvertWidth(fTEXT As String, rText As String) u`@FA?+E1
Selection.Find.ClearFormatting -%)
!XB
Selection.Find.Replacement.ClearFormatting 2vQ^519
Selection.Find.Wrap = wdFindContinue N`6|Y
Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText dKTAc":-}
DoEvents !*UdY(
Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 9,eR=M]+:
End Sub HWOH8q{f!
!QS<;)N@
Sub ClearDomain() FNEmGz/4
With Selection.Find N4jLbnA
.ClearFormatting PuCA
@qY
.Replacement.ClearFormatting <XrGr5=BV
.Wrap = wdFindContinue x.Ml~W[
Me.txtStatus.Text = "清除所有域代码" \%Q
rN+WQ
DoEvents }3y\cv0ct
.Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False #zs\Z]3#
End With :]QxT8B
End Sub 4PM`hc
NWK_(=n
Private Sub cmdCheck_Click() G@!9)v]9
bContinue = True :?k=Yr
Dim NoSeries1(1 To 16) As String g^UWf <xp
Dim NoSeries2(1 To 16) As String Q 9<_:3
Dim NoSeries5(1 To 16) As String @\}36y
Dim NoSeriesRM(1 To 16) As String NYvj?>[y
Dim paraTotal As Long, ParaText As String 1tz .e\
Dim ttString As String, ttNo As String q:sR zX
bI(98V,t
Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long ScoHtX3
[V0 h9!
Me.txtStatus.Visible = True MXV4bgltT
Me.lbParaType.Visible = True Pp hQa!F$
Me.cmdCheck.Enabled = False i]?xM2(N
nn%xN\~<
Rj`Y X0?+
z5vI0 N$
/y|r iW
Dim ParaType As String, rText As String _ u2
pPpnO
Selection.WholeStory $Xc<K_Z
Selection.NoProofing = True D07u?
ye2Oh7
tm1 = Now YH9]T,
PzDgl6C
ActiveWindow.View.Type = wdNormalView z1s"C[W2T
-V<"Ay
NoSeries1(1) = "一" v ed
Qwzh
NoSeries1(2) = "二" jloyJ@ck
NoSeries1(3) = "三" 7b2<,
.E
NoSeries1(4) = "四" {o%R~{6
NoSeries1(5) = "五" |R/50axI
NoSeries1(6) = "六" )6+W6:
NoSeries1(7) = "七" (C@@e'e
NoSeries1(8) = "八" L]<4{8H.
NoSeries1(9) = "九" 0Jh:6F
NoSeries1(10) = "十" 7'uc;5:
NoSeries1(11) = "十一" UdJV;T'rm
NoSeries1(12) = "十二" t&]Mt7
NoSeries1(13) = "十三" !#qB%E]a
NoSeries1(14) = "十四" :q1r2&ne
NoSeries1(15) = "十五" 6J+ZeBk??
NoSeries1(16) = "十六" CHI(\DXNs
TLgVuY
NoSeries2(1) = "㈠" 0 %+k>(@R
NoSeries2(2) = "㈡" 4HE4e
NoSeries2(3) = "㈢" ,m]q+
7E
NoSeries2(4) = "㈣" :%MWbnVSC,
NoSeries2(5) = "㈤" !;Nh7vG
NoSeries2(6) = "㈥" #?6RoFgMe
NoSeries2(7) = "㈦" K*FAngIB
NoSeries2(8) = "㈧" 'Sh5W%NM
NoSeries2(9) = "㈨" Ntiz-qW
NoSeries2(10) = "㈩" .9Fm>e+!C
1tpD|
NoSeries5(1) = "①" IyP].g1
"U
NoSeries5(1) = "②" c iX2
G
NoSeries5(3) = "③" oyw1N;K
NoSeries5(4) = "④" =T$- #bA)
NoSeries5(5) = "⑤" 1hi j4m$b
NoSeries5(6) = "⑥" ),,vu
NoSeries5(7) = "⑦" 1_lL?S3,a@
NoSeries5(8) = "⑧" `,d7_#9'
NoSeries5(9) = "⑨" epyfggMT
NoSeries5(10) = "⑩" u`|fmVI
q/?_djv
<-}\V!@E!
NoSeriesRM(1) = "I" B4aZ3.&W
NoSeriesRM(2) = "II" Q#KjX;No
NoSeriesRM(3) = "III" !F)oX7"
NoSeriesRM(4) = "IV" 3:
Uik
NoSeriesRM(5) = "V" <=M
}[
NoSeriesRM(6) = "VI" EdpR| z
NoSeriesRM(7) = "VII" #KW:OFT
NoSeriesRM(8) = "VIII" 6u7wfAf
NoSeriesRM(9) = "IX" T<)z2Bi
NoSeriesRM(10) = "X" 3IFU{0a`
NoSeriesRM(11) = "XI" */E{s?
NoSeriesRM(12) = "XII" E76:}(
NoSeriesRM(13) = "XIII" =YIQ
_,{u
NoSeriesRM(14) = "XIV" S
&u94hlC
NoSeriesRM(15) = "XV" Z
-(HDn
NoSeriesRM(16) = "XVI" E: k?*l
>,3
3Jx
i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) F9W5x=EK\
(Ln h> '2
If i = vbNo Then 4PQWdPv;
Exit Sub n]Y _C^
End If R0}%
Q@n k T1o
If Me.chkSuper.Value Then sf0U(XYQ^
Me.txtStatus.Text = "检查修改所有的上标格式" dZmq
J]B5w{??b
CheckSuperScript |3m%d2V*hF
q3`t0eLZ
End If Z]BRMx
>k|[U[@
If Me.chkStyle.Value Then Dzr5qP?#
Me.txtStatus.Text = "设置样式,请稍候...." e.V){}{V
DoEvents ,RQ-w2j?
CeateOrModifyStyle {AUEVt
End If T`sM4 VWqU
H
#_Z6J
rI/KrBM
,-)1)R\.
ClearDomain ]U%Tm>s.
mX^RSg9 E}
zhE7+``g
$ cSZX#\
If Me.chkLIST.Value Then MzD0F#Y
Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" J~.kb k
K>y+3HN[6
ConvertListToOrdinary Jiq[VeLe
End If pdSyx>rJ
4+Y5u4`t
^h=kJR9
Dim pType As String, trimpTEXT As String Cq~Ir*"
If Me.chkNum.Value = True Then e$=|-Jz
Me.txtStatus.Text = "转换全角数字形式为半角" Lt_]3go
ConvertWidth "1", "1" Sdp1h0E}7=
DoEvents 's<}@-]
ConvertWidth "2", "2" {'!~j!1'j
DoEvents Je,8{J |e
ConvertWidth "3", "3" plfB}p
DoEvents
ty> O}9%
ConvertWidth "4", "4" S##W_OlrI
DoEvents QUf_fe!,|
ConvertWidth "5", "5" 6EY4@0%A
DoEvents G>x0}c
ConvertWidth "6", "6" 'oG'`ED"
DoEvents *Y Ox`z!R
ConvertWidth "7", "7" dp_q:P4;B
DoEvents ?*,q#ZkA9W
ConvertWidth "8", "8" Ek3O{<
DoEvents g 7X>i:
ConvertWidth "9", "9" ?9+;[X
DoEvents /
yCV-L2J
ConvertWidth "0", "0" Yo:&\a K[
DoEvents ikQ2x]Sp
ConvertWidth "a", "a" M &J*I
DoEvents > R=YF*
t
ConvertWidth "b", "b" *F0N'*
DoEvents ?L^ Gu ]y
ConvertWidth "c", "c" :Kiu*&{
DoEvents 9[Mu
ConvertWidth "d", "d" =%LS9e^7D
DoEvents h 8s*FI
ConvertWidth "e", "e" ?3#
X
5WT
DoEvents qM+T Wp
ConvertWidth "f", "f" h%%'{^>~
DoEvents xh
0!H|
R
ConvertWidth "g", "g" k"J?-1L
DoEvents EcU9Tm
`h
ConvertWidth "h", "h" AI2CfH#:C
DoEvents OK=t)6&b
ConvertWidth "i", "i" Sgj6tH2M
DoEvents TL>e[PBO
ConvertWidth "j", "j" o/R-1\Dn
DoEvents Q"O _h
ConvertWidth "k", "k" X}$S|1CjO
DoEvents #Z : r
ConvertWidth "l", "l" =#fqFL,
DoEvents T[~X~dqwn"
ConvertWidth "m", "m" 6F2}|c
DoEvents U*cj'`eqC
ConvertWidth "n", "n" :[doYizk:
ConvertWidth "o", "o" RMXP)[
ConvertWidth "p", "p" 2 O%UT?R
ConvertWidth "q", "q" k:sh:G+=$d
ConvertWidth "r", "r" wr`eBPu
ConvertWidth "s", "s" #7{a~-S
ConvertWidth "t", "t" =E}/Z
ConvertWidth "u", "u" N*fN&0r
ConvertWidth "v", "v" v;SJgZK
ConvertWidth "w", "w" @
55Y2
ConvertWidth "x", "x" a'BBp6
ConvertWidth "y", "y" 2 E^P=jU`
ConvertWidth "z", "z" c{
~*\&
ConvertWidth "A", "A" i&Ea@b
ConvertWidth "B", "B" ;XT$rtuX
ConvertWidth "C", "C" I,D=ixK
ConvertWidth "D", "D" BeQJ/`
ConvertWidth "E", "E"
_
0-YsD
ConvertWidth "F", "F" /1*\*<cs
ConvertWidth "G", "G" 3?:}lY<,
ConvertWidth "H", "H" D%zIm,bf
ConvertWidth "I", "I" ":OXs9Yg
ConvertWidth "J", "J" <$E8T>U
ConvertWidth "K", "K" ScEM#9T |
ConvertWidth "L", "L" 9V~yK?
ConvertWidth "M", "M" R-ci?7d t3
ConvertWidth "N", "N" Wxjpe4
ConvertWidth "O", "O" 2s
ngi@\
ConvertWidth "P", "P" R##O9BSI8Z
ConvertWidth "Q", "Q" Ch3##-
ConvertWidth "R", "R" RW5T}
ConvertWidth "S", "S" F>OYZOC]
ConvertWidth "T", "T" +xMDm_TGLA
ConvertWidth "U", "U" Liofv4![
ConvertWidth "V", "V" $\H>dm
ConvertWidth "W", "W" 4"{q|~&=:$
ConvertWidth "X", "X" qpZ".
ConvertWidth "Y", "Y" ]#`bYh^y
ConvertWidth "Z", "Z" D+OkD-8q
ConvertWidth "^l", "^p" j.o)!SA
ConvertWidth "(", "(" %llG/]q#
ConvertWidth ")", ")" [eImP
V]
FE`J.aw^X
End If zC7;Zj*k
ec|IT0;
With ActiveDocument ^#+9v
Dim tbl As Table "'%x|nB
For Each tbl In .Tables 3iB8QO;pp
tbl.Rows.Alignment = wdAlignRowCenter XIU2l}g
tbl.Range.Font.NameFarEast = "楷体" ||qW'kNWM
tbl.Range.Font.NameAscii = "Times New Roman" <T['J]k%
tbl.Range.Font.Size = 10.5 &A~ 1Q#4
Next ]^!#
0(
Set tbl = Nothing m35G;
End With wjkN%lPfvj
I/'>Bn+
V%))%?3x_
With ActiveDocument ?pFHpz
ctf'/IZ5
For i = 1 To .TablesOfContents.Count I8m(p+Z=
.TablesOfContents(i).Delete <iMLM<J<w
Next SLW1]ZaG
D3eK!'qS
Gv`PCA@/d
!*p lK6a
paraTotal = .Paragraphs.Count ipsNiFv:
paraCounter = 1 ~/t#J
46b.= }
LastTitle0No = 0 bz
1\EkLL
LastTitle1No = 0 -szvO_UP
LastTitle2No = 0 K|iNEhuc
LastTitle3No = 0 uaiG(O
LastTitle4No = 0 <R2bz1!h.
LastTableNo = 0 "QMHY\C
LastFigureNo = 0 pcE.
LTxOq|/Cq
Dim Sec As Long _Q QO&0Z
TWy1)30x
Sec = InputBox("正文从第一节开始?", "节设置", 6) 7\.5G4dr%
If Sec = 0 Then %BL +'&q
Exit Sub epQ7@9,Q
End If S5j#&i
/SyiJCx0
k = 0 &kP>qTI^p~
Do While (paraCounter < paraTotal) And bContinue Xr@0RFdr[
k = k + 1 @^%# ]x,:
If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then kHJjdgV
Exit Do M:ttzsd
End If t<4+
CC2H
paraCounter = paraCounter + 1 Q?~l=}2
If k Mod 20 = 0 Then H=0Y4 T@)T
Me.lbCounter.Caption = paraCounter #N*~Q
DoEvents 17-K~ybc
End If {|qz>
Loop 3 Tt8#B
cng1k
B|!Re4`0
Do While (paraCounter < paraTotal) And bContinue ~U`aH~R
, =#'?>Kq
ParaText = Trim(.Paragraphs(paraCounter).Range.Text) !+i
ShapeHeight = 0 E5B:79BGO
ShapeWidth = 0 [K^RC;}nV^
8$1<N
CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth 8ED6C"6
^+-i7`|=
Select Case ParaType (u *-(
Case "【】表格内容" VP[ J#TPU
.Paragraphs(paraCounter).Style = "QLNU表格内容" ~#wq sm
Case "章" 'C(YUlT2?P
LastTitle0No = LastTitle0No + 1 #fQStO
'新一章开始,复位其下属标题编号 nfc&.(6x<
LastTitle1No = 0 =h4XsV)rO
LastTitle2No = 0 `Do-!G+W
LastTitle3No = 0 1g
*4e
LastTitle4No = 0 (i {
%GJ,&b|
k = Val(ttNo) 0
~VniF^
If k = 0 Then '非数字编号章节 1Eh(U
If ttNo <> NoSeries1(LastTitle0No) Then By"
=]|Q
rText = "第" & NoSeries1(LastTitle0No) & ttString 0 j6/H?OT
Me.ErrMsg.AddItem "章节编号错误:" & ParaText 9T)-|fja_
End If l/Sb JrM*
Else
z
T.qNtU%
If Val(ttNo) <> LastTitle0No Then 5K,Y6I&$SJ
rText = "第" & LastTitle0No & ttString |@Bl?Bs+
Me.ErrMsg.AddItem "章节编号错误:" & ParaText >XBLm`a
End If d>2>mT$U
t'^/}=c-
End If
&Prx=L`
!iMsTH<
'章段落设置 u\50,N9Wp{
'字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 YqYCW}$
.Paragraphs(paraCounter).Style = "QLNU章节" %|UCs8EFm
.Paragraphs(paraCounter).Range.Select 9\V^q9l
Selection.EndKey unit:=wdLine *f1MgP*GKF
tc = Replace(rText, vbCr, "") <}G7#xg
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False 8!1vsEqv
Case "一级标题" n<?:!f`
LastTitle1No = LastTitle1No + 1 90;[5c
'新一级标题开始,复位其下属标题编号 M5wj79'l"
LastTitle2No = 0 t|1?mH9
LastTitle3No = 0 p9 %7h.
LastTitle4No = 0 SwLul4V
%;GDg3L[p
If ttNo <> NoSeries1(LastTitle1No) Then XSXS;Fh)
rText = NoSeries1(LastTitle1No) & "、" & ttString $Die~rPU
Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText DvU(rr\p
End If
1I_(!F{Ho
d&F8nBIM5
H.*XoktC]
'一级标题段落设置 格式:一、标题内容 c'[l%4U8[
.Paragraphs(paraCounter).Range.Text = rText k5(@n>p
.Paragraphs(paraCounter).Style = "QLNU一级标题" *U8Pjb1
.Paragraphs(paraCounter).Range.Select p;g$D=2
Selection.EndKey unit:=wdLine Q1g@FsW&U
tc = Replace(rText, vbCr, "") ]"^U
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 1 ", PreserveFormatting:=False t
7+ifSrz
Case "二级标题" Ue!
&Vm
LastTitle2No = LastTitle2No + 1 G >bQlZG
'新二级标题开始,复位其下属标题编号 0m!+gZ@
LastTitle3No = 0 i&RPYbT{
LastTitle4No = 0 JW
(.,Ztm
_8S!w>$)
If ttNo <> NoSeries1(LastTitle2No) Then =}F &jl
rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString L9"V$MO
ErrMsg.AddItem "二级标题编号错误:" & ParaText 0:Xvch0
End If K%.\@l2Cp
H{yeN 5
'二级标题段落设置 格式:(一)、标题内容 :2}zovsdj
.Paragraphs(paraCounter).Range.Text = rText 9%pq+?u9
.Paragraphs(paraCounter).Style = "QLNU二级标题" FgLV>#)-
bP(xMw<'j
.Paragraphs(paraCounter).Range.Select &0~E+
9b
Selection.EndKey unit:=wdLine 1Jt5|'tl
tc = Replace(rText, vbCr, "") Fc{hzqaP8
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 2 ", PreserveFormatting:=False Hr:WE+'
}! x\qpA
Case "三级标题" P
E0A `
LastTitle3No = LastTitle3No + 1 A?=g!( wB
'新三级标题开始,复位其下属标题编号 u`3J2,.
LastTitle4No = 0 Ov h[qm?Z
e+j7dmGa
If Val(ttNo) <> LastTitle3No Then 3 cu`U`
rText = LastTitle3No & ". " & ttString I!~5.
Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText QYPsqkF*
Ab/
gY$l
End If x8w455
'三级标题段落设置 格式:1. 标题内容 |X0h-kX4
.Paragraphs(paraCounter).Range.Text = rText eVS6#R]'m
.Paragraphs(paraCounter).Style = "QLNU三级标题" >2TDYB|;
.Paragraphs(paraCounter).Range.Select h,45-#+
Selection.EndKey unit:=wdLine
2/3,%5j_
tc = Replace(rText, vbCr, "") o/
ozX4C
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 3 ", PreserveFormatting:=False uPhFBD7
Case "四级标题" b|P[
\9
LastTitle4No = LastTitle4No + 1 s7[du_)
-r7*C:E
If Val(ttNo) <> LastTitle4No Then IZ/+RO n
rText = "(" & LastTitle4No & "). " & ttString `;L>[\Xi
ErrMsg.AddItem "四级标题编号错误:" & ParaText Pd6 p)zj
-)PQ&[
End If ycTX\.KV
'四级标题段落设置 格式:(1). 标题内容 IOtSAf
.Paragraphs(paraCounter).Range.Text = rText 1J jay#
.Paragraphs(paraCounter).Style = "QLNU四级标题" nD6NLV%2x
.Paragraphs(paraCounter).Range.Select q{ i9VJ]
Selection.EndKey unit:=wdLine f%;8]a9
tc = Replace(rText, vbCr, "") 9 "7(Jq
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC """ & tc & """ \l 4 ", PreserveFormatting:=False N[:;f^bH49
(]>=y
Case "表格标题" $C#G8Ck,
LastTableNo = LastTableNo + 1 )l~:Puvh
4cDjf~n
If ttNo <> CStr(LastTableNo) Then (
$A0b
rText = "表" & LastTableNo & ". " & ttString N*y09?/h
ErrMsg.AddItem "表格编号错误:" & ParaText -W<x|ph
U
\9N1:
End If q,(U 8
=Q>'?w>
'表格名称段落设置 格式:表1. 表格名称 ,3 =|a|p
.Paragraphs(paraCounter).Style = "QLNU表格标题" [> Q+=(l
xe = Replace(rText, vbCr, "") %We~k'2f
.Paragraphs(paraCounter).Range.Select 8>%:MS"
Selection.MoveEnd wdCharacter, -1 '选择范围包括行尾的换行符。 x\T 9V~8a
Selection.Range.Text = xe 9Ra*bP ]1
Selection.EndKey W1fEUVj
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False /_rEI,[k
V4PI~"4q#1
Case "表格首行" JHC 6l
.Paragraphs(paraCounter).Style = "QLNU表格首行" gMS-mkZ
Case "图片标题" g1UP/hNJ\8
LastFigureNo = LastFigureNo + 1 ]
3nka$wA*
B&3oo
If ttNo <> CStr(LastFigureNo) Then ;EDc1:
rText = "图" & LastFigureNo & ". " & ttString |uf{:U)
ErrMsg.AddItem "表格编号错误:" & ParaText %ukFn
&-2@
yPs4S?<s
End If pUi|&F K">
'图片名称段落设置 格式:图1. 图名称 5[suwaJQ
.Paragraphs(paraCounter).Range.Text = rText ya.!zGH
.Paragraphs(paraCounter).Style = "QLNU图片标题" F%M4i`Vh
.Paragraphs(paraCounter).Range.Select M{w[hV
Selection.EndKey unit:=wdLine 2iO AUo+
xe = Replace(rText, vbCr, "") 0]p!
Bscaf
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE " & """" & xe & """", PreserveFormatting:=False *:L-/Q)i
Case "正文" _~]~ssn,1
'正文名称段落设置 I?r7dQEm
.Paragraphs(paraCounter).Style = "QLNU正文" ?NkweT(
Case "文献条目" }coSMTMv6
With .Paragraphs(paraCounter) }86&?
0j.
'.Range.Select OeLM*Zi
'Selection.ClearFormatting l+`f\ },
'.Range.Find.Execute findtext:=rText, replacewith:=strSeperator 'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” ^E{M[;sF3y
.Style = "QLNU参考文献" o."k7fLB
End With
~$cz`A
Case "图表注解" Z<jio
With .Paragraphs(paraCounter) w/&)mm{
.Range.Font.NameFarEast = "楷体" ]zK'aod
.Range.Font.NameAscii = "Times New Roman" I6@98w}"
.Range.Font.Size = 9 '小5号字 Y>W$n9d&G2
: .Y
.Alignment = wdAlignParagraphCenter >zx]%
W
.LeftIndent = 0 Jas=D
.RightIndent = 0 4LO4SYW7
.FirstLineIndent = 0 dnRbt{`jP
.LineSpacing = 12 ;aXu
.LineSpacingRule = wdLineSpaceExactly B8_
)I.
.LineUnitAfter = 0 sxc^n
aK0
.LineUnitBefore = 0 #SyF-QZ[1
.OutlineLevel = wdOutlineLevelBodyText <?yf<G'$
.PageBreakBefore = False .LMOmc=(
.RightIndent = 0 ^C$Oht,cU
.WordWrap = True IsP-[0it
.LineUnitAfter = 0.5 IdTatE|^
wiHGTaR
End With HmlE Cx
Case Else {S[+hUl
'不作处理 M uz+j.0
End Select VAPRI\uM;
q=Xd a0c
'含有inlineshape的段落处理 !
'scOWWn
If ShapeHeight > 30 Then qM}Uk3N0
.Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle '对有图片的段落设置为单倍行距 a
_}k^zw(
End If NX.%Rj*
b/;!yOF
If (ShapeWidth + ShapeHeight) > 150 Then ;J[ed>v;3
.Paragraphs(paraCounter).Style = "QLNU图片段落" ,6TF]6:
End If uzG{jc^
\A
"_|Yg
'段落计数器递 /6S% h-#\
paraCounter = paraCounter + 1 gJ;jh7e@
Me.lbCounter.Caption = "当前检测段落:" & paraCounter G4O
$gg
Me.txtStatus.Text = ParaText WRIOj Q:
DoEvents CW
KN0HB
Loop P5;n(E(19
End With dZ^(e0& :H
vfBIQfH
msg = "" !A_<(M<
f+3ico]f@
For i = 0 To Me.ErrMsg.ListCount - 1 k_d)
msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) !'m
MGxkEb
Next 1V?)T
9NzK1V0X
^hL
?.xj
' b?' u
Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg 6WI-ZEVp&
Me.cmdCheck.Enabled = True DN
Tkv_S
Me.txtStatus.Visible = True -QPM$
Me.lbParaType.Visible = False
p>x[:*
$U. >]i
bContinue = False gbf2t
y
End Sub EY+/
foP
DPV>2'
fV
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) Z/
w}so
Dim pTEXT As String {p.D E
'DLgOUvh
pTEXT = ChKRange.Text j<,Ho4v}_
d}B_ wz'
ParaType = "其它" e
*9c33
TitleString = pTEXT i*ibx
;s-
TitleNo = "N/A" MX*T.TG8
[k<"@[8)
shpCounter = ChKRange.InlineShapes.Count JdYmUM|K/c
If shpCounter <> 0 Then 4H
4W
MaxShpHeight = 0: TotalShpWidth = 0 .0
ov>4,R
For i = 1 To shpCounter n{Ce%gy
k = ChKRange.InlineShapes(i).Height ,^Ug[pGG-
l = ChKRange.InlineShapes(i).Width GTYCNi66
If k > MaxShpHeight Then 4S9hz
MaxShpHeight = k '2LK(uaU
End If o4Ny9s
TotalShpWidth = TotalShpWidth + l ahJ-T@
Next &ZyZmB
If MaxShpHeight > 60 Or TotalShpWidth > 150 Then 4DLp+6zP
Exit Sub AlPk o($E*
End If v$n J$M&k
End If Dqxtc|vo
?so=k&I-M
'空行 I7=g8/JD
If Len(pTEXT) <= 2 Then C6<*'5T
Exit Sub q!fdiv`
End If J]h$4"
_.}1 Y,Q
+,8j]<wpo
'是否为表格中的文字 BeR7LV
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then *;N6S~_'Y
ParaType = "表格内容" yZHh@W4
v
k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) dio<?6ZD9P
If k = 1 Then BIJlU(aF
ParaType = "表格首行" lRO7 Ae
End If ioJ~k[
T
Exit Sub g#W/WKvM
End If p-CBsm5P
@'5*u~M
'例外情况:脚注 UYw_k\
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then A5WchS'
ParaType = "脚注" S2APqRg*
Exit Sub <t~RGn3
End If c>~q2_}W(
uGo tX b
'例外情况:尾注 O4c[,Uq8~
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then ^k#.;Q#4
ParaType = "尾注" .
W7ZpV
Exit Sub #saK8; tp
End If W'98ues%
8?yRa{'"
If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then pYxdE|2j
ParaType = "页眉页脚" dx.,
Exit Sub S`w_q=-^8
End If =P}BAJ
l^~E+F~
\jR('5DcB
With regEX A vh"(j
.Global = True 3)ZdT{MY
j:Y1
.Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" '!V5 #J
If regEX.Test(pTEXT) Then ( M$2CL
ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") V
eD<1<
TitleString = regEX.Replace(pTEXT, "$3") t%k1=Ow5i
TitleNo = regEX.Replace(pTEXT, "$1") B)L=)N
ParaType = "章" {.H
FB:<!}
Exit Sub ^i;y2c
End If NP+*L|-;
#&$a7L}
.Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" __mnz``/Y
If regEX.Test(pTEXT) Then <