スプレッドの制御についての質問

このQ&Aのポイント
  • VB6.0でスプレッドのマウスカーソルがあたっている行のバックカラーを変える方法について質問です。
  • MouseMoveイベントを使用して行っていますが、スプレッドをスクロールすると行のズレが生じます。
  • 表示されている行だけを認識する方法はないでしょうか?
回答を見る
  • ベストアンサー

スプレッドの制御

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

一番上の行番号は TopRowでわかります。

関連するQ&A

  • スプレッド上のマウスムーブイベント

    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

  • HTML風にマウスが上に来たテキストの文字色を変更するには?

    VB初心者です。 テキスト文字の上をマウスが通過したときにその文字の色を変更するには、 どうすればいいのでしょうか?(ブルーからレッドに) Private Sub Label1_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single) ***************** End Sub MouseMoveを工夫するといいのでしょうか? 宜しくお願いします。

  • 同じコマンドボタンからマウスカーソルがはなれたら

    フォーム上のコマンドボタンにマウスカーソルが触れたら色を付ける、 同じコマンドボタンからマウスカーソルがはなれたら 、また色を変える、 という動きをvbaで行いたいのですが、 Private Sub cmd_test_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Me.cmd_test.BackColor = RGB(255, 180, 200) End Sub で、マウスカーソルが触れたら色を付けることはできたのですが、 マウスカーソルがそのコマンドボタンから離れたら色を変えるという動きができません。 Private Sub cmd_test_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Me.cmd_test.BackColor = RGB(255, 255, 255) End Sub Private Sub cmd_test_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Me.cmd_test.BackColor = RGB(255, 255, 255) End Sub Private Sub cmd_test_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Me.cmd_test.BackColor = RGB(255, 255, 255) End Sub をしても、マウスカーソルが離れても色が白になりませんでした。

  • 実行時のコントロール移動について

    実行時にデザイン時と同じようにコントロール移動をおこないたいのですが、コードを忘れてしまいました。もしご存知の方ご教授お願いします。下記にしめしたものが少しだけ覚えているものです。したがってうまく起動できていません。よろしくお願いしたいます。VB6です。w2k Private Sub cmd_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) x1 = X y1 = Y End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then cmd.Left = (X - x1) + x1 cmd.Top = (Y - y1) + y1 End If End Sub

  • マウスが触れるとテキストを表示し離れる非表示にする

    アクセスです。 フォームにラベルを設置して、 そのラベルにマウスが触れたらテキストボックスを表示させたいのです。 フォームのオープンイベントは Private Sub Form_Open(Cancel As Integer) Me.テキスト2.Visible = False End Sub になっています。 ラベルのマウスボタン解放時イベントで Private Sub ラベル0_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.テキスト2.Visible = True End Sub にして、ラベルをクリックするとテキストボックスが表示されます。 マウスボタン移動時イベントで Private Sub ラベル0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.テキスト2.Visible = True End Sub にすると、理想通りラベルからマウスが触れたらテキストボックスが表示されます。 ここまではいいのですが マウスのカーソルが離れたら またテキストボックスを非表示にしたいのですがどうすればいいですか?

  • エクセルのuserform1上に、コントロールボタンを配置し、コントロ

    エクセルのuserform1上に、コントロールボタンを配置し、コントロールボタン上にカーソルを持っていくと、 別のuseruform2が表示されるようにしたいのですが、 コントロールボタンを消すときに、userform1が白抜きになってしまいます。 きれいにuserform2を消す方法をおしえてください。 Private Sub UserForm1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Unload userform2 End Sub

  • 8つのコマンドボタン上にそれぞれマウスカーソルを置くと、userfor

    8つのコマンドボタン上にそれぞれマウスカーソルを置くと、userform1~8(図)が表示されるようにしております。 そして、Label上にマウスカーソルを置くと、表示中のuserformが消えるようになっております。 しかし、たまにですが、 > エラー番号:50290 > "アプリケーション定義またはオブジェクト定義のエラーです。" が表示されてしまい。 下記マクロのunload userform1でとまってしまいます。 なぜなのでしょうか。 Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Unload userform1 Unload userform2 Unload userform3 Unload userform4 Unload userform5 Unload userform6 Unload userform7 Unload userform8 End Sub

  • 「右クリック でドラッグ&ドロップ」で縦横の移動できるようにしたいです。

    お世話になります。 VB6で質問です。   form [ 1000*1000 ] << A picturebox [300*300 ] << B [A]の真中に[B]を配置して、[B]を「右クリック でドラッグ&ドロップ」で縦横の移動できるようにしたいです。 下記のようにしたところ、マウスのみで動いてしまい「右クリック」が関連しません。 Private Sub picturebox_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)  picturebox.Top = Y End Sub  この場合のプログラムを教えて欲しいです。

  • accsseのコンボボックス

    コンボボックスのドロップダウンリストを、自動表示するために、 Private Sub 請求先_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.請求先.SetFocus Me.請求先.Dropdown End Sub のようなコードを、使っていますが、 次に、マウスをコンボボックスから移動した時に、表示されているドロップダウンリストを非表示にしたいのですが、コードが解りませんご教授お願いします。

  • ExcelVBAでユーザーフォームのイベント対応

    Excel2010です。ユーザーフォーム上に配置した6個のComboBox(1から6)があります。 それぞれのComboBox上にマウスポインターを当てた際、そこが選択されていれば(="名称" 以外であれば)同じユーザーフォーム上にあるLabel23に説明の文字を表示させたいのです。 以下のようにComboBox1からComboBox6までComboBoxの番号以外は全く同じコードを書けばそうできると思いますが、これをもっと簡単に書くことはできないでしょうか?教えてください。 あと、もう1点 下記のコードの変数(Button、Shift、X、Y)の意味と役割は何でしょうか? Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Me.ComboBox1.Value = "名称" Then Exit Sub Me.Label23.Caption = Me.ComboBox1.Value & Range(Me.ComboBox1.ControlSource).Offset(, 9).Value End Sub 途中ComboBox 2から5は省略 Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Me.ComboBox6.Value = "名称" Then Exit Sub Me.Label23.Caption = Me.ComboBox6.Value & Range(Me.ComboBox6.ControlSource).Offset(, 9).Value End Sub