VBA常用技巧代码解析1VBA常用技巧目录VBA常用技巧...................................................................................................................................1第4章Shape(图形)、Chart(图表)对象..................................................................2技巧1在工作表中添加图形.......................................................................................2技巧2导出工作表中的图片.......................................................................................7技巧3在工作表中添加艺术字...................................................................................9技巧4遍历工作表中的图形.....................................................................................11技巧5移动、旋转图片.............................................................................................13技巧6工作表中自动插入图片.................................................................................14技巧7固定工作表中图形的位置.............................................................................17技巧8使用VBA自动生成图表..............................................................................19技巧9使用独立窗口显示图表.................................................................................23技巧10导出工作表中的图表...................................................................................24技巧11多图表制作...................................................................................................25VBA常用技巧代码解析2第4章Shape(图形)、Chart(图表)对象技巧1在工作表中添加图形如果需要在工作表中添加图形对象,可以使用AddShape方法,如下面的代码所示。#001SubAddShape()#002DimmyShapeAsShape#003OnErrorResumeNext#004Sheet1.Shapes(myShape).Delete#005SetmyShape=Sheet1.Shapes.AddShape(msoShapeRectangle,40,120,280,30)#006WithmyShape#007.Name=myShape#008With.TextFrame.Characters#009.Text=单击将选择Sheet2!#010With.Font#011.Name=华文行楷#012.FontStyle=常规#013.Size=22#014.ColorIndex=7#015EndWith#016EndWith#017With.TextFrame#018.HorizontalAlignment=-4108#019.VerticalAlignment=-4108#020EndWith#021.Placement=3VBA常用技巧代码解析3#022EndWith#023myShape.Select#024WithSelection.ShapeRange#025With.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)#033EndWith#034With.Fill#035.Transparency=0#036.Visible=msoTrue#037.ForeColor.SchemeColor=41#038.OneColorGradient1,4,0.23#039EndWith#040EndWith#041Sheet1.Range(A1).Select#042Sheet1.Hyperlinks.AddAnchor:=myShape,Address:=,_#043SubAddress:=Sheet2!A1,ScreenTip:=选择Sheet2!#044SetmyShape=Nothing#045EndSub代码解析:AddShape过程在工作表中添加一个矩形并设置其外观等属性。第2行代码声明变量myShape的对象类型。第3、4行代码删除可能存在的名称为“myShape”的图形对象。第5行代码使用AddShape方法在工作表中添加一个矩形。当该方法应用于Shapes对象时,返回一个Shape对象,该对象代表工作表中的新自选图形,语法如下:expression.AddShape(Type,Left,Top,Width,Height)参数expression是必需的,返回一个Shapes对象。VBA常用技巧代码解析4参数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对象的HorizontalAlignment属性返回或设置指定对象的水平对齐方式,可为表格1-1所示的XlHAlign常量之一。常量值描述xlHAlignCenter-4108居中xlHAlignCenterAcrossSelection7靠左xlHAlignDistributed-4117分散对齐xlHAlignFill5分散对齐xlHAlignGeneral1靠左xlHAlignJustify-4130两端对齐xlHAlignLeft-4131靠左xlHAlignRight-4152靠右表格1-1HorizontalAlignment属性的XlHAlign常量VBA常用技巧代码解析5应用于TextFrame对象的VerticalAlignment属性返回或设置指定对象的垂直对齐方式,可为表格1-2所示的XlHAlign常量之一。常量值描述xlVAlignCenter-4108居中xlVAlignJustify-4130两端对齐xlVAlignBottom-4107靠下xlVAlignDistributed-4117分散对齐xlVAlignTop-4160靠上表格1-2VerticalAlignment属性的XlHAlign常量第21行代码设置矩形大小和位置不随单元格而变,应用于Shape对象的Placement属性返回或设置对象与所在的单元格之间的附属关系,可为表格1-3所示的XlPlacement常量之一。常量值描述xlFreeFloating3大小、位置均固定xlMove2大小固定、位置随单元格而变xlMoveAndSize1大小、位置随单元格而变表格1-3XlPlacement常量第24行到第32行代码设置矩形的边框线条格式,应用于ShapeRange集合的Line属性返回一个LineFormat对象,该对象包含指定图形的线条格式属性。其中第26行代码设置矩形线条粗细,第27行代码设置矩形线条的虚线样式,第28行代码设置矩形填充的透明度,第29行代码设置矩形为可见,第30行代码设置矩形的前景色,第31行代码设置矩形填充背景的颜色。第33行到第38行代码设置矩形的内部填充格式,应用于ShapeRange集合的Fill属性返回FillFormat对象,该对象包含指定的图表或图形的填充格式属性。其中第35行代码设置矩形内部的透明度,第36行代码设置矩形内部为可见,第37行代码设置矩形内部的前景色,第38行代码将矩形内部指定填充设为单色渐变,应用于FillFormat对象的OneColorGradient方法将指定填充设为单色渐变,语法如下:expression.OneColorGradient(Style,Variant,Degree)其中参数Style是必需的,底纹样式,可为表格2-1所示的MsoGradientStyle常量之一。常量值描述msoGradientDiagonalDown4斜下msoGradientDiagonalUp3斜上VBA常用技巧代码解析6msoGradientFromCenter7无msoGradientFromCorner5角部幅射msoGradientFromTitle6中心幅射msoGradientHorizontal1水平msoGradientMixed-2无msoGradientVertical2垂直表格1-4MsoGradientStyle常量参数Variant是必需的,渐变变量。取值范围为1到4之间,分别与“填充效果”对话框中“渐变”选项卡的四个渐变变量相对应。如果GradientStyle设为ms