Help us understand the problem. What is going on with this article?

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

記事の概要

自分の備忘録も兼ねて、気が向いたときに作成した関数を載せていきます: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

m0ka
中の人ですが、大したことは書けません。SESでアシスタントディレクターとして召喚されてVBAのツールをもくもくと作っていた過去があります。
increments
「エンジニアを最高に幸せにする」ために Qiita、Qiita Team、Qiita Jobs を開発・運営しています。
https://increments.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした