CAD尺寸标注添加:将屏幕位置关联到工作表位置Excel / PowerPoint VBA

时间:2015-06-23 17:07:57

标签: vba excel-vba powerpoint-vba excel

我一直在搜索这个,我仍然有一些问题。我的最终目标是为PowerPoint创建一个加载项,允许我创建类似于CAD包的维度。我正在Excel中开发它,因为我可以在Excel VBA上找到更多文档。

我的主要问题,正如标题所暗示的那样,是关于获取绘制实际尺寸的屏幕位置,但欢迎任何关于我想要完成的其他方面的反馈。

问题:
绘制线条的VBA方法是Shapes.AddLine(beginX, beginY, endX, endY)。 X-Y坐标相对于文档本身的左上角。

我在http://www.mrexcel.com/forum/excel-questions/173120-mouse-events-visual-basic-applications.html找到了以下内容:

Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
x As Long
y As Long
End Type

Sub PositionXY()
Dim lngCurPos As POINTAPI
Do
GetCursorPos lngCurPos
Range("A1").Value = "X: " & lngCurPos.x & " Y: " & lngCurPos.y
DoEvents
Loop
End Sub

执行以下操作:

  

...如果您有兴趣查看单元格中的坐标   一个恒定的基础,例如在单元格A1中,运行名为PositionXY的宏   并移动鼠标。

     

要退出程序,请双击任何单元格,然后点击Esc,   输入,或选择任何单元格。

问题是POINTAPI方法获取绝对屏幕位置。

有更好的方法吗?我使用双显示器,POINTAPI似乎返回相对于主显示器左上角的位置......我想找到一种方法,如果可能的话我不必担心这个。

谢谢。

1 个答案:

答案 0 :(得分:0)

方法ActiveWindow.PointsToScreenPixelsX(0)ActiveWindow.PointsToScreenPixelsY(0)解决了提出的问题。

我需要帮助的项目更多,但他们需要更多的研究和他们自己的问题。谢谢。