- ベストアンサー
シート上のコントロール(TextBoxのみ)のカウント
お世話になります。 現在Excel2003 VBAでファイル生成プログラムを書いております。 処理の一部で、シート上に配置されたコントロール(TextBoxのみ)の総数を取得したいのですが、どのようにすればよろしいでしょうか。 テキストのみに限らない場合は、 OLEObjects.Countで取得できます。 For i = 1 To Sheet1.OLEObjects.Count 省略 Next i 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
http://msdn.microsoft.com/en-us/library/bb237228.aspx コレ見る限り、多分 Sub hoge() Dim i As Integer For i = 1 To ActiveSheet.OLEObjects.Count If ActiveSheet.OLEObjects(i).progID = "Forms.TextBox.1" Then MsgBox ("テキストボックス見つかったよ") End If Next i End Sub という感じでprogIDプロパティを見るんだろうけど, Forms.TextBox.1だけなのかは自信がない 僕は持ってないけどひょっとしたら他の人は Forms.TextBox.2とかForms.TextBoxとかいうのが登録されているかもしれない。
その他の回答 (1)
- Hardking
- ベストアンサー率45% (73/160)
シート上のコントロールのProgIdをワイルド検索し、 Forms.TextBoxを含むコントロールをテキストボックスと 判断し、カウントアップする。 Dim obj As Object Dim txtCnt As Integer txtCnt = 0 For Each obj In ActiveSheet.DrawingObjects If obj.ProgId Like "Forms.TextBox*" Then txtCnt = txtCnt + 1 End If Next
補足
Hardking様 回答ありがとうございます。 himajin100000への回答にも書きましたが、 progIDというのがあるのを初めてしりました。 無事に値を取得できました。 ありがとうございました!
補足
himajin100000様 回答ありがとうございます。 progIDというのがあるんですね、初めて知りました…。 勉強させていただきます!