エクセルVBAでセルの値を取得してチェックボックスの状態を変える方法

エクセル検索
HOMEUserForm印刷画面ファイル図形
日付・時刻データセル関数VBA関数

ユーザーフォームに配置したチェックボックスの使い方としては、基本的にチェックを入れたら指定したセルに文字や数字を記載するために使いますが、その逆の使い方でセルの値を読み取って自動的にチェックを入れることができないのかなと思ったことありませんか?

波乗りアヒル

例えば住所録でDM送付「希望あり」と「希望無し」をチェックボックスで選択しておいて、個人データが呼び出された時に、ユーザーフォームのチェックボックスも自動的にチェックの有無が表示されるようにしたい。

このような場合、チェックボックスのプロパティでは状況判断する設定は無いので、IFステートメントを使って表示させることが可能なので、ご紹介いたします。

基本的なチェックボックスの使い方については重複してしまうので、ここでは省略しますので下記を参考にしてください。

セルの値からチェックボックスの状態を取得しよう

IFステートメントで取得

下の図のようにセルA1に「DM」と入力されていたら、DM希望するチェックがある状態として(True)、空欄だったらDM不要ととしてチェックが無い状態として(False)とします。

そうすることにより、セルA1の値が【DM】となっていたらチェックを入れた状態にして、空欄だったらチェックを外すことができるので、セルの状態によってチェックボックスの状態を自在にコントロールできるようになります。

エクセルチェックボックスの状態

それでは、ユーザーフォームに配置したコマンドボタン1をクリックするとチェックボックス1がセルA1の状態を認識してチェックの有無ができるようなVBAコードをご紹介します。

IFステートメント

Private Sub CommandButton1_Click()
If Range(“A1”).Value = “DM” Then
CheckBox1.Value = True
Else
If Range(“A1”).Value = “” Then
CheckBox1.Value = False
End If
End If
End Sub

解説
  1. コマンドボタン1がクリックされたら
  2. もしセルA1の値がDMだったら
  3. チェックボタン1の状態をチェック有にする
  4. そうではなく
  5. もしセルA1の値が空欄だったら
  6. チェックボックス1の状態をチェック無しにする
  7. Ifステートメント終了
  8. Ifステートメント終了
  9. マクロ終了
エクセルチェックボックスの選択状態

もちろん、セルA1の値を消して空欄にしたらコマンドボタンを押してもチェックボックスには何も入りません。

波乗りアヒル

実際にはこのような使い方はしませんが、セルの値によってチェックボックスの状態を取得する事ができるようになるVBAコードを記述することができました。

関連記事

どこかにビューーン
ちょっとの工夫で往復無料の時代が来た!!

新着ページ

よく見られているページ

大容量無料ファイル転送サービス【ACデータ】 無料イラスト【イラストAC】

紅葉スポット