HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > シート上のコントロールの値クリア

即効テクニック

シート操作関連のテクニック

シート上のコントロールの値クリア

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