[[20190614161943]] 『ドロップダウンリストの選択値に応じてチェックボ』(PU) ページの最後に飛ぶ

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

 

『ドロップダウンリストの選択値に応じてチェックボックスを無効化』(PU)

ドロップダウンリストの選択値に応じて、フォームコントロールで作成したチェックボックスを無効化したいです。

 A
 B
 C

と3つの選択肢があり、Cを選択した場合のみ、フォームコントロールのチェックボックスを無効化したいです。
よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


フォームコントロールではできません。
ActiveXコントロールなら可です。
他の回答をお待ちください。
(のりん) 2019/06/14(金) 16:58

返信ありがとうございます。
ActiveXコントロールを使用した方法はご存知でしょうか。
よろしくお願いいたします。
(PU) 2019/06/14(金) 17:09

 フォームコントロールのチェックボックスの場合です。
 A1にドロップダウンリストが設定されているとの前提です。

 チェックボックスに↓のマクロを登録します。

 Sub chk()
  If ActiveSheet.Cells(1, 1).Value = "C" Then
     If ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOn Then
        ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOff
     ElseIf ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOff Then
        ActiveSheet.Shapes(Application.Caller).ControlFormat.Value = xlOn
     End If
   End If
 End Sub
(カリーニン) 2019/06/14(金) 17:25

 ActiveXのチェックボックスの場合です。

 Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "A1" Then
     If Target.Value = "C" Then
        Me.OLEObjects("CheckBox1").Enabled = False
     Else
        Me.OLEObjects("CheckBox1").Enabled = True
     End If
  End If
 End Sub
(カリーニン) 2019/06/14(金) 17:39

 Worksheet_Changeの対象のセル範囲の指定は↓のようにすることもできます。

 Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
  If Target.Value = "C" Then
     Me.OLEObjects("CheckBox1").Enabled = False
  Else
     Me.OLEObjects("CheckBox1").Enabled = True
  End If
 End Sub
(カリーニン) 2019/06/14(金) 17:50

コメント返信:

[ 一覧(最新更新順) ]


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