- ベストアンサー
初心者ですみません
A2セル上にチェックボックスを配置し、チェックが入ると1行目を塗りつぶすには 1. [表示]-[ツールバー]-[フォーム]からチェックボックスを適当な位置に貼り付け 2. 1で貼り付けたチェックボックス上で、右クリック 3. [コントロールの書式設定]-[コントロール]タブをクリック ↑ この部分の[コントロールの書式設定]-[コントロール]なんですが、わたしのでは出来ません。「サイズ」「保護」「プロパティ」「Web」しかありません。どうすればいいのでしょう? また Private Sub CheckBox1_Click() If CheckBox1 Then Rows(1).Interior.Color = vbRed Else Rows(1).Interior.Color = xlNone End If End Sub ↑ 上記のコードを2行目、3行目・・・と続けて実行したいのですが、コピー&ペーストでやっても出来ないのはなぜでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ちょっとやってみました。 > この部分の[コントロールの書式設定]-[コントロール] >なんですが、わたしのでは出来ません。「サイズ」「保 >護」「プロパティ」「Web」しかありません。どうすれば >いいのでしょう? メニューバーの 「表示」→「ツールバー」「コントロールツールボックス」を起動して、デザインモード(三角定規みたいなアイコンを選択)にする そこで、ダブルクリックでも無理ですか? もしくは、Alt+F11でVBAが起動します。 そして、次ですが、 簡単な方法だけレクチャーします。 1つめのチェックボックスは オブジェクト名(名前):CheckBox1 2つめのチェックボックスは オブジェクト名(名前):CheckBox2 となってます。 よって、単純にそれぞれに、プログラムを 作ってあげれば、動作します。 --------------- Private Sub CheckBox1_Click() If CheckBox1 Then Rows(1).Interior.Color = vbRed Else Rows(1).Interior.Color = xlNone End If End Sub --------------- Private Sub CheckBox2_Click() If CheckBox2 Then Rows(2).Interior.Color = vbRed Else Rows(2).Interior.Color = xlNone End If End Sub --------------- みたいな感じですね。
その他の回答 (2)
- kooz
- ベストアンサー率40% (6/15)
>「表示」→「ツールバー」「コントロールツールボック >ス」を起動して、デザインモード(三角定規みたいなアイ >コンを選択)にする >そこで、ダブルクリックでも無理ですか? >もしくは、Alt+F11でVBAが起動します。 >出来ませんでした。デザインモードをダブルクリックして>も何も起きませんでした。 すいません、言葉足らずでしたね。 デザインモードをダブルクリックではなく、 デザインモードをシングルクリック(選択)して、編集したいチェックボックスをダブルクリックすれば、VBAが起動しませんか? あと、チェックボックスOFF時に、 塗りつぶし無しへ戻したい場合の回避策です。 ちゃんと調べ切れてない為、 あくまで、回避策なので、参考程度でお願いします。 期待する表示にはなってますが、 見栄えはよくありません... ------------------ Private Sub CheckBox1_Click() '1行目を選択状態へ Rows("1:1").Select If CheckBox1 Then 'チェックボックス1がON状態であれば '赤で塗りつぶす Selection.Interior.ColorIndex = 3 Else 'チェックボックス1がON状態以外(OFF)であれば '塗りつぶしなし Selection.Interior.ColorIndex = xlNone End If End Sub Private Sub CheckBox2_Click() '2行目を選択状態へ Rows("2:2").Select If CheckBox2 Then Selection.Interior.ColorIndex = 3 Else Selection.Interior.ColorIndex = xlNone End If End Sub
- papayuka
- ベストアンサー率45% (1388/3066)
[コントロールの書式設定]-[コントロール]が出ない理由は解りません。 2種類のCheckBoxの質問が混在してて良く解りませんが、参考になれば。 2行目以降のセルをアクティブにしてCheck_Add を実行するとCheckBoxを作ります。 そのCheckBoxがある1つ上の行に色をつけます。 必ず「標準モジュール」に貼り付けて下さい。 試すのは新規ブックなどのテスト環境で。 '----------------------------------------------------------------- Sub Check_Add() With ActiveCell ActiveSheet.CheckBoxes.Add _ (.Left, .Top, .Width, .Height).OnAction = "Check_Color" End With End Sub '----------------------------------------------------------------- Private Sub Check_Color() Dim ch As CheckBox With ActiveSheet Set ch = .CheckBoxes(Application.Caller) If ch.TopLeftCell.Row > 1 Then If ch.Value = xlOn Then ch.TopLeftCell.Offset(-1, 0). _ EntireRow.Interior.ColorIndex = 3 Else ch.TopLeftCell.Offset(-1, 0). _ EntireRow.Interior.ColorIndex = 0 End If End If End With End Sub '-----------------------------------------------------------------
補足
メニューバーの 「表示」→「ツールバー」「コントロールツールボックス」を起動して、デザインモード(三角定規みたいなアイコンを選択)にする そこで、ダブルクリックでも無理ですか? もしくは、Alt+F11でVBAが起動します。 出来ませんでした。デザインモードをダブルクリックしても何も起きませんでした。 Private Sub CheckBox1_Click() If CheckBox1 Then Rows(1).Interior.Color = vbRed Else Rows(1).Interior.Color = xlNone End If End Sub --------------- Private Sub CheckBox2_Click() If CheckBox2 Then Rows(2).Interior.Color = vbRed Else Rows(2).Interior.Color = xlNone End If End Sub ありがとうございました。出来たことには出来たのですが、元々の表が1行ごとに「白」「水色」の繰り返しになっているんですが、上記のコードを実行するとチェックを外すと全て「水色」になってしまうのですが何故なんでしょう?白の行はチェックをして赤に変わりチェックを外すと「白」に戻るやり方はあるのでしょうか?