CAD 尺寸标注加载项:将屏幕位置与工作表位置相关联 Excel / PowerPoint VBA
CAD Dimensioning Add In: Relating Screen Position to Worksheet Position Excel / PowerPoint VBA
我已经搜索了一段时间,但仍然遇到一些问题。我的最终目标是为 PowerPoint 创建一个 Add-In,允许我创建类似于 CAD 包的尺寸。我正在 Excel 中开发它,因为我可以在 Excel VBA 上找到更多文档。
正如标题所暗示的,我的主要问题是关于获取绘制实际尺寸的屏幕位置,但欢迎对我正在努力完成的其他方面的任何反馈。
问题:
VBA画线的方法是Shapes.AddLine(beginX, beginY, endX, endY)
。 X-Y 坐标相对于 文档 本身的 upper-left 角。
我在 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
其中执行了以下操作:
... if you are interested in seeing the coordinates in a cell on
a constant basis such as in cell A1, run the macro named PositionXY
and move the mouse around.
To exit the procedure, double click any cell and then either hit Esc,
Enter, or select any cell.
问题是 POINTAPI 方法获取绝对屏幕位置。
有更好的方法吗?我使用双显示器,POINTAPI 似乎正在返回相对于主显示器 top-left 的位置……我想找到一种方法,如果可能的话,我不必担心这个问题。
谢谢。
方法 ActiveWindow.PointsToScreenPixelsX(0)
和 ActiveWindow.PointsToScreenPixelsY(0)
解决了所提出的问题。
我需要帮助的项目更多,但需要进行更多研究并提出自己的问题。谢谢。
我已经搜索了一段时间,但仍然遇到一些问题。我的最终目标是为 PowerPoint 创建一个 Add-In,允许我创建类似于 CAD 包的尺寸。我正在 Excel 中开发它,因为我可以在 Excel VBA 上找到更多文档。
正如标题所暗示的,我的主要问题是关于获取绘制实际尺寸的屏幕位置,但欢迎对我正在努力完成的其他方面的任何反馈。
问题:
VBA画线的方法是Shapes.AddLine(beginX, beginY, endX, endY)
。 X-Y 坐标相对于 文档 本身的 upper-left 角。
我在 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
其中执行了以下操作:
... if you are interested in seeing the coordinates in a cell on a constant basis such as in cell A1, run the macro named PositionXY and move the mouse around.
To exit the procedure, double click any cell and then either hit Esc, Enter, or select any cell.
问题是 POINTAPI 方法获取绝对屏幕位置。
有更好的方法吗?我使用双显示器,POINTAPI 似乎正在返回相对于主显示器 top-left 的位置……我想找到一种方法,如果可能的话,我不必担心这个问题。
谢谢。
方法 ActiveWindow.PointsToScreenPixelsX(0)
和 ActiveWindow.PointsToScreenPixelsY(0)
解决了所提出的问题。
我需要帮助的项目更多,但需要进行更多研究并提出自己的问题。谢谢。