ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:266.32KB ,
资源ID:7789176      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7789176.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ExcelVBA常用技巧第04章shape及Chart对象.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ExcelVBA常用技巧第04章shape及Chart对象.docx

1、ExcelVBA常用技巧第04章shape及Chart对象VBA常用技巧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 多图表制作 25第4章 Shape (图形)、Chart (图表)对象技巧1在工作表中添加图形如果需要在工作表中添加

2、图形对象,可以使用 AddShape方法,如下面的代码所示。#001 Sub AddShape()#002 Dim myShape As Shape#003 On Error Resume Next#004 Sheet1.Shapes(myShape).Delete280,#005 Set myShape = Sheet1.Shapes.AddShape(msoShapeRectangle, 40, 120,30)#006With myShape#007.Name = myShape#008With .TextFrame.Characters#009.Text =单击将选择Sheet2!#01

3、0With .Font#011.Name =华文行楷#012.FontStyle =常规”#013.Size = 22#014.ColorIndex = 7#015End With#016End With#017With .TextFrame#018.HorizontalAlignment=-4108#019.VerticalAlignment = -4108#020End With#021.Placement = 3#022End With#023myShape.Select#024With Selection.ShapeRange#025With .Line#026.Weight = 1#

4、027.DashStyle = msoLineSolid#028.Style = msoLineSingle#029.Transparency = 0#030.Visible = msoTrue#031.ForeColor.SchemeColor = 40#032.BackColor.RGB = RGB(255, 255, 255)#033End With#034With .Fill#035.Transparency = 0#036.Visible = msoTrue#037.ForeColor.SchemeColor = 41#038.OneColorGradient 1,4, 0.23#0

5、39End With#040End With#041Sheet1.Range(A1).Select#042Sheet1.Hyperlinks.Add Anchor:=myShape, Address:=, _#043SubAddress:=Sheet2!A1, ScreenTip:=选择 Sheet2!#044Set myShape = Nothing#045End Sub代码解析:AddShape过程在工作表中添加一个矩形并设置其外观等属性。第2行代码声明变量myShape的对象类型。第3、4行代码删除可能存在的名称为 myShape ”的图形对象。第5行代码使用 AddShape方法在工作

6、表中添加一个矩形。当该方法应用于 Shapes对象时,返回一个 Shape对象,该对象代表工作表中的新自选图形,语法如下:expression.AddShape(Type, Left, Top, Width, Height)参数expression是必需的,返回一个 Shapes对象。参数Type是必需的,指定要创建的自选图形的类型。参数Left和Top是必需的,以磅为单位给出自选图形边框左上角的位置。参数Width和Height是必需的,以磅为单位给出自选图形边框的宽度和高度。第7行代码将新建图形命名为 myShape ”,向Shapes集合添加新的图形时,将对新添加的图形赋以默认的名称,若

7、要为图形指定更有意义的名称,可指定其 Name属性。第8行到第16行代码为矩形添加文字,并设定其格式。其中第8行代码使用TextFrame属性和Characters方法返回该矩形的字符区域。应用 于Shape对象的TextFrame 属性返回一个 TextFrame 对象,该对象包含指定图形对象的 对齐和定位属性;Characters方法返回一个 Characters对象,该对象代表某个图形的文本 框中的字符区域,语法如下:expression.Characters(Start, Length)参数expression是必需的,返回一个指定文本框内 Characters对象的表达式。参数Sta

