[[20150201215504]] 『色のあるセルを並び替えにてエラーが表示される。』(とくと) ページの最後に飛ぶ

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

 

『色のあるセルを並び替えにてエラーが表示される。』(とくと)

お世話になっております。

先日、こちらで「セルの色で並び替え」の
コードについて質問しアドバイスを頂いたのですが
新たな問題が発生したため書き込みを致しました。

質問内容は、ソートの範囲についてです。

・問題は・・・For Each r In ws.Range("A2:K2") のセル範囲です。

(1)Sheet1に、"A2:K2"の範囲に項目をしデータを200行程入力したものに

   For Each r In ws.Range("A2:K2")・・・・→正しく処理されます。

これを

(2)Sheet2に、"A2:CN2"の範囲に項目をしデータを200行程入力したものに

  For Each r In ws.Range("A2:CN2")

  〜〜〜〜下のコード部分が黄色くなってエラー表示〜〜〜〜

   .SortFields.Add(Key:=r, SortOn:=xlSortOnCellColor, _
                            Order:=xlAscending).SortOnValue.Color = RGB(255, 255, 0)

なぜエラーになるのか分かりません。
範囲が範囲が広すぎるのでしょうか?

【エラー無し】

Sub 色ソート1()

    Dim r As Range
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")

    With ws.Sort  'ActiveSheet.Sort
        '並び替え設定を一旦削除
        .SortFields.Clear

        'A2を含むセル列の黄色色で昇順に並び替える

        For Each r In ws.Range("A2:K2")'←←←←←←←←←←←←範囲Kだとエラー無し

            .SortFields.Add(Key:=r, SortOn:=xlSortOnCellColor, _
                            Order:=xlAscending).SortOnValue.Color = RGB(255, 255, 0)
        Next
        '並び替える範囲をA1を含む表全体とする
        .SetRange ws.Range("a1").CurrentRegion
        '一行目を項目列とする
        .Header = xlYes
        '並び替えを実行
        .Apply

    End With
End Sub

【エラー発生】

Sub 色ソート2()

    Dim r As Range
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet2")

    With ws.Sort  'ActiveSheet.Sort
        '並び替え設定を一旦削除
        .SortFields.Clear

        'A2を含むセル列の黄色色で昇順に並び替える

        For Each r In ws.Range("A2:CN2")'←←←←←←←←←←←←範囲CNにするとエラー

黄色くなる→ .SortFields.Add(Key:=r, SortOn:=xlSortOnCellColor, _
黄色くなる→       Order:=xlAscending).SortOnValue.Color = RGB(255, 255, 0)

        Next
        '並び替える範囲をA1を含む表全体とする
        .SetRange ws.Range("a1").CurrentRegion
        '一行目を項目列とする
        .Header = xlYes
        '並び替えを実行
        .Apply

    End With
End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 エラーはコンパイルエラーですか?実行時エラーですか?
 実行時エラーだとして、そのとき表示されたエラーコードとエラーメッセージはどんなものでしたか?

(β) 2015/02/01(日) 23:30


 優先順位のキーは64個が最大です。

 なので、2回に分けて並べ替える必要があります。
 その際、
  1回目を普通優先グループ(BA:CN)、
  2回目を最優先グループ(A:AZ)
 にしてしてください。

(半平太) 2015/02/01(日) 23:41


βさん
半平太さん

ありがとうございます。
64個の制限だったんですね。
2回に分けるとできました。

解決です。
ご指導ありがとうございます。
(とくと) 2015/02/02(月) 08:23


コメント返信:

[ 一覧(最新更新順) ]


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