• ベストアンサー

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

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

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。#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」に、○○○と入れてみましょう!

chibi126
質問者

お礼

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

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 コントロールツールのCheckBox だと思いますので、こうなるのではないでしょうか? 'シートモジュール Private Sub Worksheet_Change(ByVal Target As Range)   CheckBox1.Value = (Range("A1").Value = "○○○")   CheckBox2.Value = (Range("A1").Value = "△△△") End Sub 別に、VBAでは、括弧はいらないのですが、見易さのために入れました。

chibi126
質問者

お礼

回答ありがとうございます。 連絡が遅くなり申し訳ありません。 早速教えてもらったように貼り付けてみましたが上手くいきません。 コードを貼り付けるsheetのタグを右クリック→立ち上ったVBAの画面右ウインドウに貼付け→実行(R) →Sub/ユーザーフォームの実行 をするとマクロ名を登録する画面?が出ます。 キャンセル以外はグレーアウトして選択できません。 貼り付ける手順が違うのでしょうか? 初心者の質問で申し訳ないのですが、教えて下さい。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

chibi126
質問者

お礼

回答ありがとうございます。 連絡が遅くなり申し訳ありません。 早速教えてもらったように貼り付けてみましたが上手くいきません。 コードを貼り付けるsheetのタグを右クリック→立ち上ったVBAの画面右ウインドウに貼付け→実行(R) →Sub/ユーザーフォームの実行 をするとマクロ名を登録する画面?が出ます。 キャンセル以外はグレーアウトして選択できません。 貼り付ける手順が違うのでしょうか? 初心者の質問で申し訳ないのですが、教えて下さい。

