Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >问与答111:如何使用VBA画直线?

问与答111:如何使用VBA画直线?

作者头像
fanjy
发布于 2021-04-21 08:36:05
发布于 2021-04-21 08:36:05
1.6K0
举报
文章被收录于专栏:完美Excel完美Excel

引言:今天的问题整理自mrexcel.com论坛,不难但可能会有部分人会感兴趣。

Q:我怎样使用VBA代码在两个单元格之间绘制一条直线?一个单元格命名为“start”,另一个单元格命名为“stop”,我想绘制一条红色的直线连接它们。如下图1所示。

图1

A:很简单的代码。

先确定直线的起点和终点坐标,再绘制直接并添加颜色。代码如下:

Sub AddLine()

Dim l1 As Long

Dim l2 As Long

Dim r1 As Long

Dim r2 As Long

With ActiveSheet.Range("start")

l1 = .Left

l2 = .Top

End With

With ActiveSheet.Range("stop")

r1 = .Left

r2 = .Top

End With

With ActiveSheet.Shapes.AddLine(l1, l2, r1,r2).Line

.ForeColor.RGB = RGB(255, 0, 0)

End With

End Sub

如果直线的起点在单元格start的左下角,如下图2所示。

图2

可以使用下面的代码:

Sub AddLine1()

Dim l1 As Long

Dim l2 As Long

Dim r1 As Long

Dim r2 As Long

With ActiveSheet.Range("start")

l1 = .Left

l2 = .Top + .RowHeight

End With

With ActiveSheet.Range("stop")

r1 = .Left

r2 = .Top

End With

With ActiveSheet.Shapes.AddLine(l1, l2, r1,r2).Line

.ForeColor.RGB = RGB(255, 0, 0)

End With

End Sub

如果直线的起点在单元格start的右下角,如下图3所示。

图3

可以使用下面的代码:

Sub AddLine2()

Dim l1 As Long

Dim l2 As Long

Dim r1 As Long

Dim r2 As Long

With ActiveSheet.Range("start")

l1 = .Left + .ColumnWidth * 6.5

l2 = .Top + .RowHeight

End With

With ActiveSheet.Range("stop")

r1 = .Left

r2 = .Top

End With

With ActiveSheet.Shapes.AddLine(l1, l2, r1,r2).Line

.ForeColor.RGB = RGB(255, 0, 0)

End With

End Sub

