★チェックボックス

【シート上のチェックボックス自動作成し・・・】

Sub チェックボックス生成()

 

    Dim i       As Long

    Dim bufA    As String

    Dim bufB    As String

    Dim bufC    As Long

    Dim bufD    As Long

    

'    bufA = Application.InputBox("チェックボックスを表示する列 (例)A", "入力1 / 4", Type:=2)

'    bufB = Application.InputBox("リンクするセル (例)B", "入力2 / 4", Type:=2)

'    bufC = Application.InputBox("入力を開始する行番号 (例)1", "入力3 / 4", Type:=1)

'    bufD = Application.InputBox("入力を終了する行番号 (例)10", "入力3 / 4", Type:=1)

    

    bufA = Application.InputBox("チェックボックスを表示する列 (例)A", "入力1 / 4", Type:=2)

    bufB = Application.InputBox("リンクするセル (例)B", "入力2 / 4", Type:=2)

    bufC = Application.InputBox("入力を開始する行番号 (例)1", "入力3 / 4", Type:=1)

    bufD = Application.InputBox("入力を終了する行番号 (例)10", "入力3 / 4", Type:=1)

    For i = bufC To bufD

    

        ActiveSheet.CheckBoxes.Add(442, 162, 27.5, 19).Select

        With Selection

            .Caption = ""

            .Value = xlOn

            .LinkedCell = CStr(bufB) & i

            .Display3DShading = False

            .Top = ActiveSheet.Range(CStr(bufA) & i).Top

            .Left = ActiveSheet.Range(CStr(bufA) & i).Left

        End With

    Next

End Sub

【チェックボックス自動作成】

Sub チェックボックス作成()

高速開始

Dim StartX As Single

Dim StartY As Single

Dim EndX As Single

Dim EndY As Single

Dim i As Long

Dim LastRow As Long

    Dim xRg As Range

    Dim chkBox As OLEObject

Dim 承認1 As String, 承認2 As String, 承認3 As String, 事業場 As String

   

    承認1 = Sheets("メニュー").Range("K2").Value

    承認2 = Sheets("メニュー").Range("L2").Value

    承認3 = Sheets("メニュー").Range("M2").Value

    事業場 = Sheets("メニュー").Range("J2").Value

    

    'A列の最終行を取得

    LastRow = Sheets("承認統合data").Cells(Rows.Count, 1).End(xlUp).Row

    Sheets("承認統合data").Range("K:K").Clear

    Sheets("承認統合data").Activate

 

    'B列にチェックボックスを作成する

    For i = 2 To LastRow

 

        With Sheets("承認統合data").Cells(i, 11)

 

            'セルの左端

            StartX = .Left

 

            'セルの上端

            StartY = .Top

 

            'セルの横幅

            EndX = .Offset(0, 1).Left - .Left

 

            'セルの高さ

            EndY = .Height

 

            'チェックボックス作る

           Sheets("承認統合data").CheckBoxes.Add(StartX, StartY, EndX, EndY).Select

 

            'チェックボックスのテキストを指定

            Selection.Text = ""

 

            'セルに合わせて移動やサイズを変更する

            Selection.Placement = xlMoveAndSize

         Selection.LinkedCell = CStr("AZ") & i

    End With

 

Sheets("承認統合data").Range("K1").Value = "承認"

Range("K1").Select

高速開始

End Sub

【チェックボックス一括OFF】

Sub チェックボックスのチェックを一括クリア()

Dim cb As checkbox

 

    'チェックボックスをループ

    For Each cb In ActiveSheet.CheckBoxes

 

        'チェックボックスがオンだったら

        If cb.Value = xlOn Then

 

            'チェックボックスのチェックをオフにする

            cb.Value = xlOff

 

        End If

    Next cb

 

End Sub

【チェックボックスを一括削除】

Sub チェックボックス一括削除()

高速開始

    Dim checkbox As checkbox

    For Each checkbox In Sheets("承認統合data").CheckBoxes

        checkbox.Delete

    Next

高速終了

End Sub