ダブルクリックでセルの○ / ×を変更し、切り替える方法 | EXCELトピックス

スポンサーリンク
スポンサーリンク

ダブルクリックするとセルの値を変更する方法

Excelでは通常、セルの値を変更するには手入力が必要ですが、VBAを使うことでダブルクリックするだけで「○」「×」などの値をトグル(切り替え)することができます。

例えば、チェックリストやタスク管理の表で「○(完了)」「×(未完了)」を切り替える場合に便利です。

VBAの作成と実行

  1. [開発]タブを開き、[Visual Basic]をクリックする。
  2. VBAエディターで [Microsoft Excel Objects] 内の「対象のシート」を開く(例:「Sheet1」)。
  3. 以下のコードを「Sheet1」のコードウィンドウに貼り付ける。
  4. 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") のように設定可能。
  • チェックリストやタスク管理などで、素早く進捗を管理できる。