ワークシート上に配置したコントロールの値を一括で操作したい場合、
例えば入力前の初期化処理などで値をクリアしたい場合、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
|