一、初识图形对象
dim shp as shape
dim x as integer
for each shp in activesheet.shapes
msgbox shp.name '名称
msgbox shp.type '类型
msgbox shp.topleftcell.address '左上角地址
msgbox shp.topleftcell.left '左边距 单位:像素
msgbox shp.topleftcell.top '上边距
msgbox shp.topleftcell.width '宽度
msgbox shp.topleftcell.height '高度
实现了批量获取图形对象名称
图形对象包括控件、艺术字、图片等广义的图形
二、插入复选框
通过录制宏我们了解到
For Each shp in ActiveSheet.Shapes
lf shp Name <> "Button 209" Then '这是大名,不会随小名变
shp Delete
End if
Next
for i =2 to range("a1000").end(xlup).row
ActiveSheet.CheckBoxes.Add(Range("b"&i).left,Range("b"&i).Top,Range("b"&i).Width,Range("b"&i).Height).Select '四个参数 左 上 宽 高
Selection.Characters.Text =range("a"&i).value
Selection.LinkedCell = "$C$"&i
三、批量插入图片
sheet1.shapes.addpicture filename(文件路径+文件名),linktofile(链接到某个文件,通常不选),savewithdocument(文档与图片一起保存,通常选),left,top,width,height
on error resume next可以让错误不报出来,继续执行下去
四、图表处理
首先要明白chartobjects、chartobject、chart
ChartObjects对象---工作表上所有ChartObject对象的集合 ChartObject对象---充当Chart对象的容器 Chart对象---单独的图表工作表,在chart上对图表的格式设置
Sub插入图表()
Dim cht As Chart
Dim x As integer
ChartObjects.add(左,上,宽,高)
For x = 1 To 4
Set cht = Sheet1.ChartObjects.Add(cells(3*(x- 1) +1,15).left, cells(3 *(x- 1)+ 1,15).Top, 432, 135).Chart '转换为chart
cht.SetSourceData Source:=cells(3* (x-1)+ 1, 2).Resize(3,6) '这是数据源range类型
Next
End Sub
图表属性设置
cht.ChartType = xlLine '添加标题
cht.HasTitle = True
cht.ChartTitle.Text = Cells(3 * (x-1)+ 1,1).Value &"利润率”
cht.Legend.Position = xlLegendPositionCorner'设置图例位置
Sub线条和标签()
Dim chot As ChartObject
For Each chot ln Sheet1.ChartObjects'设置线条颜色和粗细
chot.Chart.FullSeriesCollection(1).Format.Line.ForeColor.RGB = RGB(255,0,0)
chot.Chart.FullSeriesCollection(1).Format.Line.Weight = 1
"添加数据标签
chot.Chart.FullSeriesCollection(1).Select
chot.Chart.SetElement (msoElementDataLabelTop)‘更改数据标签的颜色
chot.Chart.FullSeriesCollection(1).DataLabels.Font.Color = vbRed
Next
End Sub
对于图表等空间的vba处理非常建议先录制宏再调试,多使用with语句美化代码
Comments NOTHING