• 公開日:
  • 更新日:

エクセルでセルをチェックボックスの代わりにする方法

「エクセルで大量にチェックボックスを作成したものの、動作がすごく重くなってしまった」という場合は、セルをチェックボックスの代わりに使用してみましょう。

本記事でご紹介するVBAコードを使用すれば、セルをダブルクリックするだけでチェックが付けられるようになります。

VBAというと何やら難しそうな響きですが、コピー&ペーストの簡単な作業で仕組みを作成できますのでご安心ください。

開発タブを表示する

開発タブ

「セルをクリックするとチェックが付く」という仕組みを作成するには、エクセルのVBAを使用します。

VBAを編集する場合は、開発タブを表示させる必要があります。

リボンに開発タブが見当たらない場合は、以下の手順を参考に開発タブを表示させましょう。

ファイルタブを選択する

画面左上のファイルタブを選択します。

オプションを選択する

画面左下のオプションを選択します。

開発タブにチェックを入れる

「Excel のオプション」ダイアログボックスが表示されます。

リボンのユーザー設定を選択し、「開発」にチェックを入れ、OKボタンを押します。

開発タブ

これで、エクセルのリボンに開発タブが表示されるようになりました。

セルをチェックボックスの代わりにするVBAコード

今回はエクセルのVBAを使用して、「B3~B6セルをダブルクリックすると、セルにチェックマークが表示される」という設定を行います。

セルにチェックを入れる

フォントを「Wingdings2」に変更した後、大文字でPと入力するとチェックマークが表示されます。

そのため、ダブルクリックすることでPが入力されるように指定すれば、セルをチェックボックスのように使用できるという仕組みです。

セルをチェックボックスの代わりにするVBAコードは、以下の通りです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Intersect(Target, Range("B3:B6")) Is Nothing Then Exit Sub

Cancel = True

Dim Cell As Range
For Each Cell In Target.Cells
If Cell.Value = "P" Then
Cell.ClearContents
Else

Cell.Value = "P"

End If
Next
End Sub

コードの詳細については、以下の表をご覧ください。

チェックを付けたい範囲を変えたい場合、ダブルクリックではなく右クリックでチェックを付けたい場合など、用途に合わせたカスタマイズができます。

項目説明
Worksheet_BeforeDoubleClickシート上でダブルクリックしたときに自動で処理を実行する
Worksheet_BeforeRightClick:右クリックで処理を実行する
Rangeセルの範囲を指定する
Range("B3:B6"):B3~B6セルを指定
Range("B3:B6,B8:B12"):B3~B6セルとB8~B12セルを指定
CancelTrueにすることで、Range範囲内の動作をキャンセルできる
「BeforeDoubleClick」を指定している場合、ダブルクリックでセルが編集モードにならなくなる
「BeforeRightClick」を指定している場合、右クリックでメニューが表示されなくなる
Valueセルに値を代入する
Value = "P":Range範囲内のセルにPと入力する

エクセルでセルをチェックボックスの代わりにする方法

エクセルのVBAを使って、セルをチェックボックスの代わりにする方法を解説します。以下の手順に沿って進めていけば、セルをダブルクリックするだけでチェックマークを入れられるようになります。

セルをチェックボックス代わりにするには、チェックを入れたいセルのフォントを「Wingdings2」に変更する必要があります。一括でフォントを変更するため、チェックを入れたいセルの列番号(例:B列)を選択して列全体を選択します。

ホームタブ、フォントのプルダウン、Wingdings2の順に選択します。

フォントを変更できましたので、チェックが中央にくるように調整を行います。列全体を選択した状態のまま、上下中央揃え、中央揃えの順に選択します。

これで事前準備が完了しました。なお、列全体を選択して一括変更すると、上記のように一部の書式が崩れることがあります。フォントを変更したことで行の高さなども変わりますので、必要に応じて見た目を整えましょう。

表の修正が終わったら、シート名(例:チェックリスト)を右クリックし、コードの表示を選択します。

「Microsoft Visual Basic for Applications」が起動します。本記事「セルをチェックボックスの代わりにするVBAコード」セクションにあるコードをコピーし、白い画面にペーストします。

ファイルタブ、ファイルの上書き保存の順に選択します。

「Microsoft Excel」ダイアログボックスが表示されます。VBAを実行するにはマクロ有効ブックとして上書き保存する必要があるため、いいえボタンを押します。

「名前を付けて保存」ダイアログボックスが表示されます。保存先(例:ダウンロード)を選択し、ファイル名(例:チェックリスト)を入力します。ファイルの種類、Excel マクロ有効ブック (*.xlsm)の順に選択します。

保存ボタンを押します。

エクセルの編集画面に戻ります。今回は、B3~B6セルをチェックボックスの代わりとして使うように指定したため、試しにB3セルをダブルクリックしてみます。すると、セルの中央にチェックが表示されます。

もう一度B3セルをダブルクリックすると、チェックが消えます。ダブルクリックの操作で簡単にチェックを付けたり外したりできるため、セルをチェックボックス代わりに使いたい場合の参考にしてください。