8、rt是可选的,表示将要返回的第一个字符,如果此参数设置为 1或被忽略,则Characters方法会返回以第一个字符为起始字符的字符区域。参数Length是可选的,表示要返回的字符个数。 如果此参数被忽略, 则Characters方法会返回该字符串的剩余部分(由 Start参数指定的字符以后的所有字符)。第9行代码为矩形添加文字, 应用于Characters对象的Text属性返回或设置对象的文本,为可读写的 String类型。第10行到第15行代码设置矩形中文字的属性,应用于 Characters对象Font属性返 回一个Font对象,该对象代表指定对象的字体属性(字体名称、字体大小、字体颜色等

9、) ,第11行代码设置字体名称, 第12行代码设置字体样式, 第13行代码设置字体大小, 第14 行代码颜色。第17行到第 20行代码设定矩形中文字的对齐方式。应用于 TextFrame对象的Horizo ntalAlig nment 属性返回或设置指定对象的水平对齐方式,可为表格 1-1所示的XlHAlign 常量之一。常量值描述xlHAlignCenter-4108居中xlHAIignCenterAcrossSelection7靠左xlHAIignDistributed-4117分散对齐xlHAlignFill5分散对齐xlHAlignGeneral1靠左xlHAlignJustify-4

10、130两端对齐xlHAlignLeft-4131靠左xlHAlignRight-4152靠右表格 1-1 HorizontalAlignment 属性的 XlHAlign 常量应用于TextFrame对象的VerticalAlignment属性返回或设置指定对象的垂直对齐方式, 可为表格1-2所示的XlHAlign常量之一。常量值描述xlVAlignCenter-4108居中xlVAlignJustify-4130两端对齐xlVAlignBottom-4107靠下xlVAIignDistributed-4117分散对齐xlVAlignTop-4160靠上表格 1-2 VerticalAlign

11、ment 属性的 XlHAlign 常量Shape 对象的 Placement1-3 所示的 XlPlacement第21行代码设置矩形大小和位置不随单元格而变,应用于 属性返回或设置对象与所在的单元格之间的附属关系,可为表格 吊量之一。常量值描述xlFreeFloating3大小、位置均固定xlMove2大小固定、位置随单元格而变xlMoveAndSize1大小、位置随单元格而变表格 1-3 XlPlaceme nt 常量第24行到第32行代码设置矩形的边框线条格式, 应用于ShapeRange集合的Line属性返回一个Lin eFormat对象,该对象包含指定图形的线条格式属性。其中第26

12、行代码设置矩形线条粗细, 第27行代码设置矩形线条的虚线样式, 第28行代码设置矩形填充的透明度,第 29行代码设置矩形为可见,第 30行代码设置矩形的前景色,第31行代码设置矩形填充背景的颜色。第33行到第38行代码设置矩形的内部填充格式,应用于 ShapeRange集合的Fill属性返回FillFormat对象,该对象包含指定的图表或图形的填充格式属性。其中第35行代码设置矩形内部的透明度, 第36行代码设置矩形内部为可见, 第37行代码设置矩形内部的前景色,第 38行代码将矩形内部指定填充设为单色渐变,应用于FillFormat对象的OneColorGradient 方法将指定填充设为单

13、色渐变,语法如下:expression.OneColorGradient(Style, Variant, Degree)其中参数Style是必需的,底纹样式,可为表格 2-1所示的MsoGradientStyle 常量之。常量值描述msoGradientDiagonalDown4斜下msoGradientDiagonalUp3斜上msoGradientFromCenter7无msoGradientFromCorner5角部幅射msoGradientFromTitle6中心幅射msoGradientHorizontal1水平msoGradientMixed-2无msoGradientVertic

14、al2垂直表格 1-4 MsoGradie ntStyle 常量参数Variant是必需的,渐变变量。取值范围为 1到4之间,分别与 填充效果”寸话框中“渐变”选项卡的四个渐变变量相对应。如果 GradientStyle 设为 msoGradientFromCenter ,贝U Variant 参数只能设为 1 或 2。参数Degree是必需的,灰度。取值范围为 0.0 (表示最深)到 1.0 (表示最浅)之间。第42、43行代码为矩形对象添加超链接,应用于 Hyperlinks对象的Add方法向指定的区域或图形添加超链接,语法如下:expression.Add(Anchor, Address

15、, SubAddress, ScreenTip, TextToDisplay)参数expression是必需的,返回一个 Hyperlinks对象。参数Anchor是必需的,超链接的位置。可为 Range对象或Shape对象。参数Address是必需的,超链接的地址。参数SubAddress是必需的,超链接的子地址。参数ScreenTip是可选的,当鼠标指针停留在超链接上时所显示的屏幕提示。参数TextToDisplay是可选的,要显示的超链接的文本。运行AddShape过程结果如图 1-1所示。丄 1BCG1二匚1-101112131415图1-1 在工作表中添加图形技巧2导出工作表中的图片

