ダブルクリックするとセルの値を変更する方法
Excelでは通常、セルの値を変更するには手入力が必要ですが、VBAを使うことでダブルクリックするだけで「○」「×」などの値をトグル(切り替え)することができます。
例えば、チェックリストやタスク管理の表で「○(完了)」「×(未完了)」を切り替える場合に便利です。
VBAの作成と実行
- [開発]タブを開き、[Visual Basic]をクリックする。
- VBAエディターで [Microsoft Excel Objects] 内の「対象のシート」を開く(例:「Sheet1」)。
- 以下のコードを「Sheet1」のコードウィンドウに貼り付ける。
- Excelのシート上でセルをダブルクリックすると、「○」「×」が切り替わるようになる。
ダブルクリックで「○」「×」を切り替えるVBAコード
このコードを適用すると、セルをダブルクリックするだけで「○」⇔「×」を自動で切り替えられます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' A列のセルをダブルクリックすると「○」「×」を切り替える
If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
Cancel = True ' デフォルトの編集を無効化
Select Case Target.Value
Case "○"
Target.Value = "×"
Case "×"
Target.Value = "○"
Case Else
Target.Value = "○"
End Select
End If
End Sub
コードの解説
Worksheet_BeforeDoubleClick
イベントを使用し、セルがダブルクリックされたときに処理を実行。Me.Range("A:A")
を指定し、「A列のセルのみ」が対象になるように制限。Cancel = True
を設定し、ダブルクリック時のデフォルトの編集モードを無効化。Select Case
を使い、セルの値を「○」⇔「×」に切り替える。- セルが空白の場合は「○」を初期値として設定。
動作イメージ
このコードを適用すると、以下のようにセルをダブルクリックするだけで「○」「×」を切り替えられます。
A | B | C | |
---|---|---|---|
1 | ○ | タスク1 | 説明1 |
2 | × | タスク2 | 説明2 |
3 | ○ | タスク3 | 説明3 |
特定の範囲のみ適用する場合
A列全体ではなく、特定の範囲(例:A2:A10)だけに適用したい場合は、以下のように変更します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' A2:A10 のセルをダブルクリックで変更
If Not Intersect(Target, Me.Range("A2:A10")) Is Nothing Then
Cancel = True
Select Case Target.Value
Case "○"
Target.Value = "×"
Case "×"
Target.Value = "○"
Case Else
Target.Value = "○"
End Select
End If
End Sub
まとめ
- VBAの
Worksheet_BeforeDoubleClick
を使うと、セルをダブルクリックするだけで値を変更できる。 - A列全体を対象にする場合は
Me.Range("A:A")
、特定の範囲だけ適用する場合はMe.Range("A2:A10")
のように設定可能。 - チェックリストやタスク管理などで、素早く進捗を管理できる。