アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

現在Excel2003 VBAでファイル生成プログラムを書いております。

処理の一部で、シート上に配置されたコントロール(TextBoxのみ)の総数を取得したいのですが、どのようにすればよろしいでしょうか。

テキストのみに限らない場合は、
OLEObjects.Countで取得できます。

For i = 1 To Sheet1.OLEObjects.Count
省略
Next i

宜しくお願いします。

A 回答 (2件)

http://msdn.microsoft.com/en-us/library/bb237228 …

コレ見る限り、多分

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とかいうのが登録されているかもしれない。

この回答への補足

himajin100000様
回答ありがとうございます。
progIDというのがあるんですね、初めて知りました…。
勉強させていただきます!

補足日時:2009/02/25 17:15
    • good
    • 0

シート上のコントロールの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というのがあるのを初めてしりました。
無事に値を取得できました。
ありがとうございました!

補足日時:2009/02/25 17:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!