16、有时需要将工作表中的图形对象保存为单独的图像文件,可以使用Export方法将工作表中的图片以文件形式导出,如下面的代码所示。#001 Sub ExportShp()#002Dim Shp As Shape#003Dim FileName As String#004For Each Shp In Sheet1.Shapes#005If Shp.Type = msoPicture Then#006FileName = ThisWorkbook.Path & & Shp.Name & .gif#007Shp.Copy#008With Sheet1.ChartObjects.Add(0,0, Shp.

17、Width+ 28, Shp.Height+ 30).Chart#009.Paste#010.Export FileName, gif#011.Parent.Delete#012End With#013End If#014Next#015End Sub代码解析:ExportShp过程将Sheetl工作表的所有图片以文件形式导出到同一目录中。第4行代码使用For Each.Next 语句遍历Sheetl工作表中的所有图形。第5行代码判断图形的类型是否为图片,应用于 Shape对象的Type属性返回或设置图形类型,可以为表格 2-1所示的MsoShapeType 常量之一。常量值说明msoShap

18、eTypeMixed-2混合型图形msoAutoShape1自选图形msoCallout2没有边框线的标注msoChart3图表msoComment4批注msoFreeform5任意多边形msoGroup6图形组合msoFormControl8窗体控件msoLine9线条msoLinkedOLEObject10链接式或内嵌 OLE对象msoLinkedPicture11剪贴画或图片msoOLEControlObject12ActiveX 控件msoPicture13图片msoTextEffect15艺术字msoTextBox17文本框msoDiagram21组织结构图或其他图示表格 2-1 M

19、soShapeType 常量第6行代码使用字符串变量 FileName记录需导出图形的路径和名称。第7行代码复制图形,应用于 Shape对象的Copy方法将对象复制到剪贴板。第8行代码使用Add方法在工作表中添加一个图表,应用于 Chartobjects对象的Add 方法创建新的嵌入图表,语法如下:expression.Add(Left, Top, Width, Height)参数expression是必需的,返回一个 ChartObjects对象。参数Left、参数Top是必需的,以磅为单位给出新对象的初始坐标, 该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标。参数Width、

20、参数Height是必需的,以磅为单位给出新对象的初始大小。第9行代码使用Paste方法将图形粘贴到新的嵌入图表中, 应用于Chart对象的Paste方法将剪贴板中的图表数据粘贴到指定的图表中,语法如下:expression.Paste(Type)参数expression是必需的,返回一个 Chart对象。参数Type是可选的的,如果剪贴板中有图表,本参数指定要粘贴的图表信息。可为以下XlPasteType 常量之一:xlFormats、xlFormulas 或xlAll。默认值为 xlAll,如果剪贴板中 是数据不是图表,则不能使用本参数。第10行代码使用Export方法将图表导出到同一目录中

21、,应用于 Chart对象的Export 方法以图形格式导出图表,语法如下:expression.Export(Filename, FilterName, Interactive)其中参数File name是必需的,被导出的文件的名称。第10行代码删除新建的图表。 因为Chart对象是不能使用 Delete方法直接删除的,应先使用Pare nt属性返回指定对象的父对象,然后使用 Delete方法删除。技巧3在工作表中添加艺术字在工作表中插入艺术字,可以使用 AddTextEffect方法,如下面的代码所示。#001 Sub TextEffect()#002Dim myShape As Shape

22、#003On Error Resume Next#004Sheet1.Shapes(myShape).Delete#005Set myShape = Sheet1.Shapes.AddTextEffect _#006(PresetTextEffect:=msoTextEffect15, _#007Text:= 我爱 Excel Home, FontName:= 宋体, FontSize:=36, _#008FontBold:=msoFalse, Fontltalic:=msoFalse, _#009Left:=100, Top:=100)#010With myShape#011.Name =

