我被要求編寫在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()」事件。 –