VBA常用技巧
第4章  Shape(图形)、Chart(图表)对象
技巧1  在工作表中添加图形
如果需要在工作表中添加图形对象,可以使用AddShape方法,如下面的代码所示。
#001  Sub AddShape()
#002      Dim myShape As Shape
#003      On Error Resume Next
#004      Sheet1.Shapes("myShape").Delete
#005      Set myShape = Sheet1.Shapes.AddShape(msoShapeRectangle, 40, 120, 280, 30)
#006      With myShape
#007          .Name = "myShape"
#008          With .TextFrame.Characters
#009              .Text = "单击将选择Sheet2!"
#010              With .Font
#011                  .Name = "华文行楷"
#012                  .FontStyle = "常规"
#013                  .Size = 22
#014                  .ColorIndex = 7
#015              End With
#016          End With
#017          With .TextFrame   
#018              .HorizontalAlignment = -4108
#019              .VerticalAlignment = -4108
#020          End With
#021          .Placement = 3
#022      End With
#023      myShape.Select
#024      With Selection.ShapeRange
#025          With .Line
#026              .Weight = 1
#027              .DashStyle = msoLineSolid
#028              .Style = msoLineSingle
#029              .Transparency = 0
#030              .Visible = msoTrue
#031              .ForeColor.SchemeColor = 40
#032              .BackColor.RGB = RGB(255, 255, 255)
#033          End With
#034          With .Fill
#035              .Transparency = 0
#036              .Visible = msoTrue
#037              .ForeColor.SchemeColor = 41
#038              .OneColorGradient 1, 4, 0.23
#039          End With
#040      End With
#041      Sheet1.Range("A1").Select
#042      Sheet1.Hyperlinks.Add Anchor:=myShape, Address:="", _
#043          SubAddress:="Sheet2!A1", ScreenTip:="选择Sheet2!"
#044      Set myShape = Nothing
#045  End Sub
对象图片高清代码解析:
AddShape过程在工作表中添加一个矩形并设置其外观等属性。
第2行代码声明变量myShape的对象类型。
第3、4行代码删除可能存在的名称为“myShape”的图形对象。
第5行代码使用AddShape方法在工作表中添加一个矩形。当该方法应用于Shapes对象时,返回一个Shape对象,该对象代表工作表中的新自选图形,语法如下:
expression.AddShape(Type, Left, Top, Width, Height)
参数expression是必需的,返回一个Shapes对象。
参数Type是必需的,指定要创建的自选图形的类型。
参数Left和Top是必需的,以磅为单位给出自选图形边框左上角的位置。
参数Width和Height是必需的,以磅为单位给出自选图形边框的宽度和高度。
第7行代码将新建图形命名为“myShape”,向Shapes集合添加新的图形时,将对新添加的图形赋以默认的名称,若要为图形指定更有意义的名称,可指定其Name属性。
第8行到第16行代码为矩形添加文字,并设定其格式。
其中第8行代码使用TextFrame 属性和Characters方法返回该矩形的字符区域。应用于Shape对象的TextFrame 属性返回一个TextFrame对象,该对象包含指定图形对象的对齐和定位属性;Characters方法返回一个Characters对象,该对象代表某个图形的文本框中的字符区域,语法如下:
expression.Characters(Start, Length)
参数expression是必需的,返回一个指定文本框内Characters对象的表达式。
参数Start是可选的,表示将要返回的第一个字符,如果此参数设置为 1 或被忽略,则Characters方法会返回以第一个字符为起始字符的字符区域。
参数Length是可选的,表示要返回的字符个数。如果此参数被忽略,则Characters方法会返回该字符串的剩余部分(由Start参数指定的字符以后的所有字符)。
第9行代码为矩形添加文字,应用于Characters对象的Text属性返回或设置对象的文本,为可读写的String类型。
第10行到第15行代码设置矩形中文字的属性,应用于Characters对象Font属性返回一个Font对象,该对象代表指定对象的字体属性(字体名称、字体大小、字体颜等),第11行代码设置字体名称,第12行代码设置字体样式,第13行代码设置字体大小,第14行代码颜。
第17行到第20行代码设定矩形中文字的对齐方式。应用于TextFrame对象的HorizontalAlign
ment属性返回或设置指定对象的水平对齐方式,可为表格 531所示的XlHAlign常量之一。
常量
描述
xlHAlignCenter
-4108
居中
xlHAlignCenterAcrossSelection
7
靠左
xlHAlignDistributed
-4117
分散对齐
xlHAlignFill
5
分散对齐
xlHAlignGeneral
1
靠左
xlHAlignJustify
-4130
两端对齐
xlHAlignLeft
-4131
靠左
xlHAlignRight
-4152
靠右
表格 531    HorizontalAlignment属性的XlHAlign常量
应用于TextFrame对象的VerticalAlignment属性返回或设置指定对象的垂直对齐方式,可为表格 532所示的XlHAlign常量之一。
常量
描述
xlVAlignCenter
-4108
居中
xlVAlignJustify
-4130
两端对齐
xlVAlignBottom
-4107
靠下
xlVAlignDistributed
-4117
分散对齐
xlVAlignTop
-4160
靠上
表格 532    VerticalAlignment属性的XlHAlign常量
第21行代码设置矩形大小和位置不随单元格而变,应用于Shape对象的Placement属性返回或设置对象与所在的单元格之间的附属关系,可为表格 533所示的XlPlacement常量之一。
常量
描述
xlFreeFloating
3
大小、位置均固定
xlMove
2
大小固定、位置随单元格而变
xlMoveAndSize
1
大小、位置随单元格而变
表格 533    XlPlacement常量
第24行到第32行代码设置矩形的边框线条格式,应用于ShapeRange集合的Line属性返回一个LineFormat 对象,该对象包含指定图形的线条格式属性。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。