dポイントプレゼントキャンペーン実施中!

下記の様にチェックボックス1をONにするとチェックのみ、チェックボックス2をONにすると対象セル(3つのセルAAAA、BBBB、CCCC)の文字の色が変わる様にしたいのですが、どうするのが早く、多く複製出来る方法はありませんか?
個々にチェックボックスを作成して、条件付書式などで作成は可能ですが、下記の様(DDDD、EEEE、FFFF・・・・)に複数作りたいので条件付書式では大変なので何か方法はありませんか。
VBAで作ると楽にいけると思うのですが知識不足で・・・。
ご教授願います。宜しくお願いします。

AAAA   
BBBB  1□  2□
CCCC

DDDD
EEEE  1□  2□
FFFF


・    1□  2□


・    1□  2□

※添付画像が削除されました。

A 回答 (7件)

「マクロの記録」すれば基本になるコードが得られます。



サンプルマクロを書いてみました。
フォームのチェックボックスをB2とC2に作成
C2のチェックボックスに「testcolor」マクロを「マクロの登録」

≪チェックボックス作成マクロ≫
Sub test1()
With Range("B2")
ActiveSheet.CheckBoxes.Add .Left, .Top, .Width, .Height
End With
With Range("C2")
ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).OnAction = "test2"
End With
End Sub

≪文字色変更マクロ≫
Sub test2()
Dim cb As Object
Dim rng As Range
Dim rwNo As Long

Set cb = ActiveSheet.Shapes(Application.Caller)
With cb
rwNo = .TopLeftCell.row
Set rng = Range(Cells(rwNo - 1, 1), Cells(rwNo + 1, 1))
If .DrawingObject.Value = 1 Then
rng.Font.colorIndex = 3
Else
rng.Font.colorIndex = 5
End If
End With
End Sub

C2のチェックボックスをクリックすると
A1:A3の文字データの色が変更されます。
これでよければ、For~Next文で、セルを変更指定すれば良いと思います。

この回答への補足

xls88さん
ありがとう御座います。
test1でチェックボックス作成出来ました。
test2で
Set cb = ActiveSheet.Shapes(Application.Caller)がデバックになります。
マクロは分からないのでご教授お願いします。
フォントカラーの指定はどの部分でしょうか?
赤にしたいのですが。
A1:A3の文字データの色が変更されますとの事で、どこで指定しているのですか? 無知ですいません。後で本買って勉強します。

補足日時:2009/08/06 00:03
    • good
    • 0

>回答番号:No.5 この回答への補足



j = 2
For i = 1 To 5
With Cells(j, 2)
ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Caption = "チェック"
End With
With Cells(j, 3)
With ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)
.OnAction = "set文字色"
.Caption = "チェック完了"
End With
End With
j = j + 3
Next i
    • good
    • 0
この回答へのお礼

xls88さん

教わりました事で自分の思った物が実現出来ました。
ループで配置も簡単に行えますし、大変お世話になりました。
ありがとう御座いした。

お礼日時:2009/08/11 13:08

ループする例です。



Sub test3()
Dim i As Long
Dim j As Long

j = 2
For i = 1 To 5
With Range("B" & j)
ActiveSheet.CheckBoxes.Add .Left, .Top, .Width, .Height
End With
With Range("C" & j)
ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).OnAction = "test2"
End With
j = j + 3
Next i
End Sub
    • good
    • 0
この回答へのお礼

遅くなり申し訳御座いません。
こちらのループでバッチリ配置出来ました。
ありがとう御座いました。

お礼日時:2009/08/11 11:13

>チェックボックスのテキスト分(チェック1・2・3・・・)も指定することも出来るの出来ますか?


意味不明です。
”チェックボックスのテキスト分”って何のことですか?

複数のセルにチェックボックスを増殖するのはループを利用すればよいです。
test1マクロで、For <変数> = <n1> to <n2>辺りを使ってセルを指定すればよいと思います。

[XL] Visual Basic for Applications でのループ構造の使用方法
http://support.microsoft.com/kb/141762/ja

この回答への補足

>”チェックボックスのテキスト分”って何のことですか?
チェックボックスを作成すると、チェックボックスの隣に「チェック1」と表示されますが、この「チェック1」を指定出来ないのかなと思ったのです。ループで100で行うと、チェックボックス「チェック1」~「チェック100」表示されますが、1□が「チェック」2□が「チェック完了」と指定出来ないのかなと思いました。
分かりずらくてすいません。

補足日時:2009/08/11 11:15
    • good
    • 0

チェックボックスではなくセルでもよいなら、マクロを使わずに出来ます。



例)
 A    B C D
1 AAAA 
2 BBBB □  □
3 CCCC
・・・
#B列からD列はセル幅を狭め、B2とD2はセルの罫線でチェックボックスのように見せます。

A1の「条件付き書式」を「数式が」「=D2=1」とし、「書式」のパターンで「赤」を選択します。
A2の「条件付き書式」を「数式が」「=D2=1」とし、「書式」のパターンで「赤」を選択します。
A3の「条件付き書式」を「数式が」「=D2=1」とし、「書式」のパターンで「赤」を選択します。
注意)A1、A2、A3の条件式書式はまとめて設定せず、個々に設定します。

さらに、B1とB2を選択して「データ」ー「入力規則」で「データの入力規則」を開き、「入力値の種類」を「リスト」にし、「元の値」に「1,0」とすればマウスの入力だけで済みます。

あとはA1:D3を選択して、下へコピーすればOKです。
「Excel チェックボックスのコピー、チ」の回答画像4
    • good
    • 0

>回答番号:No.2 この回答への補足



>test2で
>Set cb = ActiveSheet.Shapes(Application.Caller)がデバックになります。
test2を直接実行したのではないでしょうか?
回答番号:No.2 で説明してありますが
チェックボックスをクリックすることで実行されます。

>A1:A3の文字データの色が変更されますとの事で、どこで指定しているのですか?
Font.colorIndex の部分です。
フォントカラーを変更する操作を「マクロの記録」すれば、色番号について解ると思います。
    • good
    • 0
この回答へのお礼

上手く出来ました。
ありがとう御座いました。
チェックボックスのテキスト分(チェック1・2・3・・・)も指定することも出来るの出来ますか?

お礼日時:2009/08/07 00:56

条件付き書式を設定できるなら、普通にコピーしてはいかがですか?



チェックボックスとリンクするセルも含めて範囲でコピーで良いと思いますけどどうでしょう
条件付き書式は比較するセルを絶対参照から相対参照に置き換えればコピーするだけでOK
 =$C$3
 ↓
 =C3
あとはチェックボックスのリンクするセルを変えるだけで済みます
(数が多いとちょっと大変かもしれない)
    • good
    • 0

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