【Excel VBA】 사용자 정의 함수로 객체 수를 계산합니다.

4331 단어 VBAExcelExcelVBA

기사 개요



자신의 비망록도 겸해, 마음이 돌 때 작성한 함수를 올려 갑니다.

환경


  • Excel2016
  • Windows10

  • 사용자 정의 함수


    Public Function cntObjects(objName As String) As Long
    
     Dim obj As Object
    
           For Each obj In Sheet1.OLEObjects
              If obj.Name Like "*" & objName & "*" Then
                 cntObjects = cntObjects + 1
              End If
           Next
    
    End Function
    

    보충

    무엇을 하고 있는가 하면...

    Sheet1의 모든 객체 참조
    → 객체 이름에 objName이 포함되어 있으면
    →cntObjects +1

    *이번은 「Sheet1」을 지정하고 있습니다만 여기는 스스로 변경해 주세요.
    * objName에는 "TextBox"인 "OptionButton"인 것을 넣어주세요.

    사용 예



    준비

    개발 탭 > 삽입 > ActiveX 컨트롤로 CheckBox를 6개 삽입했습니다.


    ①CheckBox의 수를 메시지 박스에 표시
    Public Sub ex1()
    
           MsgBox cntObjects("CheckBox")
    
    End Sub
    



    ② 체크가 들어간 CheckBox의 수를 메시지 박스에 표시
    Public Sub ex2()
    
     Dim i As Long
     Dim cnt As Long
     Dim buf As String
    
        buf = "CheckBox"
    
           For i = 1 To cntObjects(buf)
              If Sheet1.OLEObjects(buf & i).Object.Value = True Then
                 cnt = cnt + 1
              End If
           Next i
    
           MsgBox cnt
    
    End Sub
    

    좋은 웹페이지 즐겨찾기