[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『何とかなりませんか?』(みんと)
チェックボックスにチェックをするとJ4にA4も値を参照しています。 これがセル1180まであります。やっぱり一個一個手入力でしょうか?
Sub チェック2_Click()
If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then
Range("j5").Value = Range("a5").Value Else Range("j5").ClearContents End If End Sub
Sub チェック3_Click()
If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then
Range("j6").Value = Range("a6").Value Else Range("j6").ClearContents End If End Sub Sub チェック4_Click() If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then Range("j7").Value = Range("a7").Value Else Range("j7").ClearContents End If End Sub Sub チェック5_Click() If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then Range("j8").Value = Range("a8").Value Else Range("j8").ClearContents End If End Sub Sub チェック6_Click() If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then Range("j9").Value = Range("a9").Value Else Range("j9").ClearContents End If End Sub Sub チェック7_Click() If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then Range("j10").Value = Range("a10").Value Else Range("j10").ClearContents End If End Sub こんな風に一個一個気合を入れて1180までやるしかないのでしょうか? 良い方法ありましたらおしえてください。
Application.Caller を使っているのですから、 このApplication.Callerで示されるチェックボックス名と そのプロシジャー内で使用されているセルのセルアドレスに何らかの 規則性がありませんか? それがあるなら、プロシジャーは、一つで済みます。
ichinose
追伸 これ、チェックボックスが1180必要ってことですか? 私の感覚からするとこれは、多すぎですねえ!!
リストボックス(複数選択が可)辺りで代替出来ませんか? これも一度、考慮してみてください。 この場合、ActiveXControl リストボックスなら、ある程度なら装飾できます。
ichinose
ichinoseさん同様、チェックボックスの数には???で、もっと別の構成がいいのではと、おもうけど。 ともあれ、 ・フォームツールのチェックボックスの名前は初期値のまま(チェック と 半角スペース と 連番) ・連番+3が対象セルの行番号 これが保たれているなら、全てのチェックボックスに以下のプロシジャを登録。
Sub チェックx_Click() Dim n As Long
n = Split(Application.Caller)(1) + 3
If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then Range("J" & n).Value = Range("A" & n).Value Else Range("J" & n).ClearContents End If
End Sub
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.