- ベストアンサー
EXCELでチェックボックスに自動的にチェックを入れる方法
(EXCEL2000) セルAが「○○○」の時はCheckBox1に自動的にチェックが入り、 「△△△」の時はCheckBox2に自動的にチェックが入るようにVBAで出来ないでしょうか?
- みんなの回答 (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」に、○○○と入れてみましょう!
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 コントロールツールのCheckBox だと思いますので、こうなるのではないでしょうか? 'シートモジュール Private Sub Worksheet_Change(ByVal Target As Range) CheckBox1.Value = (Range("A1").Value = "○○○") CheckBox2.Value = (Range("A1").Value = "△△△") End Sub 別に、VBAでは、括弧はいらないのですが、見易さのために入れました。
お礼
回答ありがとうございます。 連絡が遅くなり申し訳ありません。 早速教えてもらったように貼り付けてみましたが上手くいきません。 コードを貼り付けるsheetのタグを右クリック→立ち上ったVBAの画面右ウインドウに貼付け→実行(R) →Sub/ユーザーフォームの実行 をするとマクロ名を登録する画面?が出ます。 キャンセル以外はグレーアウトして選択できません。 貼り付ける手順が違うのでしょうか? 初心者の質問で申し訳ないのですが、教えて下さい。
- merlionXX
- ベストアンサー率48% (1930/4007)
自動的とは○○○や△△△の入力時ということですね? セル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
お礼
回答ありがとうございます。 連絡が遅くなり申し訳ありません。 早速教えてもらったように貼り付けてみましたが上手くいきません。 コードを貼り付けるsheetのタグを右クリック→立ち上ったVBAの画面右ウインドウに貼付け→実行(R) →Sub/ユーザーフォームの実行 をするとマクロ名を登録する画面?が出ます。 キャンセル以外はグレーアウトして選択できません。 貼り付ける手順が違うのでしょうか? 初心者の質問で申し訳ないのですが、教えて下さい。
お礼
出来ました!! 丁寧ですばやい回答をしていただき本当にありがとうございました。 VBAはすごく奥が深くて難しいですね。 私も徐々に勉強して出来るようにがんばります。