ジェラルドは、ワークシート上の画像の上にマウスを移動すると、マウスポインタが十字になることに注意します。彼は、VBAを使用して、マウスがクリックされたときの十字の座標をどのように決定できるかを知りたいと考えています。

Excelでは、(VBAを使用している場合でも)ワークシートに通常の画像として挿入されたグラフィック上のマウスポインタの座標を取得することはできません。コントロールツールボックスのImageオブジェクトを使用して画像を挿入すると、かなり自由度が増します。実際、次に示すように、MouseDownイベントハンドラーを使用して座標を決定できます。

Private Sub Image1_MouseDown(ByVal Button As Integer, _   ByVal Shift As Integer, ByVal X As Single, _   ByVal Y As Single)

MsgBox X & ", " & Y End Sub

このコードは、画像の名前がImage1であることを前提としています。同様のコードを使用して、ステータスバーにカーソル座標をリアルタイムで表示できます。

Private Sub Image1_MouseMove(ByVal Button As Integer, _   ByVal Shift As Integer, ByVal X As Single, _   ByVal Y As Single)

Application.StatusBar = Round(X, 0) & "," & Round(Y, 0)

End Sub

これらのイベントハンドラーのいずれか(または両方)は明らかにImage1に関連付けられているため、そのオブジェクトのコードウィンドウに追加する必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3421)は、Microsoft Excel 97、2000、2002、および2003に適用されます。