4

チェックボックスをスプレッドシートに取り込み、特定の広告申込情報を選択して最終的な費用を取得するために使用します。ただし、必要のないチェックボックスがいくつかありますが、おそらく合計で5つほどです。マクロを使用して、これらの不要なチェックボックスを特定のセルに移動できます。これらの不要なチェックボックスは、データが変更されているため、常に同じ場所にあるとは限らないため、一度に1つずつ削除する必要があります。これは、チェックボックスを削除するコードがわからないこと以外は問題ありません。アクティブセル。アクティブセルまたは選択したセルからチェックボックスを削除するコードが必要です。以下に試したコーディングの一部を含めました。最初のセクションでは、チェックボックスを削除するための正しいセルに移動します。2番目の部分は、チェックボックスを削除しようとしましたが、どちらも機能しなかった2つの異なるコードです。ご意見ありがとうございます。

'To delete unwanted checkboxes
    Sheets("Quote Sheet").Select
    Range("B9").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, -1).Select

    ActiveSheet.Shapes.Range(Array("Check Box 456")).Select
    Selection.Delete
    Selection.Cut

    ActiveCell.CheckBoxes.Delete
    Selection.FormatConditions.Delete
4

1 に答える 1

9

このコードは、アクティブセルにあるExcelチェックボックスを削除します。

Sub DeleteCheckbox()
    Dim cb As CheckBox

    For Each cb In ActiveSheet.CheckBoxes
        If cb.TopLeftCell.Address = ActiveCell.Address Then cb.Delete
    Next
End Sub

ActiveXチェックボックスを使用している場合、このコードは次の役割を果たします。

Sub DeleteActiveXCheckbox()
    Dim obj As OLEObject
    Dim cb As MSForms.CheckBox

    For Each obj In ActiveSheet.OLEObjects
        If TypeOf obj.Object Is MSForms.CheckBox Then
            Set cb = obj.Object
            If cb.ShapeRange.Item(1).TopLeftCell.Address = _
                ActiveCell.Address Then obj.Delete
        End If
    Next
End Sub
于 2013-02-19T19:21:20.590 に答える