Dim oldValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge = 1 And _
Target.Row >= 2 And _
Target.Column <= 3 Then
With Worksheets("変更履歴")
.Rows(2).Insert CopyOrigin:=xlFormatFromRightOrBelow
.Range("A2").Value = Now
.Range("B2").Value = Target.Address(False, False)
.Range("C2").Value = oldValue
.Range("D2").Value = Target.Value
End With
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.CountLarge = 1 Then
oldValue = Target.Value
End If
End Sub
では、コードについて解説していきます。
Private Sub Worksheet_Change(ByVal Target As Range)
'省略
End Sub
Dim oldValue As Variant
'省略
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.CountLarge = 1 Then
oldValue = Target.Value
End If
End Sub
With Worksheets("変更履歴")
.Rows(2).Insert CopyOrigin:=xlFormatFromRightOrBelow
.Range("A2").Value = Now
.Range("B2").Value = Target.Address(False, False)
.Range("C2").Value = oldValue
.Range("D2").Value = Target.Value
End With
Sub 表示切替()
Dim no As Long
no = Range("B2").Value
Columns("D:MY").Hidden = True
Range( _
Columns(no * 7 - 3), _
Columns(no * 7 + 3)).Hidden = False
End Sub
Sub GenerateFolders()
Dim i As Long
For i = 3 To 32
'保存先のフォルダのパスを貼り付けて「\」を追加
MkDir "A:\出力\" & _
Cells(i, "B").Value & "_" & _
Cells(i, "C").Value
Next i
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Select Case Target.Address(False, False)
Case "F3"
Range("D14").Value = Target.Value
Case "F4"
Range("D15").Value = Target.Value
Case "B4"
Range("D16").Value = Target.Value
Case "D6"
Range("D17").Value = Target.Value
Case "C7"
Range("D18").Value = Target.Value
Case "D14"
Range("F3").Value = Target.Value
Case "D15"
Range("F4").Value = Target.Value
Case "D16"
Range("B4").Value = Target.Value
Case "D17"
Range("D6").Value = Target.Value
Case "D18"
Range("C7").Value = Target.Value
End Select
Application.EnableEvents = True
End Sub
では、コードについて解説していきます。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'省略
Application.EnableEvents = True
End Sub
Select Case Target.Address(False, False)
Case "F3"
Range("D14").Value = Target.Value
Case "F4"
Range("D15").Value = Target.Value
Case "B4"
Range("D16").Value = Target.Value
Case "D6"
Range("D17").Value = Target.Value
Case "C7"
Range("D18").Value = Target.Value
Case "D14"
Range("F3").Value = Target.Value
Case "D15"
Range("F4").Value = Target.Value
Case "D16"
Range("B4").Value = Target.Value
Case "D17"
Range("D6").Value = Target.Value
Case "D18"
Range("C7").Value = Target.Value
End Select
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Row >= 3 And Target.Row <= 10 Then
If Target.Column >= 2 And Target.Column <= 3 Then
Cells(Target.Row, Target.Column + 3).Value = Target.Value
End If
If Target.Column >= 5 And Target.Column <= 6 Then
Cells(Target.Row, Target.Column - 3).Value = Target.Value
End If
End If
Application.EnableEvents = True
End Sub