こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELでチェックボックスに自動的にチェックを入れる方法

(EXCEL2000)
セルAが「○○○」の時はCheckBox1に自動的にチェックが入り、
    「△△△」の時はCheckBox2に自動的にチェックが入るようにVBAで出来ないでしょうか?

投稿日時 - 2007-05-15 19:56:50

QNo.3002800

困ってます

質問者が選んだベストアンサー

こんばんは。#2です。

貼り付け手順は、間違いありませんが、

×→立ち上ったVBAの画面右ウインドウに貼付け→実行(R)
×→Sub/ユーザーフォームの実行

右クリックすると、「コードの表示(V)」というメニュークリックしてたら、
開いた画面に、コードを貼り付けて、Alt + Q で一旦閉じてください。


Private Sub Worksheet_Change(ByVal Target As Range)
             ↑
このようになったものは、イベント・ドリブン型プロシージャと言って、ちがった種類のマクロです。この起動は、ワークシートのセルを変化させたときに、起動されるものです。
Target というものは、Excelから送られてくる命令ですから、実行する必要がありません。


□コントロールツールのCheckBox
は、今は、デザインモード(青い三角定規のアイコン)がオフになった状態だとすると、.

  CheckBox1.Value = (Range("A1").Value = "○○○")
  CheckBox2.Value = (Range("A1").Value = "△△△")

「A1」 に対して、入力を行うと、CheckBox1 に命令が送られることになります。

とりあえず、マクロを動かすためのシートの「A1」に、○○○と入れてみましょう!

投稿日時 - 2007-05-18 19:48:56

お礼

出来ました!!
丁寧ですばやい回答をしていただき本当にありがとうございました。
VBAはすごく奥が深くて難しいですね。
私も徐々に勉強して出来るようにがんばります。

投稿日時 - 2007-05-18 20:41:49

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんばんは。

コントロールツールのCheckBox だと思いますので、こうなるのではないでしょうか?

'シートモジュール
Private Sub Worksheet_Change(ByVal Target As Range)
  CheckBox1.Value = (Range("A1").Value = "○○○")
  CheckBox2.Value = (Range("A1").Value = "△△△")
End Sub

別に、VBAでは、括弧はいらないのですが、見易さのために入れました。

投稿日時 - 2007-05-15 22:49:33

お礼

回答ありがとうございます。
連絡が遅くなり申し訳ありません。
早速教えてもらったように貼り付けてみましたが上手くいきません。

コードを貼り付けるsheetのタグを右クリック→立ち上ったVBAの画面右ウインドウに貼付け→実行(R)
→Sub/ユーザーフォームの実行

をするとマクロ名を登録する画面?が出ます。
キャンセル以外はグレーアウトして選択できません。
貼り付ける手順が違うのでしょうか?
初心者の質問で申し訳ないのですが、教えて下さい。

投稿日時 - 2007-05-18 19:27:02

ANo.1

自動的とは○○○や△△△の入力時ということですね?
セルAってなんだかわかりませんのでA1セルとしました。
CheckBoxはそのシート上にあるんですね?

以下のコードを対象シートのモジュールに貼り付けてください。
シートのモジュールは、対象シートのタブを右クリックし、「コードの表示」で出来ます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Select Case Target.Value
Case "○○○"
CheckBox1.Value = True
CheckBox2.Value = False
Case "△△△"
CheckBox2.Value = True
CheckBox1.Value = False
Case Else
CheckBox1.Value = False
CheckBox2.Value = False
End Select
End Sub

投稿日時 - 2007-05-15 22:03:18

お礼

回答ありがとうございます。
連絡が遅くなり申し訳ありません。
早速教えてもらったように貼り付けてみましたが上手くいきません。

コードを貼り付けるsheetのタグを右クリック→立ち上ったVBAの画面右ウインドウに貼付け→実行(R)
→Sub/ユーザーフォームの実行

をするとマクロ名を登録する画面?が出ます。
キャンセル以外はグレーアウトして選択できません。
貼り付ける手順が違うのでしょうか?
初心者の質問で申し訳ないのですが、教えて下さい。

投稿日時 - 2007-05-18 19:27:24

あなたにオススメの質問