| 
    
     |  | 初めまして、やすと申します。 どうぞよろしくお願いいたします。
 
 早速ですが、ご質問させていただきます。
 
 会議室の予約リストがあり、(エクセルシート)
 
 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
 
 |  |