【Excel VBA】チェックボックスを作成する方法!複数一括作成や表示名変更も!

【Excel VBA】チェックボックスを作成する方法!複数一括作成や表示名変更も!

Excel VBAで複数のチェックボックスを作成するときはないでしょうか。

たとえば作成したタスクリストのステータス確認でチェックボックスを利用するなどが該当するかと思います。

けど、そんな中で悩むことは、

・Excelでチェックボックスを一つ一つ設定しなければならず面倒。
・チェックボックスのテキストレイヤーのサイズ調整が面倒。
・VBAで効率的に行いたいがやり方がわからない。

ですよね。

今回はそんなお悩みを解決する

・Excelでチェックボックスを作成する基本操作
・VBAで複数のチェックボックスを作成する方法
・VBAでチェックボックスの表示名を指定した上で作成する方法

についてまとめます!

Excel でチェックボックスを作成する基本操作

Excel でチェックボックスを作成する基本操作について説明をします。
VBAで使うフォームコントロールのチェックボックスを選択し、オブジェクトとしてシートへ挿入していきます。

Excel でチェックボックスを作成する基本操作

[開発]タブからチェックボックスオブジェクトを挿入する

[開発]タブの[挿入]ボタンをクリックします。

「フォームコントロール」の「チェックボックス」をクリックします。

「フォームコントロール」の「チェックボックス」

タカヒロ
タカヒロ
開発タブが表示されていない方はExcelのオプションメニューを開き、「リボンのユーザ設定」をクリックし、「開発」にチェックをいれ、OKを押してください。

チェックボックスのテキストレイヤーのサイズを調整する

挿入したチェックボックスのテキストレイヤーを文字が表示されるサイズまで広げます。

チェックボックスのテキストレイヤー チェックボックスのテキストレイヤー

配置した位置も必要に応じて調整をしていきます。

そして項目数分作業を繰り返します。

はい、完成です。

チェックボックスのテキストレイヤー調整完了

タカヒロ
タカヒロ
若干各チェックボックスの位置がタスクの位置に合っていませんね…
手作業ですから仕方ないところです。

VBAで複数のチェックボックスを作成する

次はこれまで手動で行ってきたチェックボックスの作成と配置、サイズ調整をVBAで一度に処理していきます。

複数のチェックボックスを作成するVBA

複数のチェックボックスを作成するVBAは以下となります。

Sub 複数のチェックボックスを作成する()

    Dim objCell As Object
    
    '選択した範囲分のオブジェクトを取得します
    For Each objCell In Selection
    
        With objCell
        '選択したセルの位置へチェックボックスを配置し、セルのサイズに調整します。
        ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Select
        End With
        
    Next

End Sub

VBAの実行結果

VBAを実行する前に挿入したいセルを選択します。

セルを選択

VBAを実行しましょう。
マクロのメニューから「複数のチェックボックスを作成する」を選択します。

タカヒロ
タカヒロ
VBAの実装方法や実行手順については以下の項目をご参照ください。

一瞬でできましたね!

チェックボックス作成完了

サイズも位置もC列のセルピッタリにつくられています!

チェックボックスサイズ調整完了

タカヒロ
タカヒロ
数多くのものの調整がピッタリできた時は気持ちがいいものですね。

VBAでチェックボックスの表示名を指定した上で作成する

チェックボックス内にあるテキストは作成時に自動で入ってしまいます。

別の表示名にしたり、表示名自体入れないでおきたいときがあるかと思いますので、

VBAでその処理を追加したいと思います。

コードは以下の通りで、表示名を”チェック”にしています。

Sub 複数のチェックボックスを作成する_表示名指定()

    Dim objCell As Object
    
    '選択した範囲分のオブジェクトを取得します
    For Each objCell In Selection
    
        With objCell
            '選択したセルの位置へチェックボックスを配置し、セルのサイズに調整します。
            ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Select
            Selection.Characters.Text = "チェック"
        End With
        
    Next

End Sub

では実行してみましょう。

チェックボックス表示名調整完了

表示名が”チェック”に統一されましたね。

チェックボックスの表示名を非表示にする

表示名を非表示にしたい場合は、「チェック」を外してください。

Selection.Characters.Text = “”

複数のチェックボックスを作成するVBAの説明

今回のVBAは非常にシンプルです。

選択したセルの情報を取得し、それぞれのセルの位置にチェックボックスを配置し、セルの横幅、縦幅にチェックボックスのテキストレイヤーのサイズを調整する処理となります。

選択した範囲分のオブジェクトを取得します。

For Each objCell In Selection

選択したセルの位置へチェックボックスを配置し、セルのサイズに調整します。

ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Select

チェックボックスプロパティのAddメソッドで追加しています。構文は以下の通りです。

CheckBoxes.Add(左から数えた座標, 上から数えた座標, レイヤーの横幅,レイヤーの縦幅).Select

追加処理のチェックボックスの表示名を変更する箇所については

Selection.Characters.Text = “チェック”

で実現しています。

選択したCharacters.Textプロパティでテキストの中身を指定しています。

VBAの実装手順

実装手順は以下の通りです。

今回はExcel側にこのVBAを実装します。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。
※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。

さいごに

いかがでしょうか。

今回は、

・Excelでチェックボックスを作成する基本操作
・VBAで複数のチェックボックスを作成する方法
・VBAでチェックボックスの表示名を指定した上で作成する方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です