2017-03-07 5 views
0

ExcelでActive-X Commandボタンを使用して特定のチェックボックスを選択し、同時に他のチェックボックスを選択解除しようとしています。今のところ、 "Design"という名前で始まったり、 "Design"という名前で始まっているすべてのボックスのチェックを外しています。特定のActive-Xチェックボックスのチェックとアンチェックを同時に行うExcelコマンドボタン

以下のコードは、「デザイン」という名前のボックスのチェックを外していたが、「チェックボックス」で始まるボックスのチェックを追加して以来、エラー(オブジェクトのメソッド「名前」 '_OLEOBJECT'が失敗しました)。

Private Sub CommandButton1_Click() 

    Dim o As Object 
     For Each o In ActiveSheet.OLEObjects 
      If InStr(1, o.Name, "Design") > 0 Then 
       o.Object.Value = False 
      ElseIf InStr(1, o.Name, "CheckBox") < 1 Then 
        o.Object.Value = True 
      End If 
     Next      
    End Sub 

は私もまだ上記と同じエラーが発生し、この変化を試してみました:

Private Sub CommandButton1_Click() 

    Dim o As Object 
     For Each o In ActiveSheet.OLEObjects 
      If InStr(1, o.Name, "Design") > 0 Then 
       o.Object.Value = False 
      End If 
     Next 

    Dim j As Object 
     For Each j In ActiveSheet.OLEObjects 
      If InStr(1, j.Name, "CheckBox") < 1 Then 
       j.Object.Value = True 
      End If 
     Next 


    End Sub 

答えて

0

はこれを試してみてください、それはすべてのチェックボックスのチェックを外し。すべてのチェックボックスをチェックする場合は、それをtrueに設定します。

Sub uncheck_all() 
    Dim sh As Shape 
    Application.ScreenUpdating = False 
    For Each sh In ActiveSheet.Shapes 
     If sh.Type = msoOLEControlObject Then 
      If TypeName(sh.OLEFormat.Object.Object) = "CheckBox" Then sh.OLEFormat.Object.Object = True 'set to true if you want to check all checkboxes 
     End If 
     If sh.Type = msoFormControl Then 
      If sh.FormControlType = xlCheckBox Then sh.OLEFormat.Object = True 'set to true if you want to check all checkboxes 
     End If 
    Next sh 
    Dim o As Object 
    For Each o In ActiveSheet.OLEObjects 
     If o.Name Like "Design*" Then 'use If o.Name Like "*Design*" Then if you want to be any name with "Design" in the name. 
      o.Object.Value = False 
     End If 
    Next o 
    Application.ScreenUpdating = True 
End Sub 
+0

申し訳ありませんが、最初の説明ではわかりません。基本的には、200種類程度のチェックボックスがあり、さまざまなシナリオに基づいて選択することができます。つまり、ユーザーをデフォルト(私の提案した)シナリオに戻すボタンが必要です。したがって、ユーザーがコマンドボタンをクリックすると、「デザイン」という名前を含むすべてのボックスがチェックされず、「チェックボックス」という名前を含むすべてのチェックボックスがチェックされ、デフォルトのシナリオに戻ります。 – Xcelrate

+0

更新された投稿を試してください。これは必要な作業を行い、他のすべてのチェックボックスをオフにしますが、チェックボックスにチェックマークがついていません。 –

+0

@pokeman_Manこれは本質的に私が望むように機能しますが、なぜそれはまだ動作していない1つの問題があります。 "Design1"や "Design2"のように、 "Design"という名前にはさまざまなバリエーションがあります。それぞれのチェックボックスには独自の名前が付いていますが、選択したいものには "Design"が含まれています。チェックボックスの名前に正確に "デザイン"ではなく "デザイン"が含まれているかどうかを確認する方法を知っていますか?これは私の問題 – Xcelrate

関連する問題