• ベストアンサー

EXCEL(2003)にてアンケート作成中です。

EXCEL(2003)にてアンケート作成中です。 例えば、以下の設問があり □同意する。□同意しない。 □が押されたら、■となるように考えております。 フォーム・コントロールツールボックスのトグルボタンの 利用を試しておりますが、押下状態での色の変更が不明です。 可能であれば、教授よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

手元の Excel が 2007 だからかもしれませんが、シートの上に張り付けるための "フォーム コントロール" にはトグルボタンがありません。 "Active X コントロール" にならトグルボタンがありました。 ■ Active X コントロールのトグルボタンの場合 ボタンが押された状態 (Value プロパティー値が True の場合) に背景色を黒にしてもボタン表面が網掛けになってしまうため、期待するような結果は出ませんでした。 Private Sub ToggleButton1_Click() If ToggleButton1.Value Then ToggleButton1.BackColor = 0 Else ToggleButton1.BackColor = &HFFFFFF End If End Sub これは仕様だと思うのでどうしようもないかも。 ■ オートシェイプを使う場合 オートシェイプの四角形を使ってみました。 シート上にオートシェイプの四角形を描画し、黒枠線 & 白塗りつぶしにしておきます。 VBEditor にて標準モジュールを追加し、下記マクロを登録します。 Sub ReverseBackColor() Dim Shp As Shape Set Shp = ActiveSheet.Shapes(Application.Caller) ' 塗りつぶしの色が黒なら白にし、黒以外だったら黒にする。 Select Case Shp.Fill.ForeColor.SchemeColor Case 8 Shp.Fill.ForeColor.SchemeColor = 9 Case Else Shp.Fill.ForeColor.SchemeColor = 8 End Select End Sub 次に四角形を右クリックして [マクロの登録] でReverseBackcolor を選択します。 他の四角形も ReverseBackColor を選択すれば大丈夫だと思います。 ちなみにマクロ中に出てくる 9 とか 8 は色のコードなのですが、Excel のバージョンによっては別の色になってしまうかもしれませんので適宜調整してください。

do1780
質問者

お礼

ありがとうございました。 オートシェイプにて、まさにやりたいことができました。感謝です。 因みに、トグルボタンは、コントロールツールボックスでした。 Active X コントロールでもあるのですね。勉強になりました。

関連するQ&A