我被要求编写在Excel中点击图像的能力,并在其上添加一个形状(这是一个物理治疗师的身体图,形状将指示患者的疼痛部位)。我的代码执行此行通过使用ActiveX图像控制的鼠标按下事件:鼠标按下事件时机
Private Sub bodypic_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
ClickShape x, y
End Sub
Sub ClickShape(x As Single, y As Single)
Dim shp As Shape
Dim cursor As Point
Set shp = ActiveSheet.Shapes.AddShape(msoShapeMathMultiply, x + ActiveSheet.Shapes("bodypic").Left, _
y + ActiveSheet.Shapes("bodypic").Top, 26, 26)
With shp.Fill
.ForeColor.RGB = RGB(255, 0, 0)
.BackColor.RGB = RGB(255, 0, 0)
End With
shp.Line.Visible = False
End Sub
的问题是,当鼠标光标位于该图在形状上是不可见的。只有当鼠标移出图表时,形状才会出现。
我试过various methods刷新屏幕,选择一个单元格,甚至通过SetCursor method in Lib user32更改光标位置。除了用户实际移动鼠标之外似乎没有任何工作。
重新创建问题:插入一个大约200 x 500像素的ActiveX图像控件,向控件添加一个jpeg图像,将鼠标向下的代码添加到工作表,并将点击形状代码添加到模块。
而不是mousedown不能你只使用点击事件?同样的事情,但很可能会解决问题 –
MouseDown是'点击事件' – Absinthe
哈哈,我的字面意思是“_Click()”事件。 –