- ベストアンサー
Excel VBAで特定の漢字が含まれる行を下にソートする方法
- ExcelのVBAを使用して特定の漢字が含まれる行を一番下にソートする方法について教えてください。
- セルの特定の列(C列)に特定の漢字が含まれる行を下にソートする方法について教えてください。
- Excelの特定の列に特定の漢字が含まれる行を一番下にソートする方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
記録マクロでは細かいところは、ちょっと思うように行かないかもしれませんが、基本的にはには、並べ替えで出来るかと思います。 特定のバージョンのクレジットは付けませんが、その機能があればどのバージョンでも問題ありません。検索は、InputBox を取り付けてもよいと思います。 Sub Test1() Const sWORD As String = "和" Dim rng As Range Set rng = Range("A2", Cells(Rows.Count, 1).End(xlUp)).Resize(, 3) Application.ScreenUpdating = False With rng.Columns(3).Cells.Offset(, 1) .Insert xlShiftToRight .Offset(, -1).Formula = "=ISERROR(FIND(""" & sWORD & """,RC[-1]))" End With rng.Resize(, 4).Sort Key1:=rng.Cells(1, 4), _ Order1:=xlDescending, _ Header:=xlYes rng.Resize(, 4).Columns(4).Delete Application.ScreenUpdating = True End Sub
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていますので、参考程度で・・・ 一例です。 「特定の文字」が変わってもいいように、INPUTBOXを使ってみました。 Sub test() Dim i As Long Dim str As String str = InputBox("特定文字を入力してください。") For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 3) Like "*" & str & "*" Then Range(Cells(i, 1), Cells(i, 3)).Cut Cells(Rows.Count, 1).End(xlUp).Offset(1).Select ActiveSheet.Paste End If Next i For i = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1 If Cells(i, 1) = "" Then Rows(i).Delete (xlUp) End If Next i End Sub こんな感じではどうでしょうか?m(__)m
お礼
ご回答ありがとうございます。
- hananoppo
- ベストアンサー率46% (109/235)
次のようなマクロでよいと思います。 Sub DataSort() Dim PasteRow As Long Dim LastRow As Long Dim MatchCell As Range Dim CutRow As Long Application.ScreenUpdating = False PasteRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 For LastRow = PasteRow - 1 To 3 Step -1 Set MatchCell = Range("C3:C" & LastRow).Find(What:="和", After:=Range("C" & LastRow), LookAt:=xlPart) If MatchCell Is Nothing Then Exit For Else CutRow = MatchCell.Row Rows(CutRow).Cut Rows(PasteRow) Rows(CutRow).Delete End If Next LastRow Application.ScreenUpdating = True End Sub このマクロはExcel 2000で作成しました。また、並び替え後も元の並び順が保たれるようにしています。
お礼
ご回答ありがとうございます。
お礼
ご回答ありがとうございます。