1

For Each ループを使用して、OLEObject が ComboBox かどうかを調べることはできますか? ワークシートにいくつかのコンボボックスがありますが、コマンドボタンなどもあります。

Dim comboB As OLEObject
Dim ws As Worksheet: Set ws = ActiveSheet

For Each comboB in ws.OLEObjects
If typeName(comboB) = "ComboBox" Then
'Do something
End if
Next

問題は、TypeName(stringvalue) がコントロールでのみ機能することです。誰でも私を助けることができますか?

4

1 に答える 1

0

以下のコードを試してください:

Sub sample()

   Dim comboB As Variant
   Dim ws As Worksheet
   Set ws = ActiveSheet

    With ws
        For Each comboB In .OLEObjects
            If TypeName(comboB.Object) = "ComboBox" Then
               MsgBox TypeName(comboB) & " is a combo box"
            End If
        Next

    End With
End Sub
于 2013-06-07T10:15:34.360 に答える