アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6.0について質問です。
スプレッドでマウスのカーソルがあたっている行のバックカラーを変えたいのですがうまくいきません。
MouseMoveイベントでやっています。
バックカラーを変えるところまではなんとかできたのですが
その後カーソルがあたっていないところは色をもどしたいのですができません><
今やっている処理は以下のコードです。
実現するにはどこをに何を加えたらよいですか?

Private Sub spdlist_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim actrow

With spdlist
.Col = -1
actrow = Int(y / 400)
.Row = actrow
.BackColor = vbred
End With

End Sub

A 回答 (1件)

セル幅を1行ごとに計算しなければなりません。


できればClickイベントを使いたいところです。

下記のような感じでいかがですか?
.RowHeight(i) + 10としているのは、.RowHeightには
罫線の幅が含まれないからです。

スクロールには対応していません。

Public OldRow As Integer

Option Explicit
Private Sub fpSpread1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
Dim MyHeit As Integer
With fpSpread1
.Col = -1
.Row = OldRow
.BackColor = vbWhite
.UnitType = 2
MyHeit = 0
For i = 0 To .MaxRows
MyHeit = MyHeit + .RowHeight(i) + 10
If MyHeit > y Then Exit For
Next i
.Col = -1
.Row = i
.BackColor = vbRed
OldRow = i

End With

End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!