[[20040415141212]] 『色付きの数値のみを並べ替えしたい』(福太郎) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『色付きの数値のみを並べ替えしたい』(福太郎)

[黒の中で赤の数値だけをまとめて並べ替える等の色付きの数値のみを並べ替えしたいのですがご教示お願いします。
]

[エクセルのバージョン]
Excel2000
[OSのバージョン]
Windows2000


 色は セル? 文字? 

 あと、条件付き書式ではないですよね?

  (INA)


色は文字で、条件付き書式にはなっていません。
(福太郎)


 シートのレイアウトは、どのようになっていますか?
 (何列の何行くらいですか?)

 (INA)


レイアウトは30列の115行です。
(福太郎)


 もうすこしくわしくおおしえください

 1行目は タイトル行ですか?
 それともデータですか?

 またデータは列ごとですか? 

 それとも行ごとですか?(A列がタイトル列で。)

  (INA)

 タイトル行 1〜9行
 タイトル列 A〜O列
 データ行  10〜115行
 データ列  P〜AC列
 ※データ行ごとの並べ替えです。
 (福太郎)

 ということは、並べ替えする範囲は  P10:AC115 で、
 横方向の並べ替えということですか?

  (INA)

 タイトルも並べ替えしたいので範囲は A10:AC115 とし
 方向は行単位となります。

 略図)
 *がデータで横(P〜AC)がグループとなります。
 各グループの中で1つ以上赤の文字がある場合、その行単位で並べ替えをさせたい。
 (昇順のように)
   
    A B C ・・P ・・・AC
 1  #  #  # ・・# # # # #
 2  #  #  # ・・# # # # #
 3  #  #  # ・・# # # # #
 ・  #  #  # ・・# # # # #     
 ・   #  #  # ・・# # # # #                  
 10 #  #  # ・・* * * * *    ↑
 ・  #  #  # ・・* * * * *                 
 ・  #  #  # ・・* * * * *  行単位の方向で並べ替え 
 ・  #  #  # ・・* * * * *
 115 #  #  # ・・* * * * *  ↓

 (福太郎)

 並べ替えの規則がよく分かりません。
 #の赤文字、黒文字 及び * の赤文字、黒文字の
 並べ替えの条件規則を詳しくお教え下さい。

  (INA)

 INA様

 #の部分はタイトルとなり全て黒文字です。
 *の部分がデータで規格外が赤で表示、規格内が黒で表示します。
 また、P10〜AC10は1項目に対しての14個の各データを表示しています。(P11〜AC11以下同様です)
 従って、規格外(赤文字)を含むグループと含まない(黒文字)グループがランダムに存在します。
 これらのグループの中で一つ異常の規格外(赤文字)を含むグループのみをA〜Oのタイトル
 も同時(行ごと)にまとめて並べたいのです。


 質問の繰り返しになり、お手数お掛けします。
 これで、だいたい理解できました。

 >これらのグループの中で一つ異常の規格外(赤文字)を含むグループのみを
 >A〜Oのタイトルも同時(行ごと)にまとめて並べたいのです。 
 どこに表示すればよいのでしょうか? 別シートでしょうか? 

 フローとしては、

 1.10-115行を別シートにコピー
 2.赤文字の含まれていない行を、行削除
 3.P-AC列の黒文字のセルを削除(左に詰める) 
 4.P-AC列 で行ごとに 並べ替え  

 こんな感じでしょうか?

  (INA)

 INA様
 表示させる場所はブック内の別のシートとなります。
 また、ご提案頂いたフローの中で 3番目は行わせないでそのままとします。
 そして、これらのフローを自動化することは可能でしょうか?
 (マクロのボタン一つで・・・)

 INA様やおまへんけど、よろしゅうおまっか?
 ほんなら下のコードを試してみておくんなはれ。
 Sheet1のデータをSheet2でソートしてありま。

 >マクロボタン1つで
 はい、コードをそのボタンに貼り付けたらいけま。
   ほな...(弥太郎)
 '------------------
 Sub sort()
    Dim i As Integer, n As Integer, Cnt As Integer

    Worksheets("sheet1").Range("a1:ac115").Copy
    Worksheets("sheet2").Select
    Range("a1").Select
    ActiveSheet.Paste

    For i = 10 To 115
        For n = 16 To 29
            If Cells(i, n).Font.ColorIndex = 3 Then
                Cnt = Cnt + 1
            End If
        Next n
        Cells(i, 30) = Cnt
        Cnt = 0
    Next i

    Range("a10:ad115").Select
    Selection.sort Key1:=Range("ad10"), Order1:=xlDescending
    Columns("ad10:ad115").Clear
    Range("a10").Select
 End Sub

 1.ALT+F11キーで、VBEを起動
 2.挿入−標準モジュール
 3.標準モジュールのコードウィンドウに以下のコードをコピペ
 4.EXCELに戻って、ツール>マクロ>マクロ>から sample を実行
  もしくは、ツールバーのフォームのボタンをシートに配置して、
  マクロ sample を登録する。

 Sub sample()
 Dim i As Long
 Dim myR As Range
 Dim ws1 As Worksheet
 Dim ws2 As Worksheet

    Set ws1 = ActiveSheet
    Set ws2 = Worksheets.Add

    'シートコピー
    ws1.Cells.Copy ws2.Range("A1")

 With ws2

    For i = 115 To 10 Step -1 '行削除するので逆ループ

        '列ループ (P〜AC)
        For Each myR In .Range(.Cells(i, 16), .Cells(i, 29))
            If myR.Font.Color = vbRed Then
                GoTo NextRow
            End If
        Next myR

        .Rows(i).Delete  '行削除
 NextRow:
    Next i

    '並替
    For i = 10 To .Range("A10").End(xlDown).Row
        .Range(.Cells(i, 1), .Cells(i, 29)).sort _
        Key1:=.Cells(i, 1), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlLeftToRight, SortMethod:=xlPinYin
    Next i

 End With
 End Sub

    (INA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.