|
初めまして、やすと申します。
どうぞよろしくお願いいたします。
早速ですが、ご質問させていただきます。
会議室の予約リストがあり、(エクセルシート)
B列 C列 D列 E列 F列 G列
会議室名 使用年月日 AM PM 全日
第1 2008/1/1 ○
第1 2008/1/1 ○
重複 第1 2008/1/2 ○
重複 第1 2008/1/2 ○
重複 第1 2008/1/2 ○
重複 第1 2008/1/3 ○
重複 第1 2008/1/3 ○
重複 第1 2008/1/3 ○
上記のように 同会議室、同日で、AM、PM、全日の列に○印を付けてあるので、
同会議室、同日で、AM列に○が2つ以上ある場合は、B列に「重複」の文字列を
表示するようにしたいと思います。
また、同様に、
同会議室、同日で、PM列に○が2つ以上の場合
同会議室、同日で、全日列に○が1つがある場合は、
同会議室、同日はすべて「重複」の文字列を表示させたい。
試行錯誤、下記のコードを作成しましたが、AMとPMの判断はできそうですが、
全日に○がある場合の判断がどうすればできるか、ご教示のほどよろしくお願いいたします。
Sub Ovr_chk()
Dim MaxRow As Long
Dim i As Long, j As Long
Dim myArry1 As Variant
Dim myArry2 As Variant
Dim myKey As String, myAM As String, myPM As String, myAL As String
MaxRow = Cells(Rows.Count, 3).End(xlUp).Row
For i = 5 To MaxRow
myAM = Range("E" & i).Value
myPM = Range("F" & i).Value
myAL = Range("G" & i).Value
If myAM = "" Then
myAM = "-"
End If
If myPM = "" Then
myPM = "-"
End If
If myAL = "" Then
myAL = "-"
End If
myArry1 = Range("C" & i).Value & Range("D" & i).Value & myAM & myPM & myAL
Debug.Print myArry1
For j = 6 To MaxRow
myAM = Range("E" & j).Value
myPM = Range("F" & j).Value
myAL = Range("G" & j).Value
If myAM = "" Then
myAM = "-"
End If
If myPM = "" Then
myPM = "-"
End If
If myAL = "" Then
myAL = "-"
End If
myArry2 = Range("C" & j).Value & Range("D" & j).Value & myAM & myPM & myAL
If myArry1 = myArry2 Then
Range("B" & j).Value = "重複"
Range("B" & i).Value = "重複"
Else
Range("B" & j).Value = ""
Range("B" & i).Value = ""
End If
Next
Next
End Sub
|
|