LoginSignup
1
1

More than 3 years have passed since last update.

【Excel VBA】ユーザー定義関数でオブジェクトの数をカウントする

Last updated at Posted at 2018-04-11

記事の概要

自分の備忘録も兼ねて、気が向いたときに作成した関数を載せていきます:muscle:

環境

  • 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つ挿入しました。
image.png

①CheckBoxの数をメッセージボックスに表示
Public Sub ex1()

       MsgBox cntObjects("CheckBox")

End Sub

image.png

②チェックが入った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

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1