• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:重複したコメントを削除して書き出すマクロ)

重複したコメントを削除するマクロの作成方法

このQ&Aのポイント
  • 質問者は、A列~H列の1~100行目に入力されたコメントの中に重複があることに気付きました。同じコメントが異なる列にあっても書き出したいと考えています。質問者は既存のデータを試行錯誤して確認しましたが、うまくいきませんでした。
  • A列~H列の1~100行目に入力されたコメントには、重複があります。例えば、A列のコメントには1,2,3,4,5,3,4,5という重複があります。質問者は、重複を削除してA列に1,2,3,4,5と書き出したいと考えています。同様に、B列のコメントにも重複があります。
  • 質問者は、A列~H列の1~100行目に入力されたコメントの重複を削除して書き出すマクロを作成したいと考えています。同じコメントが異なる列にあっても書き出したいとのことです。試行錯誤しましたが、うまくいかなかったため、助言を求めている状況です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 本当は、他の方法でもよいとは思ったのですが、この前の続きで、ほとんど変えないまま、手を加えています。ほとんど、考えて作っていませんので、間違っていましたら、すみません。 ----------------------------------------------- '標準モジュール Sub TestMacroR()   Dim rng As Range   Dim ar() As String   Dim ar2() As String   Dim cl As Range   Dim ret As Variant   Dim buf As String   Dim i As Long Dim j As Long   Set rng = ActiveSheet.UsedRange   Application.ScreenUpdating = False   For Each cl In rng.Columns     ReDim ar(cl.Cells.Count - 1)     ReDim ar2(cl.Cells.Count - 1, 0)     For i = 1 To rng.Cells.Count       If Not cl.Cells(i).Comment Is Nothing Then         buf = WorksheetFunction.Clean(Trim(cl.Cells(i).Comment.Text))         On Error Resume Next         ret = 0         ret = WorksheetFunction.Match(buf, ar(), 0)         On Error GoTo 0         If ret = 0 Then           ar(i - 1) = buf           ar2(j, 0) = Mid$(buf, InStr(buf, ":") + 1)           j = j + 1         End If         buf = ""       End If     Next i     If j > 0 Then       '151行目から排出       With Cells(151, cl.Column).Resize(j)         .Value = ar2()       '並べ替え         .Sort Key1:=.Cells(1), _                Order1:=xlAscending, _                Header:=xlNo, _                MatchCase:=False, _                Orientation:=xlTopToBottom, _                DataOption1:=xlSortNormal       End With       j = 0     End If   Next cl     Application.ScreenUpdating = True     Set rng = Nothing End Sub   

CaveatEmptor
質問者

お礼

忙しい中、回答ありがとうございました。 教えていただいたマクロで思ったとおりの結果を得ることができました。たびたびありがとうございました。

関連するQ&A