VBA-触类旁通:图形、图片、与表单控件

Shapes大家族:

首先认识一下,在VBA里他们都叫shapes

示例:计算有多少个shape

Sub test()
MsgBox Sheet1.Shapes.Count
End Sub

shape属性

Sub test()
Dim shp As Shape
For Each shp In Sheet1.Shapes
    i = i + 1
    Range("a" & i) = shp.Name
    Range("b" & i) = shp.TopLeftCell.Address
    Range("c" & i) = shp.Type
Next
End Sub

有上面excel里的图片得到

sheet表也有自己的类型

Sub test1()
MsgBox Sheets(2).Type ‘工作表也有自己的类型
End Sub

删除图片,根据type不同来删除

Sub test()
Dim shp As Shape
For Each shp In Sheet1.Shapes
    If shp.Type = msoPicture Then ‘shp.type = 13也行
        shp.Delete
    End If
Next
End Sub

补充说明:在参数里带“[ ]”里面的参数可以不用写,其余的是必须要写的参数

 按位置插入并调整图片(可以帮助,录制宏来实现,学会自学)

如下图所示,需要导入图片

实现代码如下:

Sub test()
Dim i As Integer
Dim shp As Shape
On Error Resume Next
For Each shp In Sheet1.Shapes ‘删除所有图片,以免越点越多
    shp.Delete
Next
For i = 2 To 12
    Sheet1.Shapes.AddPicture "d:\data\" & Range("a" & i) & ".jpg", msoFalse, msoTrue, Range("d" & i).Left, Range("d" & i).Top, Range("d" & i).Width, Range("d" & i).Height
Next
End Sub

更进一步自动化:使图片大小跟着单元格的大小变而变,通过录制宏实现,学习

Sub test()
Dim i As Integer
Dim shp As Shape
Dim shp1 As Shape
On Error Resume Next
For Each shp In Sheet1.Shapes ‘删除所有图片,以免越点越多
    shp.Delete
