エクセルマクロで、ダブルクリックで行に色付け・行を削除・行を非表示にするVBAコードをご紹介します。
動画で動作確認ができます👇
ダブルクリックで行に色付け
以下のExcelVBAを実行すると、ダブルクリックした行の背景色を黄色に変更します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
Rows(Target.Row).Interior.Color = 65535
Cancel = True
End With
End Sub
ダブルクリックした行の背景に色付けします。
下記コードのように、IF文を追加します。
[If .Column = 1 Then] は、1列目(A列)をダブルクリックしたときのみ、
マクロが実行されるように設定しています。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 1 Then
Rows(Target.Row).Interior.Color = 65535
Cancel = True
End If
End With
End Sub
ダブルクリックで行を非表示
以下のマクロを実行すると、ダブルクリックした行を隠します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
Rows(Target.Row).EntireRow.Hidden = True
Cancel = True
End With
End Sub
ダブルクリックした行を自動で非表示にします。
例えば9行目をダブルクリックすると、9行目が非表示になります。
「Sheet1」内のセルをダブルクリックしたときに、マクロを実行したい場合
マクロコードは「Sheet1」に記述します。
ダブルクリックで行を非表示(複数行)
以下のマクロを実行すると、ダブルクリックで複数行を非表示にします。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
Rows(Target.Row & ":" & Target.Row + 2).EntireRow.Hidden = True
Cancel = True
End With
End Sub
セルをダブルクリックすると、3行を一括で非表示にします。
例えば8行目をダブルクリックすると、8~10行目を非表示にします。
ダブルクリックで行を非表示(非表示⇔再表示)
以下のマクロを実行すると、特定セルをダブルクリックすると行の非表示と再表示を繰り返します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 1 And .Row = 1 Then
If Rows("8:10").EntireRow.Hidden <> True Then
'特定行を非表示
Rows("8:10").EntireRow.Hidden = True
Else
'特定行を再表示
Rows("8:10").EntireRow.Hidden = False
End If
End If
Cancel = True
End With
End Sub
セルA1をダブルクリックすると、8~10行目を非表示にします。
もう一度セルA1をダブルクリックすると、8~10行目を再表示します。
ダブルクリックで行を削除
以下のExcelVBAを実行すると、ダブルクリックした行を自動削除します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
Rows(Target.Row).Delete Shift:=xlUp
Cancel = True
End With
End Sub
ダブルクリックした行を自動削除します。
例えば 5行目をダブルクリックすると、5行目を削除します。
このマクロを実行すると、
「戻る」ボタンを押しても、マクロ実行前の状態に戻すことはできませんので ご注意ください。
下記コードのように、IF文を追加します。
[If .Column = 1 Then] は、1列目(A列)をダブルクリックしたときのみ、
マクロが実行されるように設定しています。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 1 Then
Rows(Target.Row).Delete Shift:=xlUp
Cancel = True
End If
End With
End Sub
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】ダブルクリック処理を自動化する使用例まとめ
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説