2016-08-25 2 views
0

워크 시트의 프레임에 함께 그룹화 된 ActiveX 확인란을 반복하려고합니다. 모든 확인란을 찾을 수 있었지만 VBA 코드를 통해 GroupName 속성을 가져올 수 없습니다. 스크립트를 이해하기 위해 나는 단순히 Checkbox1과 Checkbox2라는 이름의 프레임에 그룹화 된 두 개의 체크 박스가있는 단순한 통합 문서를 사용했으며 동일한 GroupName을 사용했습니다. 이것은 내가 지금까지워크 시트의 그룹화 된 ActiveX 확인란의 Excel VBA : GroupName 속성

Sub test2() 
    Dim i As Integer 
    Dim cb As Object 
    Dim countItems As Integer 
    Dim checkBox As Object 

    For Each cb In ActiveSheet.Shapes 
     If cb.Name Like "Group*" Then 
    countItems = cb.GroupItems.Count 
    For i = 1 To countItems 
       If cb.GroupItems(i).Name Like "Check*" Then 
        Debug.Print cb.GroupItems(i).Name 
       End If 
      Next i 
     End If 
    Next cb 

    End Sub 

내가 솔루션에 대한 인터넷의 주위에 검색 한 가지고있는,하지만 내가 본 사람은 내 체크 박스가 함께 그룹화되어 있기 때문에 적합하지 않는 것.

Sub test4() 
     Dim ole As OLEObject 

     For Each ole In ActiveSheet.OLEObjects 
      If TypeName(ole.Object) = "CheckBox" Then 
       Debug.Print ole.Object.GroupName 
       If ole.Object.GroupName = Group And ole.Object.Value = True Then 
        Debug.Print ole.Object.GroupName 
       End If 
      End If 
     Next ole 
     GroupClear = True 

    End Sub 

워크 시트에 잘 있었다하지만 함께 그룹화 체크 박스를 찾는 작업을 보였다.

도움을 주셔서 감사합니다.

+1

'Debug.Print cb.OLEFormat.Object.Object.GroupName' 그룹 이름을 확인하기 전에 객체의 유형을 확인해야 할 수도 있습니다 ... –

답변

0

의견 1은 올바른 지점으로가는 것을 도왔습니다. 그룹화는 속성이 속성의 대부분은 별도의 제어에 유용라고 검색하거나 편집 할 수 있었다 Object.Object 속성 후 Object.Object.GroupName

Debug.Print cb.OLEFormat.Object.Interior.Parent.ShapeRange.GroupItems(i).Parent.Item(i).OLEFormat.Object.Object.GroupName 

에 도착하지만 파고의 비트를 요구하는 듯 확인란의

관련 문제