|
'--------------------------------------
'방법 1
'--------------------------------------
'--------------------------------------
Sub 단추508_Click()
'--------------------------------------
Dim i As Integer
Dim iStart As Integer
Dim iEnd As Integer
Dim k As Integer
Dim oCheck As Shape
Dim rng As Range
' 추가할 행과 갯수 Set
iStart = Cells(2, 5).Value
iEnd = Cells(2, 6).Value
For i = iStart To iEnd
' 삽입 셀
Set rng = Cells(i, 1)
' checkbok 삽입
Set oCheck = _
Sheet1.Shapes.AddFormControl(xlCheckBox, rng.Left, rng.Top + 3, rng.Height - 3, rng.Height - 3)
' 빈 문자
oCheck.TextFrame.Characters.Text = ""
' 클릭시 setDate와 연결
oCheck.OnAction = "setDate"
Next
End Sub
' 클릭시 작동할 프로시져
'----------------------------
Sub setDate()
'----------------------------
Dim oShape As Shape
Set oShape = ActiveSheet.Shapes(Application.Caller)
If oShape.OLEFormat.Object.Value = 1 Then
oShape.TopLeftCell.Offset(, 2).Value = VBA.Date
Else
oShape.TopLeftCell.Offset(, 2).Value = ""
End If
End Sub
'--------------------------------------
'방법 2
'--------------------------------------
' change event 활용
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 2 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Select Case Target.Value
Case "완료"
Target.Offset(, 2).Value = Date
Case "취소", ""
Target.Offset(, 2).Value = ""
End Select
End Sub |
|