|
楼主 |
发表于 2009-1-14 15:38
|
显示全部楼层
Function ForeFontStr(m As Range, u As Integer) As String
& J/ _3 m5 N& va1 = "\F" + m.Characters(u, 1).Font.Name + ";" ‘字体: t& v) l' t3 R6 U1 G7 h
a2 = IIf(m.Characters(u, 1).Font.Superscript = % z, ~9 W% O5 V9 n* u
True, "\H0.33x;\A2;", "") '上脚标6 r* v1 P5 u, e- v; O/ m7 J
a3 = IIf(m.Characters(u, 1).Font.Subscript =
7 r( L! {) g2 q. o1 @5 ^! zTrue, "\H0.33x;\A0;", "") '下脚标3 x5 s- g1 t# v
a4 = IIf(m.Characters(u, 1).Font.FontStyle =
: L$ Q7 F* Z/ J7 Z"倾斜", "\Q18;", "") '倾斜
$ S, _# [0 N% o" r2 @; b7 C- g, Wa5 = IIf(m.Characters(u, 1).Font.FontStyle =2 g" M5 `, c: \9 g E( b
"加粗", "\W1.2;", "") '加粗
3 m6 ?8 r4 r1 a4 g: }a6 = IIf(m.Characters(u, 1).Font.FontStyle =
3 [0 z! i3 u4 L% j, t" z. w"加粗 倾斜", "\W1.2;\Q18;", "") ' 加粗倾斜 o, f5 v N N, i& W* e
ForeFontStr = a1 + a2 + a3 + a4 + a5 + a6( |1 I/ ~, _: Z6 G& v
End Function " V% }# f& B9 ^/ a8 z `1 X
% [+ h n& Q- y* }9 d6 _/ r
---- (2).表格中表格文字位置的转换
+ j# n; J/ m y" @---- 对文字对象的属性的直接控制来实现,通过with….end with 结构可以很容易地控制文字的高度、图层、颜色、书写方向。由于Mtext文字提供支持的排列位置分为9种,必须根据Microsoft Excel表格文字的排列方式加以合适的判定,然后进行转换。其具体的实现方法详见下面的程序。 5 S& u, }* h8 @; P$ \$ P6 |
Sub kz( )" `$ q0 B" {) s- ~
With textObj ‘文字对象. I% l% N' I1 y
.Height = textHgt
2 R% Y4 a/ n1 R8 Q4 @.Layer = newlayer.Name ‘设置图层9 q( T P$ _3 o% n0 F
.Color = acRed ‘设置颜色
0 P, l7 ^. X0 {5 q2 N.DrawingDirection = 1 ‘设置书写方向
3 t- b* }. P$ C; h/ A& \7 {If (ma.VerticalAlignment = xlTop _" \2 ?# G% p1 X, t v
Or ma.VerticalAlignment = xlGeneral) _
& L) K" ]. X7 d6 IAnd (ma.HorizontalAlignment = xlLeft _# R. S- m K R# a y
Or ma.HorizontalAlignment = xlGeneral) _
4 N% G9 A3 ?1 A$ pThen .AttachmentPoint = 1 'acAttachmentPointTopLeft
- I) E! t, d3 u, s5 {! SIf (ma.VerticalAlignment = xlTop _
8 b8 E; K/ H& |" hOr ma.VerticalAlignment = xlGeneral) _/ ]+ V4 `! c4 A) j5 B, Y
And (ma.HorizontalAlignment = xlCenter _
+ B3 J J# T- `3 `Or ma.HorizontalAlignment = xlJustify _4 w. Y- ]3 _- r/ {. S' {! X' K
Or ma.HorizontalAlignment = xlDistributed) _
! S+ l! d: `0 s( p& rThen .AttachmentPoint = 2 'acAttachmentPointTopCenter
' {' B; ?$ ~0 Y$ K, t$ aIf (ma.VerticalAlignment = xlTop _) [- ?# O, I* h4 p6 E4 v* H( A6 K
Or ma.VerticalAlignment = xlGeneral) _
8 t9 R5 `% k5 P7 w I* Y' x" _* HAnd ma.HorizontalAlignment = xlRight _
" l( w4 Z7 F: d: ^" V8 zThen .AttachmentPoint = 3 'acAttachmentPointTopRight' R B7 m/ }1 W+ F6 u4 F' e' }
If (ma.VerticalAlignment = xlCenter _
' @" d" Q* p7 ]8 A/ B$ l/ P# R$ \Or ma.VerticalAlignment = xlJustify _
! F+ q: Q" H+ d0 U+ dOr ma.VerticalAlignment = xlDistributed) _
9 I) b! W, {* x3 U9 B" JAnd (ma.HorizontalAlignment = xlLeft _
! E% X9 h- X" \9 Y9 p8 R9 }% jOr ma.HorizontalAlignment = xlGeneral) _' f; u3 V) J6 ]# n# W
Then .AttachmentPoint = 4 'acAttachmentPointMiddleLeft; C, G6 @# V/ A P0 }7 B9 F1 X6 C
If (ma.VerticalAlignment = xlCenter _: K* |- W+ Q7 Z5 i; Y
Or ma.VerticalAlignment = xlJustify _# a v' z* c. i) o
Or ma.VerticalAlignment = xlDistributed) _" H1 m$ N2 | F4 h6 `! \- c
And (ma.HorizontalAlignment = xlCenter _
. c% r1 F! g' ~' `# ^4 COr ma.HorizontalAlignment = xlJustify _( b" I; s$ h( d3 T. D4 m# G& o4 b
Or ma.HorizontalAlignment = xlDistributed) _
% e, Q/ h( b1 J+ D% P) {Then .AttachmentPoint = 5 'acAttachmentPointMiddleCenter
g+ u4 b* G& ^# C- O0 Q6 d' K7 XIf (ma.VerticalAlignment = xlCenter _
. Y' H% H% F4 V' O. f0 VOr ma.VerticalAlignment = xlJustify _) q0 C8 Z( C: d0 f0 _- |* t
Or ma.VerticalAlignment = xlDistributed) _
9 a7 ]* J4 U# V9 ?! x9 N0 nAnd ma.HorizontalAlignment = xlRight _( A/ R$ T1 z9 \; H
Then .AttachmentPoin |
|