[[20230926221342]] 『【VBA】ソートメソッドでなぜかデータが連続コピ=x(まるこ) ページの最後に飛ぶ

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

 

『【VBA】ソートメソッドでなぜかデータが連続コピーされる』(まるこ)

VBA初心者です。現在28行目、O列まで入力されたデータをソートメソッドで並び替えるプログラムを以下のように作ったところ、何故か29行目以降、特定の行のデータ(A列がRGB166,166,166で塗りつぶされた行のうちの一つ)が
最終行までコピーされるという事態に陥っています。
ちなみにA列の塗りつぶしは条件付き書式で設定しています。


 Sub 並び替え1()

 With ActiveSheet.Sort

     .SortFields.Clear

     .SortFields.Add _
         (Key:=Range("a3:a50"), _
         SortOn:=xlSortOnCellColor, _
         Order:=xlDescending) _
     .SortOnValue.Color = RGB(166, 166, 166)

     .SetRange Range("a2:o50")
     .Header = xlYes
     .Orientation = xlTopToBottom
     .Apply

 End With

 Range("3:50").EntireRow.AutoFit

 End Sub

今までソートメソッドを何度か使いましたが、初めての事態に非常に困っております。
なんでこの挙動になるのか原因が分からず、気味が悪いです。
申し訳ありませんが、お知恵をお貸しください。よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:unknown >


 マクロでなく手動で並べ替えしてもそうなるのですか??
(xlg) 2023/09/27(水) 08:14:59

 よく見たら

>VBA初心者です。現在28行目、O列まで入力されたデータをソートメソッドで並び替える

なのに、なんで Key:=Range("a3:a50") とか .SetRange Range("a2:o50") とかになってるのかしらん?
(xlg) 2023/09/27(水) 08:17:53


問題なく動作することを確認しました。

ここに表示されていないコードに問題がないか、
問題の行が他の行と何か違わないか、
をご確認ください。

それ以上のことは言えないような気がしますが。
(ゆたか) 2023/09/27(水) 08:47:56


.SortOnValue.Color = RGB(166, 166, 166)
は色でソートする指定ですよね。
これをコメントアウトして実行するとどうなるでしょうか。

(マクロ苦手) 2023/09/27(水) 08:51:32


興味本位で確認。

>ちなみにA列の塗りつぶしは条件付き書式で設定しています。
↑はどのような条件が設定されているのでしょうか?

(もこな2 ) 2023/09/27(水) 08:55:16


xlg様 手動での並び替えも行いましたが、色順にきちんと並び変わりませんでした。
あと、cells(rows.count,1).end(xlup).rowで最終行取得の形に書き換えたところ、きちんと動作しました。ありがとうございました。
ただ、元コードでも相談したような動作は本来起きないはずなので、ソートオブジェクトを使い続けることに不安を覚えています。

ゆたか様 やはりコードは問題ないですよね。それ以外の要因も検討がつかず気味が悪いです。

マクロ苦手様 ソートオブジェクト以外の機能をほぼ記載していないので、それをコメントアウトすると動作内容がほぼなくなってしまうのですが…理解できていなかったらすみません。

もこな2様 条件付き書式にて「A列に×が入力されている場合、セルを灰色(RGB166,166,166)にする」という式が設定されています。

(まるこ) 2023/09/28(木) 08:22:20


>手動での並び替えも行いましたが、色順にきちんと並び変わりませんでした。

 だったらソートオブジェクトとかいう以前の問題じゃないですか。

 もうシートの全データを新規ブックに値コピーして条件付き書式も設定して、プロシージャもコピーして試してみるくらいしか思いつきませんね。
(xlg) 2023/09/28(木) 08:33:08


 > ゆたか様 やはりコードは問題ないですよね。それ以外の要因も検討がつかず気味が悪いです。

もし原因を究明したいなら、新しいシートまたはブックでやってみてください。
おそらく、うまくいくんじゃないでしょうかね。

そして、だんだんとそのシートまたはブックを既存のものに近づけていって、
どうなるか、何が違うのかを発見することです。

今回のことに限りませんが、何かがおかしかったら、
おかしくないところを確認して(潰して)いくことかなと思います。

理由はいろいろと考えられます。
シートまたはブックの設定・状態、Excelのバージョン、OSのバージョン、PCの設定、他
いろいろと試してみないと、わからないですね。
(ゆたか) 2023/09/28(木) 08:45:01


編集がかぶりまくってますがそのまま。

↑は先頭の【>】が編集記号に扱いになっているので、適宜修正されるとよいとおもいますが、それはそれとして。

>A列に×が入力されている場合
ならば、A列にはどうやって"入力"していますか?

 実は数式が入っていて、並び替えの結果参照セルがずれてしまい
 コピーされたように見えたとか、他のマクロ(イベント)が発動して
 想定外の動作をしたとかを疑っています。

(もこな2 ) 2023/09/28(木) 08:45:51


>色順にきちんと並び変わりませんでした。
色は複数あるということですか。
>「A列に×が入力されている場合、セルを灰色(RGB166,166,166)にする」という式が設定されています。
その式の内容は
(マクロ苦手) 2023/09/28(木) 09:06:49

コメント返信:

[ 一覧(最新更新順) ]


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