>A1がAならば、オプションボタンがOn
>そうでないならば Off
>との設定のはずが、
>
>A1がAでも否でもOff
>という結果になります。
んん?
A1ってA1セルの事ですか?
もしそうなら、コードが全然違いますよ?
A1セルだったら
If .Range("A1").Value = "A" Then
':
で良いんですが。
提示してない何処かに
.Range("A1").Value = .ListBox1.List(n, 6)
なんて書いてあったりするんですか?
If .ListBox1.List(n, 6) = "A" Then
.OptionButtons("Option Button 16").Value = xlOn
Else
':
このコードの意味は、ListBox1で選択した行の7列目の値が A だったら On です。
(ListBoxの列を表す時、一番左が 0 からなので。)
ListBox1の、選択した値を確認してください。
>また、複数のoptionbuttonのon off を条件によって替えたいときは、
>ネットで調べたところ、if よりselect case の方がよさそうな記述をみましたがどう思われますか?
良いと思います。
Select Case .ListBox1.List(1, 6)
Case "A"
.OptionButtons("Option Button 16").Value = xlOn
Case "B"
.OptionButtons("Option Button 17").Value = xlOn
Case "C"
.OptionButtons("Option Button 18").Value = xlOn
End Select
個人の好みにもよりますが、可読性が良くていいんじゃないでしょうか。
お礼
いつもありがとうございます。 !!!!できました!!!! なんでもお見通しなんですね。Listboxで選択した行の数え方が 間違っていました・・・。(n,6)でなく(n,5)でした。 こんな始末で全くお恥ずかしい限りです。 言い回しが悪くてすみませんでした。 「A1がAでも」というのは「あるセルがAでも」というつもりで 書いてしまい、「ListBox1(n,6)がAなら・・・」が正しいです。 select case 利用パターンもうまくいきました。 今晩はよく寝られそうです:) 最後まで丁寧に面倒をみていただき本当に感謝です。 ありがとうございました。 これからも地道にがんばります。