Excelでチェックシートを作るケースはあると思います。チェックボックスが大量にあるとチェック作業が面倒です。
複数のチェックボックスを一括してチェックできる方法を考えました。
なお、ここでは開発タブから挿入するフォームではなく、チェックボックスを表す文字を使用しています。Excel2013で確認しました。
準備(マクロ)
VBエディターを開く。※ExcelでAlt+F11など。
プロジェクトエクスプローラーで該当のシートを選択。※ダブルクリック。
コードを貼り付け。
準備(シート)
該当のシートのセルにチェックボックスを使った文字列をセットします。
チェックボックスは次の文字を使います。チェックボックスは一つのセルに一つだけです。「☐はい」というようにラベル(文字列)を付けることができます。
☐ (&H2610)
☑ (&H2611)
コード
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
str_off = ChrW(&H2610)
str_on = ChrW(&H2611)
For Each x In Target
If InStr(x.Value, str_on) > 0 Then
x.Value = Replace(x.Value, str_on, str_off)
ElseIf InStr(x.Value, str_off) > 0 Then
x.Value = Replace(x.Value, str_off, str_on)
End If
Next x
End Sub
str_off = ChrW(&H2610)
str_on = ChrW(&H2611)
For Each x In Target
If InStr(x.Value, str_on) > 0 Then
x.Value = Replace(x.Value, str_on, str_off)
ElseIf InStr(x.Value, str_off) > 0 Then
x.Value = Replace(x.Value, str_off, str_on)
End If
Next x
End Sub
使い方
チェックボックスの入ったセルを選択するとチェックをオン、オフできます。
複数のセルを選択することもできます。
コメント