3

マクロを介して特定のセルにチェックボックスを挿入したいと思います。A1例: コマンド ボタンをクリックすると、チェック ボックスをセルに追加できるはずです。

Sheets("Pipeline Products").Range("O" & i & ":AG" & i).Select 
ActiveSheet.CheckBoxes.Add(4, 14.5, 72, 17.25).Select 

With Selection 
    .Caption = "" 
    .Value = xlOff '
    .LinkedCell = "C" & ToRow     
    .Display3DShading = False 
End With 
4

3 に答える 3

9

この単純な行により、セル A1 に CheckBox を追加し、それに応じて幅と高さを設定できます。

ActiveSheet.OLEObjects.Add "Forms.CheckBox.1", Left:=Range("A1").Left, Top:=Range("A1").Top, Width:=Range("A1").Width, Height:=Range("A1").Height

この方法で CommandButton に簡単に追加できます。

Private Sub CommandButton1_Click()

    ActiveSheet.OLEObjects.Add "Forms.CheckBox.1", Left:=Range("A1").Left, Top:=Range("A1").Top, Width:=Range("A1").Width, Height:=Range("A1").Height

End Sub

コードを編集して改善...

複数のセルにチェックボックスを挿入するには、ループを追加するだけです。

Sub YourCode_Improvment()

    Dim i
    '
    For i = 1 To 10 'cells from 1st to 10th

    ActiveSheet.CheckBoxes.Add(Cells(i, "A").Left, _
                                Cells(i, "A").Top, _
                                72, 17.25).Select
    With Selection
        .Caption = ""
        .Value = xlOff '
        .LinkedCell = "C" & i
        .Display3DShading = False
    End With
    Next
End Sub

必要に応じて、このコードを適宜変更してください。

于 2013-06-07T20:25:45.683 に答える
0

一番上のコメントのコードをわずかにアップグレードしました。範囲を選択して実行するだけで、選択したすべてのセルがチェックボックスで埋められます。

Sub InsertCheckboxes()
    Dim c As Range

    For Each c In Selection
        Dim cb As CheckBox
        Set cb = ActiveSheet.CheckBoxes.Add(c.Left, _
                                    c.Top, _
                                    c.Width, _
                                    c.Height)
        With cb
            .Caption = ""
            .Value = xlOff
            .LinkedCell = c.Address
            .Display3DShading = False
        End With
    Next
End Sub
于 2020-03-06T13:54:02.497 に答える