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

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

Excel97/2000



戻る


Excel Word Access VBA! モーグ