ワークシート上に配置したコントロールの値を一括で操作したい場合、例えば入力前の初期化処理などで値をクリアしたい場合、OLEObjectsコレクションとObjectプロパティーを用いると便利です。
サンプルでは数類のコントロールが配置されているワークシートで、各コントロールのNameプロパティーから値をクリアすべきかどうかを判断しています。
Private Sub CommandButton1_Click()
Dim Obj As OLEObject
For Each Obj In ActiveSheet.OLEObjects
If Obj.Name Like "TextBox*" Then
Obj.Object.Value = ""
ElseIf Obj.Name Like "CheckBox*" Then
Obj.Object.Value = False
End If
Next
End Sub
また、対象となるコントロールの判断にはNameプトパティーのほかProgIDなども役にたちます。この場合には次のようなコードになります.
Private Sub CommandButton1_Click()
Dim Obj As OLEObject
For Each Obj In ActiveSheet.OLEObjects
Select Case Obj.ProgId
Case "Forms.TextBox.1"
Obj.Object.Value = ""
Case "Forms.CheckBox.1"
Obj.Object.Value = False
Case Else
End Select
Next
End Sub