VB6.0 SPREAD3.0
SPREADで何行か表示している時に削除したい行をクリックし、その行に色(黄色)をつけ、その色のついた行を削除ボタンを押したら削除する・・・という仕様にしたいと思っております。
そして以下のように書いてみたのですが、問題があり、
(1)クリックした行の色が変わると同時に何故だか最終行の文字の色が黄色に変わってしまう。
(2)例えば一行目をクリックしてから3行目をクリックすると一行目の文字の色が黄色になってしまい、もとに戻らない。
(3)行を選択しないまま削除ボタンを押すと下から順に行が削除されてしまう。
という3つの問題があり、解決できないでいます。
なにかアドバイスがありましたらよろしくお願いします。
'---クリックした行の色を反転---
Private Sub spread_Click(ByVal Col As Long, ByVal Row As Long)
With oSpmain
.ReDraw = False
.Row = .Row: .Col = -1:
.BackColor = vbWhite
.ForeColor = RGB(255, 300, 0)
.BlockMode = True
.Row = Row: .Row2 = Row
.Col = 1: .Col2 = .MaxCols
.BackColor = .ForeColor
.ForeColor = vbWhite Xor .ForeColor
.BlockMode = False
.ReDraw = True
End With
End Sub
'---削除ボタン---
Private Sub sakujyo_Click()
With spread
.BlockMode = True
.Action = ActionDeleteRow
.BlockMode = False
.MaxRows = .MaxRows - 1
End With
End Sub
No.1ベストアンサー
- 回答日時:
(1)カレント行がどこになっているか?が問題です。
クリックイベントのプロシージャでは、カレント行をのフォアグランドを黄色にします。一番最初に
クリックした時の.Rowの値が最終行を指しているので、最終行が黄色になり
ます。あらかじめ、先頭行を選択状態にしておき、.Rowの値に1を代入して
おく等の対処が必要です。
(2)黒に戻す処理がありません。Xorを使わなくとも、
.Row = .Row: .Col = -1 '現在反転している行を元に戻す
.BackColor = vbWhite
.ForeColor = vbBlack
.Row = Row: .Col = -1 '新しく選択した行を反転する
.BackColor = vbYellow
.ForeColor = vbBlue
では駄目ですか?
(3)カレント行(.Row)が最終行を指しているものと思います。削除のプロシ
ージャは.Rowが指すカレント行を削除します。スプレッドのクリックイベン
トが発生する前のカレント行が最終行を指しているので一番下の行が削除さ
れます。(1)の対処で直ると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleカレンダーで不要データ...
-
DocuWorksについて教えて頂きた...
-
エクセルの「ページ削除」の方...
-
iTunes デバイス 曲の削除
-
libreofficeのcalcで
-
ローマ字ひらがな入力ができな...
-
メールアプリサンダーバードに...
-
PS2エミュレータの使用はいかな...
-
選んだ行の削除
-
XPERIA Aの内部ストレージの画...
-
エクセルの行と列が突然削除で...
-
powerAutomateの使用メモリにつ...
-
タブレット端末で撮影した写真...
-
Illustrator 上で、画像を一括...
-
NoteHomepage インストールし ...
-
カートの中を空にする方法
-
being のデスクトップ壁紙を完...
-
DAEMON Toolsのマウント履歴の...
-
NVIDIAコントロールパネルのフ...
-
Excel関数で、文字を数字に変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleカレンダーで不要データ...
-
エクセルの「ページ削除」の方...
-
DocuWorksについて教えて頂きた...
-
エクセルの行と列が突然削除で...
-
メールアプリサンダーバードに...
-
libreofficeのcalcで
-
iTunes デバイス 曲の削除
-
PS2エミュレータの使用はいかな...
-
オートコンプリートを一部だけ...
-
フリーソフトの「schedule watc...
-
PDFに引いたマーカーを消したい
-
XPERIA Aの内部ストレージの画...
-
Excel 指定行削除マクロ
-
付箋ソフトの削除ログはどこに...
-
powerAutomateの使用メモリにつ...
-
この、ほしい物リストからのお...
-
カートの中を空にする方法
-
inkscape ガイド線をまとめて消...
-
メッセンジャーで相手に削除さ...
-
選んだ行の削除
おすすめ情報