ymhld 发表于 2020-1-1 11:28

excel VBA 画线成功,想显示在图的前端,求助

想在图中点三个点,坐标直接读取到表格内,并画线,现在读取坐标和画线也能成,只不过线显示一下就不见了
想法:
1、把画的线显示在最前端
2、按动按钮后,清除已画的线

https://www.lanzouj.com/i8duv1i

ymhld 发表于 2020-1-1 19:13

本帖最后由 ymhld 于 2020-1-16 13:52 编辑

请大佬们进来指点一下,如何能画,还不影响其他操作

ymhld 发表于 2020-1-3 08:29

请大佬们进来指点

ymhld 发表于 2020-1-3 17:50

手工顶贴,大佬指路呀

liucq 发表于 2020-1-16 16:08

ymhld 发表于 2020-1-16 16:14

liucq 发表于 2020-1-16 16:08
在excel里面创建一个线段对象是可以的,但是不能用gdi直接画。我没有看你的程序,所以不知道你是哪种情况

是在excel vBA 中编的一段,想在图中点三个点,现在能把三个点的屏幕坐标点上,想做成三个点在一条直线上,所以想到了画线的方法,如果能达到这种效果,不画线也行,如果有空,可以帮着看一下

漁滒 发表于 2020-2-11 03:20

线就是图形集合的元素,可以定义一个图形对象,然后遍历每一个图形去进行操作
Sub main()
    Dim line As Shape
    For Each line In ActiveSheet.Shapes
      line.Select
    Next line
End Sub

ymhld 发表于 2020-2-11 10:38

aiai 发表于 2020-2-11 03:20
线就是图形集合的元素,可以定义一个图形对象,然后遍历每一个图形去进行操作
Sub m ...

我这个问题确实挺难解,1、要画线,2只显示画线,而不影响在线上再点鼠标取点

不知道大佬有啥好办法没有,看看帮我改改?

漁滒 发表于 2020-2-11 13:24

ymhld 发表于 2020-2-11 10:38
我这个问题确实挺难解,1、要画线,2只显示画线,而不影响在线上再点鼠标取点

不知道大佬有啥好办法没 ...

在画线的时候,为画的线指定一个唯一的name属性,然后在遍历图形对象的时候,只对这个唯一的name对象进行操作
Sub main()
    ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 103.2, 64.8, 702.6, 64.8).Select
    Selection.ShapeRange.Name = "直线"
   
    Dim line As Shape
    For Each line In ActiveSheet.Shapes
      If line.Name = "直线" Then
            line.Delete
      End If
    Next line
End Sub

ymhld 发表于 2020-2-11 13:27

aiai 发表于 2020-2-11 13:24
在画线的时候,为画的线指定一个唯一的name属性,然后在遍历图形对象的时候,只对这个唯一的name对象进行 ...

我先试试,因为画完线,还要在线上点一个点,画点的时候,会读取点的坐标到表格里。


如果画了线,点个点儿的时候,会选择线,这个比较麻烦,
页: [1] 2
查看完整版本: excel VBA 画线成功,想显示在图的前端,求助