[[20200817165345]] 『条件によりチェックボックス選択可・不可にしたい』(hn) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件によりチェックボックス選択可・不可にしたい』(hn)

VBAについて質問が御座います。
初心者ですみませんが、何方かご教授お願いします。

ユーザーフォーム内、Private Sub Worksheet_SelectionChange(ByVal Target As Range)で作成と考えております。

あるシート内へ一つのチェックボックスを作成しました。
ある条件の時のみチェックボックスを選択可能、ある条件の時はチェック選択不可にしたい。
IFの条件の作成方法は理解出来ました、チェックボックスを選択可・不可にする方法(コード)がありましたらご教授頂きたいです。

例)あるセルが1の時は選択可能 2の時は選択不可にしたい

< 使用 Excel:Excel2013、使用 OS:Windows10 >


フォームコントロールのチェックボックスなのか、ActiveXのチェックボックスなのか、どっちでしょう?
とりあえず、フォームコントロールの方だと面倒なので、ActiveXのコード例なぞ。
 Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$1" Then Exit Sub
    ActiveSheet.OLEObjects("CheckBox1").Enabled = IIf(Target.Value = 1, True, False)
 End Sub
(???) 2020/08/17(月) 17:16

コレクションが使えるようなので、特に難しく無かったようです。
フォームコントロールなら、ActiveSheet.CheckBoxes("Check Box 1").Enabled を変えましょう。
(???) 2020/08/17(月) 17:18

かぶりましたが、そのまま。

Enabledプロパティについて調べてみて下さい。
http://officetanaka.net/excel/vba/tips/tips136.htm
↑はコマンドボタンを例にしてますが、チェックボックスも理屈はおなじです。

ちなみに、↓のように仰っているので、フォームコントロールのことは考えていません。
>ユーザーフォーム内

(もこな2 ) 2020/08/17(月) 17:38


ごめんなさい。
>あるシート内へ一つのチェックボックスを作成しました。
だから、チェックボックスはシート上にあるんですね。上記は忘れてください。

(もこな2 ) 2020/08/17(月) 17:59


お二方ありがとうございます。
シート上にチェックボックスはあります。
なんとなく出来たのですが
If Target.Address <> "$A$1" Then Exit Subの所がもう一つ理解できておりません。
もう少し勉強、上記URL確認済みだったのですが、応用出来ておりませんでした。
A1が1以外かどうかで、チェックボックスが使用可能、使用不可と言う考えで宜しいのでしょうか。

(hn) 2020/08/17(月) 18:59


以下の方法にて解決したと思います。

(???)さんの方法は、まだ私には高度すぎて理解できていないようです。
今後レベルが向上した後、参考にしたいコードです。

(???)さんのコードと(もこな2 )さんのofficetanakaさんの説明を再度応用し
作成してみました。
ありがとうございました。

 If Range("A45") = 1 Then
        ActiveSheet.CheckBoxes("Check Box 14").Enabled = True
    Else
        ActiveSheet.CheckBoxes("Check Box 14").Enabled = False
    End If
(hn) 2020/08/17(月) 19:16

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.