Sub base()'元のコード
If Range("E" & scrMain.Value).Value = "○" Then
chk1.Value = False
Else
chk1.Value = True
End If
End Sub
Sub rewrite()'リライト版
chk1.Value = Range("E" & scrMain.Value).Value = "○"
End Sub
>チェックボックスが多いと記述が長くなりますが、何か工夫できますか? >変数やoffsetを利用したら良さそうなのですがうまくまとまりません。 > >下記の例で列が増え、チェックボックスの個数が増えると冗長なプログラムになってしまいます。 > > If Range("E" & scrMain.Value).Value = "○" Then > chk1.Value = False > Else > chk1.Value = True > End If >
受講生さんの投稿
(投稿ID: 663)
変数やoffsetを利用したら良さそうなのですがうまくまとまりません。
下記の例で列が増え、チェックボックスの個数が増えると冗長なプログラムになってしまいます。
If Range("E" & scrMain.Value).Value = "○" Then
chk1.Value = False
Else
chk1.Value = True
End If
小川 慶一さんのコメント
(コメントID: 1504)
チェックボックスが増えた分プログラムでも条件分岐の回数が増える、というは仕方ないことかと。
もっとも、いただいたコードは、以下のようにリライト可能です。
(理解できますか?これ説明しようとするとすごく長くなってしまうのですが (^_^; )
>チェックボックスが多いと記述が長くなりますが、何か工夫できますか?
>変数やoffsetを利用したら良さそうなのですがうまくまとまりません。
>
>下記の例で列が増え、チェックボックスの個数が増えると冗長なプログラムになってしまいます。
>
> If Range("E" & scrMain.Value).Value = "○" Then
> chk1.Value = False
> Else
> chk1.Value = True
> End If
>