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