前提・実現したいこと
Excel vba のworksheet changeを利用して、通常は白くぬりつぶされている、特定範囲のセルに対して0以上の数値が入力された場合に赤く塗りつぶしたい。
また、一度赤くなった複数セルをdeleteで消去したら、白く通常になり
コピー&ペーストした場合でも動くようにしたい
発生している問題・エラーメッセージ
セルに単発入力した場合は、赤くなり問題無し 複数セルをdeleteしても白くなり問題はないのだが、 コピーペーストされた場合には反応せず、そしてドラッグした場合には一瞬赤くなるがすぐに白くなる
該当のソースコード
vba
1 2Private Sub Worksheet_Change(ByVal Target As Range) 3 4'ターゲットセルを白に初期化 5Target.Interior.Color = vbWhite 6 7'ターゲットと指定エリアがかぶっていない場合は終了 8If Intersect(Target, Range("A1:B10")) Is Nothing Then 9 Exit Sub 10Else 11 12'複数セルを消去した場合 処理無し 13 If IsArray(Target.Cells.Value) Then 14 Exit Sub 15 End If 16 17'セル1つを削除した時 処理無し 18 If IsEmpty(Target.Cells.Value) Then 19 Exit Sub 20 End If 21 22'入力が0以上であれば、赤く塗りつぶす 23 If Target.Value > 0 Then 24 Target.Interior.Color = vbRed 25 End If 26 27End If 28End Sub 29 30
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/08 08:29