【シート上のチェックボックス自動作成し・・・】
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