関連するQ&A

  • エクセルVBA ユーザーフォームのチェックボックス

    エクセルVBAのユーザーフォームのチェックボックスについて教えてください。 frame1の中にCheckbox1~5があるのですが、以下のように指示したいです。 Checkbox1~4は自由にチェックできるようにしておいて、Checkbox1~4の全てにチェックが入った場合に、Checkbox1~4の全てチェックを外し(False)、その代わりCheckbox5を自動的にチェックを入れたいです(True)。 CommandButtonなどをクリックして初めて変化するのではなく、ユーザーフォームにチェックを入れている間に自動的にチェックを入れたり外したいです。 特に「Checkbox1~4の全てにチェックが入った場合」というのを、どこに入力するのか分かりませんでした。 1箇所だけならPrivate Sub CheckBox1_Click()と始めたら良いんだとおもうのですが。。。 よろしくお願いします

  • エクセル チェックボックス

    エクセルで複数の特定セルのどれかにOKの文字が入力されると、 チェックボックスに自動でチェックが入るようにできますか? (A1のセルかB1のセルかC1のセルにOKが表示されると チェックボックスにチェックが自動で入る。) よろしくお願いいたします。

  • Excelのチェックボックスのリンク

    Excel2003と2010両方使ってます。 チェックボックスを使って一工夫したいのですが 1つのチェックボックスにチェックを入れると、それに付随するチェックボックスにも自動的にチェックが入るようにはできないのでしょうか? 例えば E23あたりのセルに作った「不要」というチェックボックスにチェックを入れると F25あたりのセルに作った「不要」というチェックボックスにも自動的にチェックが入るようにしたいのですが そんなことできますか?

  • エクセル VBA チェックボックスについて

    よろしくお願い致します。 OS:XP エクセル2003 VBAのことは、まったくの初心者です。 質問なのですが、下記のようなチェックボックス7にチェックが入れば、チェックボックス8~11に自由にチェックが入れれるようになり、逆にチャックボックス7にチェックが入ってない場合は、チェックボックス8~11のチェックはクリアされ、チェックできないものを作りました。 ここから、チェックボックス7にチェック入れたあとは、必ずチェックボックス9~11のどれかにチェックが入っている状態(ラジオボタンのような)で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるようにするにはどうすればよいでしょうか? よろしくお願い致します。 Private Sub CheckBox7_Click() If CheckBox7.Value = True Then CheckBox8.Enabled = True CheckBox9.Enabled = True CheckBox10.Enabled = True CheckBox11.Enabled = True Else CheckBox8.Value = False CheckBox9.Value = False CheckBox10.Value = False CheckBox11.Value = False CheckBox8.Enabled = False CheckBox9.Enabled = False CheckBox10.Enabled = False CheckBox11.Enabled = False End If End Sub

  • Excelでチェックボックス等を作りたい

    以下のようなものをExcelで作りたいのですが、どうしたらよいか分かりません。Excel2000を使用しています。 例えば、セルA1に質問文を入れます。 A2に10点、B2に50点、C2に100点と記載し、その下のA3、B3、C3にチェックボックスを作り、いずれかを選択してもらえるようにします。 そしてその選択された内容(10、50、100点)を、D3のセルに自動的に反映されるようにしたいです。 図にすると下記のようなイメージです。     A   B   C   D 1 (質問文)以下の当てはまる数字にチェック 2 10   50  100 3 □   □   □  (結果)   Excelでこういったものを作るには、どうしたらよいでしょうか? お手数をおかけしますがご存知の方は教えてください。よろしくお願いします。

  • (EXCEL)チェックボックス,TRUE⇔スピンボタン,MAX+色変化

    お世話になります。質問させていただきます。 表題件ですが、先ず説明しやすくするために、 シート1のA列複数行にチェックボックス、B列複数行にMAX100(%)のスピンボタンが縦に並んでいると仮定させていただきます。 例えば、 (1)A4のチェックボックスにチェックを入れるとB4のスピンボタンが連動して自動的にMAX値100(%)となり、さらにA4とB4のセルの色が赤くなる。 また (2)B4のスピンボタンをMAX値100(%)とすると、連動して自動的にA4のチェックボックスにチェックが入り、さらにA4とB4のセルの色が赤くなる。 上記のようにするにはいかがするのでしょうか? 以下にイメージを記載します。 (コンマは、セル区切りを意味します。) A,B, checkbox(未check),70% →色変化なし checkbox(check入れた),100%(に自動変化) →A2B2が赤く  checkbox(自動的にcheck),100%(に設定) →A3B3が赤く  関数やVBAにお詳しい方がおられましたら、何卒アドバイスを頂戴したく存じます。 *なお、スピンボタンはフォーム、コントロールツールボックス、 どちらが適しているのか、恥ずかしながら、存じませんので、 そちらもアドバイスいただけましたら、大変に光栄に存じます。 よろしくお願い申し上げます。

  • エクセル チェックボックスの解除について(VBA)

    YES/NOを入力させる為の下記のVBAにおいて、チェックボックス1をチェックすると、アの部分でチェックボックス2の解除を行う関係で?、シート上でチェックボックス2を操作していないのにもかかわらず、勝手にCheckBox2_Click()に入り、命令文イを実行してしまいます。 ただ単にSub CheckBox1_Click()のルーチンの最後までの処理で終わりたいのですが、どうしたらよいのでしょうか。 Private Sub CheckBox1_Click() If CheckBox1 = True Then Sheets("sheet1").Range("A1") = 1 Sheets("sheet1").Range("A2") = 0 CheckBox2 = False・・・ア Else Sheets("sheet1").Range("A1") = "" End If End Sub Private Sub CheckBox2_Click() If CheckBox2 = True Then Sheets("sheet1").Range("A1") = 0 Sheets("sheet1").Range("A2") = 1 CheckBox1 = False Else Sheets("sheet1").Range("A2") = ""・・・イ End If End Sub

  • EXCELで自動的にチェックボックスの追加

    って可能でしょうか。 イメージとしてはA列にデータが入力されたら、B列にチェックボックスを自動的に追加し、選択できるようにし、あとはVBAが対象レコードを処理するみたいな感じです。 お願いします。

  • エクセル チェックボックスのチェックの判定の書き方

    エクセル内にチェックボックス(CheckBox1)を追加したのですが、セルの式にそのチェックが入っているかどうかをifを使って書きたいのですが、どのように書いたらよいのでしょうか。(コントロールツールボックスの書き方)ちなみに式を書くセルのシートとチェックボックスがあるシート(シート名:設定)は別になります。 現在チェックボックスのプログラムにセル内容を変えるように書いているのですが、保護するとだめなのでお願いします。

  • エクセル2003VBA チェックボックスについて

    エクセル2003VBA チェックボックスについての質問です よろしくお願いします。    A         B 1 あああ       □ 2 いいい       □ 3 ううう        □ . . . . 35 かかか      □ 複数のチェックボックスをB列に配置し、 B1がオンになるとbook1を開く B2がオンになるとbook2を開く ・ ・ B35がオンになるとbook35を開く処理を行いたいのですが、 非常にコードが長くなってしまいます。 以下のコード以外で、 どのチェックボックスがオンになっているかを調べる方法が知りたいのですが、よろしくお願いします。 Private Sub CheckBox1_Click() book1を開く処理 End Sub Private Sub CheckBox2_Click() book2を開く処理 End Sub ・ ・ ・ Private Sub CheckBox35_Click() book35を開く処理 End Sub

専門家に質問してみよう