Next
For i = 2 To 12
    Set shp1 = Sheet1.Shapes.AddPicture("d:\data\" & Range("a" & i) & ".jpg", msoFalse, msoTrue, Range("d" & i).Left, Range("d" & i).Top, Range("d" & i).Width, Range("d" & i).Height)
    shp1.Placement = xlMoveAndSize
Next
End Sub

改文件名

VBA里对文件改名方式如下 :name  .....  as ......

Sub test1()
Name "d:\data\汪梅.jpg" As "d:\data\汪梅123.jpg"
End Sub

如下根据excel表中的数据对图片就行改名

代码如下:

Sub test()
Dim i As Integer
On Error Resume Next
For i = 2 To 12
   Name "d:\data\" & Range("a" & i) & ".jpg" As "d:\data\" & Range("a" & i) & Range("d" & i) & ".jpg"
Next
End Sub

图表对象:通过录制宏来实现

            实现

代码如下:

Sub test()
Dim shp As Shape

Set shp = Sheet1.Shapes.AddChart2
    shp.Chart.SetSourceData Range("b2:c14")  ‘数据源
    shp.Chart.ChartType = xlLine    ‘设置柱形图还是折线等图形
    shp.Chart.Axes(xlValue).MinimumScale = 1000000 ‘设置纵坐标区间

End Sub

使用表单控件

表单控件比ActiveX控件节省内存,简单,灵活

    通过分组框来使两道题的单选互斥

有分组框影响美观,那么怎么隐藏呢,在分组框属性里,他是没有这个隐藏功能的,所以无法录制来实现,靠猜来实现,触类旁通

Sub test()
Dim shp As Shape
‘寻找表单控件的差别
For Each shp In Sheet1.Shapes
    i = i + 1
    Range("g" & i) = shp.Name
   ‘ range("g"& i) = shp.type
Next
End Sub-----------------------------
Sub test1()
Dim shp As Shape

For Each shp In Sheet1.Shapes
    ‘If shp.Name = "Group Box*" Then  这样写没有效果,=必须是精准的名字
    If shp.Name Like "Group Box*" Then
        shp.Visible = msoFalse
    End If
Next
End Sub

也可以这样

Sub test1()
Dim shp As Shape

For Each shp In Sheet1.Shapes
    If shp.FormControlType = xlGroupBox Then
        shp.Visible = msoFalse
    End If
Next
End Sub

like运算符

里面的字符代表的意思需要记住

Sub test()
Dim i As Integer
Range("a2:a15").Interior.Pattern = xlNone

For i = 2 To 15
    ‘If Range("a" & i) Like "J*" Then ‘"J??????"  "J???w???"
    ‘If Range("a" & i) Like "[A-M a-m]*" Then 代表以字母开头的
    ‘If Range("a" & i) Like "[0-9]*" Then  ‘或者可以 "#*";"##*"#代表一个数字
    ‘If Range("a" & i) Like "[0-9][!0-9]*" Then ‘!感叹号代表是 “非”的意思
    ‘If Range("a" & i) Like "J???[A-Z a-z]??" Then

        Range("a" & i).Interior.Color = 65535
        ‘Range("a" & i).Font.Color = 65535
        k = k + 1
    End If
Next
Range("e1") = k
End Sub

原文地址:https://www.cnblogs.com/xiao-xuan-feng/p/12687896.html

时间: 2024-08-02 10:01:39

VBA-触类旁通:图形、图片、与表单控件的相关文章

我教女朋友学编程Html系列(6)—Html常用表单控件

做过网页的人都知道,html表单控件十分重要.基本上我们注册会员.登录用户,都需要填写用户名.密码,那些框框都是表单控件. 本来今天就想写一些常用的html表单控件,于是开始搜资料,找到了一个网页,作者的写作思路和我的基本相同,不过不足的是缺少效果图. 我打算结合着这位仁兄的文章补充一下,增加一些效果图,另外把一些新内容也补充进去,原文的地址是: HTML表单(Forms) 我站在这位仁兄的肩膀上写作,再增加一些东西,配上一些图,我想,效果应该很好,接着就跟着我来学习吧. HTML表单(Form

基于CkEditor实现.net在线开发之路(3)常用From表单控件介绍与说明

这一章主要介绍常用From表单控件,如图所示: 红色框框住的就是常用From表单控件.从左到右分别是From,复选框,单选框,文本框,多行文本框,下拉列表,按钮,图片按钮,隐藏文本框,Lable 复选框和单选框介绍与说明: 因为单选框和复选框属性和设置界面一直,所以就一起讲解,点击复选框按钮弹出,复选框设置界面,如下图: 属性说明与用法: 字段说明 输入类型 说明 控件ID   自动生成,生成一个唯一的控件ID,如果页面存在重复预览页面会报错 控件名称 手工输入 方便编辑时,知道该控件是做什么的

html bottom html submit按钮表单控件与CSS美化(http://www.divcss5.com/html/h619.shtml)

html bottom按钮html submit按钮控件html表单按钮控件-html bottom与html submit按钮表单控件与CSS美化,介绍form input bottom按钮和html input submit按钮基本结构与用法,html按钮控件bottom和submit区别,同时DIVCSS5对html按钮美化布局. 一般提交按钮使用了html submit和html bottom两种按钮控件实现同时可将按钮设置CSS样式美化为时间设计图片按钮,首先DIVCSS5介绍html

vue2.0 之表单控件绑定

表单控件绑定v-model 1.文本 <template> <div> <input type="text" name="" v-model="myVal"><br/> {{ myVal }}<br/> <input type="text" name="" v-model.lazy="myVal1"><br/&

基于Extjs的web表单设计器 第二节——表单控件设计

这一节介绍表单设计器的常用控件的设计. 在前面两章节的附图中我已经给出了表单控件的两大分类:区域控件.常用控件.这里对每个分类以及分类所包含的控件的作用进行一一的介绍,因为它们很重要,是表单设计器的基本元素,更是核心组成部门. 一.区域控件,它主要包含三个类型的控件:卡片区域.表格区域.混合区域.这三个控件是我们的其他控件的容器或者叫包装器,相当于VS里面的各种Panel.它们很重要,每种区域控件的作用都不一样,能够包含的控件类型也不大一样,它们三个区域相互配合使用,可以为我们的表单提供强大的支

表单控件使用

表单控件使用 <span style="font-family:Microsoft YaHei;"><!--百度搜索:自信的尘埃 2014/12/29--> <html> <meta charset="UTF-8"/> <head>     <title>表单元素</title> </head> <body>     <form action="

Bootstrap关于表单控件(按扭)

按钮也是表单重要控件之一,制作按钮通常使用下面代码来实现:   ?  input[type=“submit”]   ?  input[type=“button”]   ?  input[type=“reset”]   ?  <button> 这里先让大家看看Bootstrap的按钮长成什么样: 表单控件的大小: 前面看到的表单控件都正常的大小.可以通过设置控件的height,line-height,padding和font-size等属性来实现控件的高度设置.不过Bootstrap框架还提供了

表单控件+下拉列表+文本域

一.表单控件 1.<input type="text" name="user"  size="20默认" /> 2.<input type="password" name="code"  /> 3.<input type="radio" name="sex[]" value="1" />+<input ty

CSS3美化表单控件

CSS3美化表单控件 2016-06-28 18:14 by 图书馆的牧羊人, 582 阅读, 9 评论, 收藏,  编辑 表单的默认控件在不同的浏览器中的样式不同,用户体验很差.用CSS3可以实现表单控件的美化,可以提供更好的用户体验.不足之处就是浏览器的兼容性问题. 一.下拉控件 效果图: 下拉控件的布局结构: <div class="container"> <div class="select"> <p>所有选项</p