23、myShape#012With .Fill#013.Solid#014.ForeColor.SchemeColor = 55#015.Transparency = 0#016End With#017With .Line#018.Weight = 1.5#019.DashStyle = msoLineSolid#020.Style = msoLineSingle#021.Transparency = 0#022.ForeColor.SchemeColor = 12#023.BackColor.RGB = RGB(255, 255, 255)#024End With#025End With#026

24、Set myShape = Nothing#027 End Sub代码解析:TextEffect过程在工作表中插入艺术字并设置其格式。第3、4行代码删除工作表中可能存在的艺术字,以免重复添加。第5行到第9行代码使用 AddT extEffect方法在工作表中插入艺术字, AddTextEffect方法创建艺术字对象。返回一个 Shape对象,该对象代表新建的艺术字对象,语法如下:参数expression是必需的,返回一个 Shapes对象。参数PresetTextEffect 是必需的,艺术字预置文本效果,可为 MsoPresetT extEffect 常量之一,等同于在工作表中插入艺术字时的

25、样式选项卡,如图 3-1所示。图3-1 艺术字样式参数Text是必需的,艺术字对象中的文字。参数FontName是必需的,艺术字对象中所用的字体名称。参数FontSize是必需的,以磅为单位给出艺术字对象中所用的字体大小。参数FontBold是必需的,在艺术字中要加粗的字体。参数FontItalic是必需的,在艺术字中要倾斜的字体。参数Left和参数Top是必需的,相对于文档的左上角、顶部,以磅为单位给出艺术字 对象边框左上角的位置。第11行代码将艺术字对象重命名为 myShape ”。第12行到第16行代码设置艺术字对象的填充格式。 其中第13行代码将填充格式设置为均一的颜色,应用于 Fil

26、lFormat对象的Solid方法将指定的填充格式设置为均一的颜色, 可用本方法将带有渐进色、纹理、图案或背景的填充格式转换为单色的填充格式。第 14行代码设置填充的颜色。第 15行代码设置填充的透明度。第17行到第24行代码设置艺术字对象的线条格式属性。 其中第18行代码设置线条粗细,第19行代码设置线条虚线样式,第 20行代码设置线条区域的样式,第 21行代码设置 线条的透明度,第 22行代码设置前景色,第 23行代码设置填充背景的颜色。运行TextEffect过程工作表中如图 3-2所示。技巧4遍历工作表中的图形工作表中的多个图形,如果使用系统缺省名称,如“文本框 1 ”、“文本框2”这

27、样前面是固定的字符串,后面是序号的,可以使用 ForNext语句遍历图形,如下面的代码所示。#001 Sub ErgShapes_1()#002 Dim i As Integer#003 Fori = 1 To 4#004 Sheet1.Shapes( 文本框& i).TextFrame.Characters.Text =#005 Next#006 End Sub代码解析:ErgShapes_1过程清除工作表中四个图形文本框中的文字。第3行到第5行代码,使用Shapes属性在工作表上的三个图形文本框中循环。Shapes属性返回Shapes对象,代表工作表或图形工作表上的所有图形,可以使用 Sh

28、apes ( index )返回单个的 Shape对象,其中index是图形的名称或索引号。返回单个的Shape对象后使用TextFrame属性和 符,关于 Shape对象的TextFrame 属性和 CharactersCharacters方法清除文本框中的子方法请参阅技巧1 。如果图形的名称没有规律,可以使用 For EachNext语句循环遍历所有图形,根据Type属性返回的图形类型进行相应的操作,如下面的代码所示。#001Sub ErgShapes_2()#002Dim myShape As Shape#003Dim i As Integer#004i = 1#005For Each myShape In Sheet1.Shapes#006If myShape.Type = msoTextBox Then#007myShape.TextFrame.Characters.Text =这是第& i & 个文本框#008i = i + 1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1