アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記の方法でExcel起動時にE1~E50にチェックボックスを
作成しています。
(F列にはチェックの結果を表示させています)

Sub Auto_open()
Dim i As Integer
Dim cbx As CheckBox
With Selection.Parent
For i = 1 To 50
Set cbx = .CheckBoxes.Add(Left:=Cells(i, 5).Left, _
Top:=Cells(i, 5).Top, _
Height:=Cells(i, 5).Height, _
Width:=Cells(i, 5).Width)
cbx.Text = ""
cbx.LinkedCell = "F" & i
cbx.Display3DShading = True
Next i
End With
Set cbx = Nothing
End Sub

チェックボックスにチェックされたら
チェックされた行のA~Dの色を変更したいのですが、
どのようにやるのか分からなく困っています。
(チェックボックスのクリックイベントを50個つくるわけにも
いかないですし・・・)

何か少しでもアイデア等ございましたら
ご教授お願いします。

A 回答 (1件)

方法1:


Sub Macro1()
 Dim cbx As CheckBox

 Set cbx = ActiveSheet.CheckBoxes.Add( _
  Top:=Range("E1").Top, _
  Left:=Range("E1").Left, _
  Width:=Range("E1").Width, _
  Height:=Range("E1").Height)
 cbx.Text = ""
 cbx.Display3DShading = True
 cbx.OnAction = "チェック1_Click"

 Range("E1:E50").FillDown
End Sub

Sub チェック1_Click()
 With ActiveSheet.Shapes(Application.Caller)
 .TopLeftCell.Offset(0, -4).Resize(1, 4).Interior.ColorIndex = _
 IIf(.ControlFormat.Value = 1, 4, xlNone)
End With
End Sub
とかなんとか。


方法2:
>F列にはチェックの結果を表示させています
これを拾って反応する条件付き書式をA:D列に施しておくのでも。

この回答への補足

下記 "チェック1_Click" にて確認があります。

Sub チェック1_Click()
 With ActiveSheet.Shapes(Application.Caller)
 .TopLeftCell.Offset(0, -4).Resize(1, 4).Interior.ColorIndex = _
 IIf(.ControlFormat.Value = 1, 4, xlNone)
End With
End Sub

それぞれ細かい意味は把握できていませんが、
やっていることはチェックされたら1~4列目を緑に変更、
チェックなしは塗りつぶしなしに変更でよろしいでしょうか?
またそれぞれの細かい意味も参考までにご教授願いします。

お手数ですがよろしくお願いします。

補足日時:2010/03/19 15:19
    • good
    • 2
この回答へのお礼

keithin様
回答ありがとうございます。

いつもはVBを使用しており、Excelマクロは今回初めてなので
サンプルも記載して頂きありがとうございます。

"OnAction"でチェックボックスにチェックされた時の
イベントを追加するのですね。

なんとかやりたかった事が出来そうです。
有難う御座いました。

また不明な点があればご教授願いたいと思います。

お礼日時:2010/03/19 13:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!