excel 宏 获取当前图形位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel 宏 获取当前图形位置相关的知识,希望对你有一定的参考价值。

对某一单元格内的图形对象指定宏,如何在编写代码时获得这个对象所在单元格的坐标?

首先你要知道这个图片的内置名称

你可以先选中这个图片然后 运行以下代码获得:

Sub SAddress()
    a = Selection.Name
    msgbox "所选目标的名称是:" & a
End Sub

把名称记录下来,然后用以下代码来获得图片左上角和右下角所在单元格,即可获得图片所在的区域

Sub test()
Dim leftAdd As String, rightAdd
leftAdd = Shapes("Picture 2").TopLeftCell.Address(0, 0)
rightAdd = Shapes("Picture 2").BottomRightCell.Address(0, 0)
MsgBox "图片名称为:Picture 2所在的单元格区域是:" & leftAdd & ";" & rightAdd
End Sub

追问

我明白你的意思 我把我现在需要做的跟你说一下 看看你会不会哈
我要在某个单元格插入一个自选图形,每次点击自选图形都会让它左侧的单元格值+1
所以我想要知道怎么样用同一个代码,使得任意自选图形在指定这个宏的时候,都可以实现这个功能。
我想到要用找出图形位置的代码,但是你的方法还是需要先选中才行。
有别的办法么?

追答

Sub test()
Dim leftAdd As String, rightAdd
a = Application.Caller
leftAdd = Shapes(a).TopLeftCell.Address(0, 0)
rightAdd = Shapes(a).BottomRightCell.Address(0, 0)
MsgBox "图片名称为:Picture 2所在的单元格区域是:" & leftAdd & ";" & rightAdd
End Sub

参考技术A VBA中,Shape 对象代表了工作表中的图形对象
因此可以用 Shape 对象的 TopLeftCell 和 BottomRightCell 返回图形对象所在的左上角单元格和右下角单元格,也就得到了相应的单元格引用位置:
图形左上角单元格:Activesheet.Shapes(图形对象序号).TopLeftCell.Address
图形右下角单元格:Activesheet.Shapes(图形对象序号).BottomRightCell.Address追问

我明白你的意思 我把我现在需要做的跟你说一下 看看你会不会哈
我要在某个单元格插入一个自选图形,每次点击自选图形都会让它左侧的单元格值+1
所以我想要知道怎么样用同一个代码,使得任意自选图形在指定这个宏的时候,都可以实现这个功能。
我想到要用找出图形位置的代码,但是你的方法还是需要先选中才行。
有别的办法么?

追答

有点麻烦,暂时想到的是这样:为每个形状指定一个Click事件过程,将自己的形状名称传递给一个公共过程,这个公共过程根据形状名称,对其TopLeftCell进行+1操作。代码如下:
Sub 矩形1_Click()
shapeclicked ("Rectangle 1")
End Sub

Sub 矩形2_Click()
shapeclicked ("Rectangle 2")
End Sub

Sub shapeclicked(Shape_Name)
Dim c As Range
Set c = ActiveSheet.Shapes(Shape_Name).TopLeftCell
c = c + 1
End Sub

本回答被提问者和网友采纳
参考技术B Sub Macro1()
'
' Macro1 Macro
' 宏由 zenith 录制,时间: 2008-4-3
'

'
With Selection
.Placement = xlMoveAndSize
.PrintObject = True
End With
End Sub

用2003版的Excel使用“宏”打开NMON软件生产的.nmon文件

用2003版的Excel使用“宏”打开NMON软件生产的.nmon文件

       nmon analyser——生成 AIX 性能报告的免费工具,可从 NMON 的输出中生成大量的报告图形。nmon_analyser 工具以 NMON 性能工具生成的文件作为输入,然后将它们转换为 Microsoft Excel 电子表格,并自动地生成相应的图形。


       在用nmon_analyser 工具中的“nmon analyser v334.xls”打开.nmon文件时,2003版的Excel跳出个对话框,提示“由于安全级别被设为高,并且没有附加数字签字的可信任证书,因此这些宏被禁用。若要运行这些宏,请将安全级别设置为更低级别,或请求作者使用证书颁发机构锁颁发的证书对宏进行数字签名。”

   然后打开2003版的Excel中的“工具”——》“宏”——》“安全行”中的“安全级”选择“低”,而且“可靠发行商”中选择“信任所有安全的加载项和模板”和选择“信任对应XXX的访问”。然后关闭Execl,然后再重新打开Execl就可以使用“宏”了。

注:“宏”:指一系列EXCEL能够执行的VBA语句。当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。

以上是关于excel 宏 获取当前图形位置的主要内容,如果未能解决你的问题,请参考以下文章

根据当前鼠标位置缩放图形

通过python中xlrd读取excel表格(xlwt写入excel),xlsxwriter写入excel表格并绘制图形

如何获取 Java 图形位置信息?

Python:将图形导入 Excel 并将整个工作表导出为 EPS

LaTeX绘制UML图形宏包开发过程记录001

21.图形交互之tkinter--鼠标键盘位置实时获取