可以调整代码中的数值“6.5”,以确定合适的起点位置。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VBA实战技巧35:使用VBA组织图形2
引言:本文的代码与昨天发表的《VBA实战技巧34:使用VBA组织图形1》一样,都整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。
fanjy
2021/09/22
1.9K0
VBA专题01:操作形状的VBA代码
Excel提供了多种多样的形状类型,如下图1所示。本文主要讲述VBA操作形状的基础操作。
fanjy
2019/07/19
6.1K0
问与答60: 怎样使用矩阵数据在工作表中绘制线条?
本文来源于wellsr.com的Q&A栏目,个人觉得很有意思,对于想要在工作表中使用形状来绘制图形的需求比较具有借鉴意义,特辑录于此,代码稍有修改,供大家参考。
fanjy
2019/07/19
2.8K0
VBA实战技巧34:使用VBA组织图形1
引言:本文的代码整理自mrexcel.com,一个很好的令人兴奋的示例,有兴趣的朋友可以仔细研究。
fanjy
2021/09/22
1.8K0
VBA技术:你需要知道的一些VBA操作形状的代码
在Excel中,可以通过功能区“插入”选项卡“插图”组中的“形状”库按钮在工作表中插入形状。可以使用形状来可视化数据、在形状中添加文本、作为执行宏代码的按钮,等等。
fanjy
2023/02/24
5.1K0
VBA技术:你需要知道的一些VBA操作形状的代码
VBA实战技巧03: 精确追踪工作表中我们关注的形状
有些Excel用户喜欢在工作表中绘制形状,以实现其目的。例如,如下图1所示,绘制一个矩形方框来强调这些单元格中的数据。
fanjy
2020/03/27
1K0
使用VBA快速给所选择的多个单元格区域绘制矩形边框
首先,选取想要绘制边框的所有单元格区域,可以在选择单元格区域的同时按住Ctrl键,从而选取多个单元格区域。然后,运行下面的代码,VBA会自动给所选单元格区域的周边绘制红色的边框,效果如下图1所示。
fanjy
2023/08/30
8910
使用VBA快速给所选择的多个单元格区域绘制矩形边框
Excel图表学习51: 根据选择高亮显示图表系列数据点
本文分享一个动态图表示例,效果如下图1所示。当按下工作表中不同的按钮时,图表会自动更新,高亮显示相应数据系列的数据点。
fanjy
2019/08/23
4.1K0
Excel图表学习51: 根据选择高亮显示图表系列数据点
VBA实用小程序50: 在指定的单元格中插入指定的形状
下面的自定义函数使用Shapes集合对象的AddShape方法及其参数,可以在指定的单元格中插入指定的形状。
fanjy
2019/07/19
2.7K0
VBA实用小程序50: 在指定的单元格中插入指定的形状
使用VBA复制、插入、移动、删除和控制图片3
Z-顺序位置不能直接设置。首先,将图片发送到后台,然后通过循环向前移动图片。继续循环,直到图片达到正确的Z顺序位置。
fanjy
2023/08/29
1.3K0
使用VBA复制、插入、移动、删除和控制图片3
谈谈使用VBA控制PPT
然而,与Excel不同的是,在PowerPoint中没有宏录制器,因而不能将操作录制成代码。但我们可以借助于Excel的宏录制器,在Excel中录制相关操作的代码,然后稍作修改,将其移植到PowerPoint中。
fanjy
2023/08/30
8490
谈谈使用VBA控制PPT
VBA专题09:基本的Excel图表编程代码
图表是数据可视化的一种常用呈现方式,VBA代码可以帮助我们自动化创建图表及对图表进行相关的操作,特别是当工作表中有大量图表需要进行重复修改时,VBA十分有用。
fanjy
2020/02/18
5.2K0
Excel图表技巧08:让图表根据不同的值显示不同的背景色
4. 选择单元格区域E3:L15(如果因图表覆盖而不方便选择,可先将图表拖开,之后再将图表拖回来),设置条件格式规则如下图2所示。
fanjy
2021/02/05
3.6K0
VBA对象变量
大家好,前面介绍了vba中两个主要的对象,单元格range对象和工作表worksheet对象,以及它们的属性和方法。
无言之月
2019/10/13
2K0
用于处理图表&图形的VBA代码大全6:3个有用的图表宏
fanjy
2023/08/30
5290
用于处理图表&图形的VBA代码大全6:3个有用的图表宏
工具分享:Excel制作的条形码生成器
这是用Excel制作的一个条形码生成器,仍然是在forum.ozgrid.com中找到的一个很好的示例。
fanjy
2024/02/29
3330
工具分享:Excel制作的条形码生成器
庆国庆VBA画一红旗
Sub 画国旗(L, T, W, H) 'Dim s1 As Shape Dim oWK As Worksheet Set oWK = Excel.ActiveSheet '插入一个半径为25Point的圆 s1_L = L + (W / 30) * 5 s1_T = T + (H / 20) * 5 Set s0 = oWK.Shapes.AddShape(msoShapeRectangle, L, T, W, H)
哆哆Excel
2022/10/25
1.7K0
庆国庆VBA画一红旗
使用VBA复制文件的5个实战示例
下面的代码将C盘“test”文件夹下的文件books.xlsx复制到D盘“完美Excel”文件夹中。
fanjy
2023/08/29
1.7K0
使用VBA复制文件的5个实战示例
使用VBA复制文件:5个示例代码
下面的代码将openpyxl.xlsx从文件夹D:\完美Excel\复制到D:\完美Excel\我的文章\。
fanjy
2022/11/16
3.7K0
使用VBA复制文件:5个示例代码
问与答118:如何使用VBA将多个工作表数据复制到PPT中?
遍历每个工作表,如果工作表的单元格S1中的值为“1”,则将该工作表的“Print_Area”(打印区域)复制并粘贴到一张空白幻灯片中。
fanjy
2021/05/07
5.8K1
相关推荐
VBA实战技巧35:使用VBA组织图形2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档