excel-checkbox-macro

エクセル マクロ

【VBAコード有】エクセルのチェックボックスをマクロで操作!

クリック1つでチェックをつけたり外したりととても便利なチェックボックスですが、マクロを作成することでさらに便利にすることができます。

この記事では、どのようにチェックボックスとマクロと組み合わせていくことができるのか、具体的なコードとともにご紹介します。

この記事では、エクセルでのチェックボックスの作り方や削除方法について解説しています。

チェックボックスを具体的にどのように使うのかといった例も紹介しているので、是非参考にしてみてください。

チェックボックスについては下記の通りまとめ記事もあるのでご参考下さい!

(関連記事):【エクセル】チェックボックスの作り方からマクロ連動まで解説!

マクロでチェックボックスを作成する

チェックボックスを作成するVBAのコード例は下記の通りです。

Sub makecheckbox()

  Dim pointX As Double
  Dim pointY As Double
  Dim pointW As Double
  Dim pointH As Double

  pointX = Range("B2").Left
  pointY = Range("B2").Top
  pointW = Range("B2").Width
  pointH = Range("B2").Height

  ActiveSheet.CheckBoxes.Add(pointX, pointY, pointW, pointH).Select

End Sub

このコードを実行すると、下記の通りB2セル辺りにチェックボックスが作成されます。

簡単に解説しますと、Dim~から始まる最初の部分は変数の宣言です。

4つの変数を、Double型で宣言しています。

VBAのデータ型にどのようなものがあるのか?については下記のページが参考になります。

Microsoft:データ型の概要

次に、宣言した変数に値を入れています。B2セルの位置・サイズ情報を入れています。

最後に、変数に入れた情報で指定した場所にチェックボックスを作成しています。

今回はB2セルを指定してピンポイントで作成していますが、変数を使用して繰り返し処理をすることで複数のボックスを一気に作成することも可能です。

例えば、下記のようなコードとなります。

Sub makecheckkbox()

  Dim pointX As Double
  Dim pointY As Double
  Dim pointW As Double
  Dim pointH As Double
  Dim i As Long
  
  For i = 2 To 5

    pointX = Cells(i, 2).Left
    pointY = Cells(i, 2).Top
    pointW = Cells(i, 2).Width
    pointH = Cells(i, 2).Height
    ActiveSheet.CheckBoxes.Add(pointX, pointY, pointW, pointH).Select
    
  Next

End Sub

このコードを実行すると、B2セル~B5セルにかけてチェックボックスが複数作成されます。

マクロでチェックボックスのチェックを入れる・外す

マクロを使ってチェックボックスのチェックを入れる・外す操作をすることもできます。

下記のコードで、チェックボックスを一括ON・OFFを実現することが可能です。

Sub checkall()

Dim ckbx As checkbox

  For Each ckbx In ActiveSheet.CheckBoxes

    If ckbx.Value = xlOn Then
   
      ckbx.Value = xlOff

    ElseIf ckbx.Value = xlOff Then
   
     ckbx.Value = xlOn
     
    End If
   
  Next ckbx

End Sub

チェックボックスのチェックが外れた状態でマクロを実行すると、チェックが入ります。

チェックボックスのチェックがついた状態でマクロを実行すると、チェックが外れます。

まとめ

  • この記事を書いた人

いしはらゆうと

パソコンが使えず全く仕事ができなかったことから猛勉強し、 各部署から頼りにされるレベルになりついにはSEに。
マクロを活用し、2人がかりで1日の仕事を1人×30分に短縮。 自身の経験から、「見るだけ勉強法」をノウハウ化し数十名以上にオンライン講座を開講。
現在は「見るだけエクセル塾」としてITの苦手な方でもスキマ時間に学ぶことのできるオンラインスクールを運営中。
元SE
国家資格:応用情報技術者

-エクセル, マクロ
-,