- ベストアンサー
同じ数字を2個使用している重複行の数字の出力方法3
- 同じ数字を2個使用している重複行の数字の出力方法3について質問です。
- 質問No.9718103でSI299792様から回答をいただきましたが、AB19・AC19、AB21・AC21に重複が残っています。
- 重複を削除する方法についてご教示ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
本当だ。バグってた。 Option Explicit Option Base 1 ' Sub Macro1() Const Max = 31 Dim Cell As Range Dim Points(2 To 21, Max) As Integer Dim Row1 As Integer Dim Row2 As Integer Dim Col1 As Integer Dim Col2 As Integer Dim Index As Integer Dim Count As Integer Dim Col1S(5) As Integer Dim Col2S(5) As Integer ' [B:F].Interior.Pattern = xlNone [G2:AA21].ClearContents [AB:AE].ClearContents Application.ScreenUpdating = False ' For Each Cell In [B2:F21] Points(Cell.Row, Cell) = Cell.Column Next Cell ' For Row1 = 2 To 21 ' For Row2 = Row1 To 21 Count = 0 ' For Index = 1 To Max Col1 = Points(Row1, Index) Col2 = Points(Row2, Index) ' If Col1 > 0 And Col2 > 0 Then Count = Count + 1 Col1S(Count) = Col1 Col2S(Count) = Col2 End If Next Index ' If Count = 2 Then ColorPoint Row1, Row2, Col1S(1), Col1S(2) ColorPoint Row2, Row1, Col2S(1), Col2S(2) Col1 = Col1S(1) Col2 = Col1S(2) Col1 = Cells(Row1, Col1) Col2 = Cells(Row1, Col2) Index = Col1 * Max + Col2 - Max Cells(Index, "AB") = Col1 Cells(Index, "AC") = Col2 Cells(Col1, "AE") = Col1 Cells(Col2, "AE") = Col2 End If Next Row2, Row1 [AB:AE].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp End Sub ' Sub ColorPoint _ (RowA As Integer, RowB As Integer, ColA As Integer, ColB As Integer) Dim BData As String Dim ColO As Integer ' BData = Cells(RowA, "G") ColO = BData <> "" Cells(RowA, "G") = "'" & BData & Left(",", -ColO) & RowB - 1 Cells(RowA, ColA).Interior.Color = vbYellow Cells(RowA, ColB).Interior.Color = vbYellow ColO = Cells(RowA, "AA").End(xlToLeft).Column Cells(RowA, ColO + 1) = Cells(RowA, ColA) Cells(RowA, ColO + 2) = Cells(RowA, ColB) End Sub 図のAB列の最後、26、27が気になったのですが、旧プログラムを動かしてみても、これは出ませんでした。
お礼
前回、うれしくて確認不足でした。 22・30が1つになった事を確認しました。 26・27は前回、今回も最後に1つだけでてくるだけなのでよいです。 ありがとうございました。