VBA常用技巧代码解析
#022 .Cells(3, 1).Select #023 End With
#024 If s <> \
#025 MsgBox s & Chr(10) & \没有照片!\#026 End If #027 End Sub
代码解析:
insertPic过程使用Insert方法在工作表中插入图片。
第7行代码开始For...Next循环,循环的终值由工作表中A列单元格的行数所决定。 第8行代码字符串变量FilPath保存A列名称单元格所对应的图片文件的路径和文件名,本例中图片文件的文件名应和A列中的名称一致。
第9行到第11行代码使用Dir函数在同一文件夹中查找与A列单元格中的名称相对应的图片文件,如果对应的图片文件存在则使用Insert方法将图片插入到工作表中,并将C列的单元格赋给变量rng。
Dir函数返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。如果已没有合乎条件的文件,则Dir函数会返回一个零长度字符串 (\。
第12行到第17行代码,当图片片插入到工作表时其实是插入到活动单元格的,此时需设置图片的Top属性和Left属性将图片移动到C列所对应的单元格中,并设置其Width属性和Height属性使其适应所在单元格的大小。
第18、19行代码如果在同一文件夹中没有与A列单元格对应的图片文件,则使用字符串变量s保存没有图片文件的名称。
第24行到第26行代码如果字符串变量s不等于空白说明文件夹中缺少图片文件,使用消息框提示。
运行insertPic过程工作表如图 6-2所示。
16
VBA常用技巧代码解析
图 6-2 插入图片后的工作表
如果文件夹中缺少对应的图片文件,则会进行提示,如图 6-3所示。
图 6-3 缺少图片文件提示
技巧7 固定工作表中图形的位置
17
VBA常用技巧代码解析
工作表中插入的图片,一般都是固定的尺寸和固定的单元格区域中的,但在实际使用中可能因一些人为的因素导致图片位置偏移或尺寸变化,此时可以使用VBA代码进行调整,如下面的代码所示。
#001 Sub ShapeAddress() #002 Dim rng As Range
#003 Set rng = Sheet1.Range(\#004 With Sheet1.Shapes(\#005 .Rotation = 0 #006 .Select
#007 With Selection
#008 .Top = rng(1).Top + 1 #009 .Left = rng(1).Left + 1 #010 .Width = rng.Width - 0.5 #011 .Height = rng.Height - 0.5 #012 End With #013 End With
#014 Range(\#015 End Sub
代码解析:
ShapeAddress过程调整指定图形在工作表中的位置。 第3行代码变量rng保存工作表中插入图片的单元格区域。。
第5行代码设置图片的转角,应用于Shape对象Rotation属性以度为单位返回或设置图形的转角,设置为正值向右偏转,设置为负值向左偏转,设置为零图片则保持90度垂直。
第7行到第12行代码设置图片的Top属性和Left属性将图片移动到变量rng所保存的单元格区域中,并设置其Width属性和Height属性使其适应所在单元格区域的大小。
第14行代码选择A1单元格,不然图片会处于选中状态。
经过以上设置,工作表中的图片“Picture 1”不管处于什么状态都可以一键恢复其原来的大小、位置。
18
VBA常用技巧代码解析
技巧8 使用VBA自动生成图表
在实际工作中我们常用图表来表现数据间的某种相对关系,一般采用手工插入的方式,而使用VBA代码可以在工作表中自动生成图表,如下面的示例代码。
#001 Sub ChartAdd()
#002 Dim myRange As Range #003 Dim myChart As ChartObject #004 Dim R As Integer #005 With Sheet1
#006 .ChartObjects.Delete
#007 R = .Range(\#008 Set myRange = .Range(\
#009 Set myChart = .ChartObjects.Add(120, 40, 400, 250) #010 With myChart.Chart
#011 .ChartType = xlColumnClustered
#012 .SetSourceData Source:=myRange, PlotBy:=xlColumns #013 .ApplyDataLabels ShowValue:=True #014 .HasTitle = True
#015 .ChartTitle.Text = \图表制作示例\#016 With .ChartTitle.Font #017 .Size = 20 #018 .ColorIndex = 3 #019 .Name = \华文新魏\#020 End With
#021 With .ChartArea.Interior #022 .ColorIndex = 8
#023 .PatternColorIndex = 1 #024 .Pattern = xlSolid #025 End With
#026 With .PlotArea.Interior #027 .ColorIndex = 35 #028 .PatternColorIndex = 1
19
VBA常用技巧代码解析
#029 .Pattern = xlSolid #030 End With
#031 .SeriesCollection(1).DataLabels.Delete #032 With .SeriesCollection(2).DataLabels.Font #033 .Size = 10 #034 .ColorIndex = 5 #035 End With #036 End With #037 End With
#038 Set myRange = Nothing #039 Set myChart = Nothing #040 End Sub
代码解析:
ChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。
第6行代码使用Delete方法删除工作表中已经存在的图表,而ChartObjects方法返回代表工作表中单个嵌入图表(ChartObject对象)或所有嵌入图表的集合(ChartObjects对象)的对象,语法如下:
expression.ChartObjects(Index)
其中参数Index是可选的,指定图表的名称或号码。该参数可以是数组,用于指定多个图表,因为示例中只有一个图表,所以无需指定其Index参数。
第8行代码指定图表的数据源。
第9行代码使用Add方法创建一个新图表,应用于ChartObjects对象的Add方法创建新的嵌入图表,语法如下:
expression.Add(Left, Top, Width, Height)
参数Left、Top是必需的,以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标。
参数Width、Height是必需,以磅为单位给出新对象的初始大小。
第10行代码使用Chart属性返回新创建的图表,应用于ChartObject对象的Chart属性返回一个Chart对象,该对象代表指定对象所包含的图表。
第11行代码指定新创建图表的图表类型,应用于Chart对象的ChartType属性返回或设置图表的类型,可以为XlChartType常量之一,具体请参阅VBA帮助。本例中设置为xlColumnClustered即图表类型为簇状柱形图。
第12行代码指定图表的数据源和绘图方式,应用于Chart对象的SetSourceData方法
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Excel VBA常用技巧 第04章 shape及Chart对象(4)在线全文阅读。
相关推荐: