Excel VBAで複数のチェックボックスを一度で削除したいときはないでしょうか。
けど、そんな中で悩むことは、
・VBAで効率的に行いたいがやり方がわからない。
ですよね。
今回はそんなお悩みを解決する
Excel VBAで複数のチェックボックスを一度で削除する方法について
まとめます!
もくじ
Excel でチェックボックスを削除する基本操作
Excel でチェックボックスを削除する基本操作について説明をします。
「オブジェクトの選択」を使い、選択したチェックボックスを削除していきます。
[ホーム]タブから「オブジェクトの選択」を選択する
[ホーム]タブから「オブジェクトの選択」を選択します。
削除したいチェックボックスを選択する
削除したいチェックボックスを選択します。
チェックボックスを削除する
削除したいチェックボックスを選択したらキーボードのDeleteキーを押します。
削除できましたね。
シートにあるすべてのチェックボックスを一度で削除するVBA
次はこれまで手動で行ってきたチェックボックスの選択と削除をVBAで一度に処理していきます。
一つ目は現在選択しているシートに存在するチェックボックスを対象に削除処理をこないます。
VBAは以下となります。
Sub シート内のチェックボックスを削除する()
Dim objCheckbox As CheckBox
Application.ScreenUpdating = False
'シート内の全チェックボックスを取得し、削除する
For Each objCheckbox In ActiveSheet.CheckBoxes
objCheckbox.Delete
Next chkBox
Application.ScreenUpdating = True
End Sub
VBAを実行します。
削除したいチェックボックスがあるシートを選択し、マクロから「シート内のチェックボックスを削除する」を選択し実行します。
一瞬でできましたね!
VBAの説明
シート内の全チェックボックスを取得し、Deleteメソッドで削除します。
For Each objCheckbox In ActiveSheet.CheckBoxes
objCheckbox.Delete
Next
選択したセルに存在するチェックボックスを削除するVBA
二つ目は選択したセルに存在した場合のみ削除をするVBAとなります。
VBAは以下となります。
Sub 選択範囲に含まれるチェックボックスを削除する()
Dim objCell As Object
Dim objCheckbox As CheckBox
'選択した範囲分のオブジェクトを取得します
For Each objCell In Selection
With objCell
For Each objCheckbox In ActiveSheet.CheckBoxes
'選択した範囲にチェックボックスオブジェクトが含まれていたら削除します
If Not Application.Intersect(objCheckbox.TopLeftCell, objCell) Is Nothing Then
objCheckbox.Delete
End If
Next
End With
Next
End Sub
横方向に選択したセルに存在するチェックボックスを削除する
横方向に選択したセルに存在するチェックボックスを削除します。
できましたね。
縦方向に選択したセルに存在するチェックボックスを削除する
縦方向に選択したセルに存在するチェックボックスを削除します。
できましたね。
飛び飛びで範囲選択したセルに存在するチェックボックスを削除する
次は縦、縦方向にランダムで選択したセルに存在するチェックボックスを削除します。
できましたね。
VBAの説明
今回のVBAについて説明します。
二種類のVBAの違いは削除対象がシート全体のチェックボックスか、選択セル範囲にあるチェックボックスかの違いのみになります。
選択した範囲分のオブジェクトを取得します。
For Each objCell In Selection
選択した範囲にIntersectメソッドによって、チェックボックスオブジェクトの左上の座標が選択したセルの座標内に含まれていたら削除します
If Not Application.Intersect(objCheckbox.TopLeftCell, objCell) Is Nothing Then
objCheckbox.Delete
End If
VBAの実装手順
実装手順は以下の通りです。
今回はExcel側にこのVBAを実装します。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。
さいごに
いかがでしょうか。
今回は、
Excel VBAで複数のチェックボックスを一度で削除する方法について
まとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す