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
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range: Set r = Target
If r.CountLarge = 1 And _
r.Row >= 4 And r.Row <= 23 And _
r.Column >= 3 And r.Column <= 6 Then
Application.EnableEvents = False
Dim r1 As Range: Set r1 = Cells(r.Row, "C")
Dim r2 As Range: Set r2 = Cells(r.Row, "D")
Dim r3 As Range: Set r3 = Cells(r.Row, "E")
Dim r4 As Range: Set r4 = Cells(r.Row, "F")
If r.Column = 3 Then
If r.Value Then
Range(r2, r4).Value = True
Else
Range(r2, r4).Value = False
End If
Else
If r2 And r3 And r4 Then
r1.Value = True
Else
r1.Value = False
End If
End If
Application.EnableEvents = True
End If
End Sub
では、コードについて解説していきます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range: Set r = Target
If r.CountLarge = 1 And _
r.Row >= 4 And r.Row <= 23 And _
r.Column >= 3 And r.Column <= 6 Then
Application.EnableEvents = False
'省略
Application.EnableEvents = True
End If
End Sub
Dim r1 As Range: Set r1 = Cells(r.Row, "C")
Dim r2 As Range: Set r2 = Cells(r.Row, "D")
Dim r3 As Range: Set r3 = Cells(r.Row, "E")
Dim r4 As Range: Set r4 = Cells(r.Row, "F")
If r.Column = 3 Then
If r.Value Then
Range(r2, r4).Value = True
Else
Range(r2, r4).Value = False
End If
Else
If r2 And r3 And r4 Then
r1.Value = True
Else
r1.Value = False
End If
End If