OCN光で最大124,800円おトク!

VBAマクロで自動で並べ替えを行っていますが、
データ→並べ替え→オプションで並べ替えオプションの
「並べ替え順序の指定」の欄に自分が作成したリストがあるのですが、(上から13番目、一番下に存在)マクロを実行すると、その通りに並べてくれたり、くれなかったりと気まぐれです。

こんな経験をしたかたいらっしゃいますか。
もしいればどういった原因が考えられるのでしょうか?
わかる方教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんばんは。



>「マクロで、独自の並び替えリストを付け加え、それでもって、「並び替え」をさせ、独自の並び替えリストは、削除します。」

こうやって書くのは簡単でも、覚えていたものをそのままやってみたら、なんとうまくいかないので、試行錯誤してしまいました。(参りましたね(^^;)いいかげんに、覚えていたのとは、かなり差があります。

問題は、いわゆるオーダーカスタム(自分で作った順番)が正しくあるかどうか、それは、どこにあるか、ということを正確に把握するためには、一旦、VBAで、オーダーカスタムを与えて、そこで、「リスト番号」を取らないとダメだっていうことなのです。ただし、削除しなくてもよいです。カスタムリストに既にある時は、カスタムリストには入りません。

そこで、こんな風にやってみたらどうでしょう?

ちなみに、Header:=xlYes でないと、うまくないようです。
ただ、数字の場合は、一旦、文字列に変わってしまいますね。

Sub SortSample1()
Dim Rng As Range, myList As Variant, ListNum As Integer
Set Rng = ActiveCell.CurrentRegion
 myList = Array("社長", "専務", "常務", "部長", "次長", "課長", "係長", "主任")
 Application.AddCustomList ListArray:=myList
 ListNum = Application.GetCustomListNum(myList)
 Rng.Sort Key1:=Rng.Cells(1, 1), Order1:=xlAscending, Header:=xlYes, _
    OrderCustom:=ListNum + 1, MatchCase:=False, Orientation:=xlTopToBottom, _
    SortMethod:=xlStroke
Application.DeleteCustomList ListNum
End Sub
    • good
    • 0
この回答へのお礼

本当にすみません。ただ恐縮するばかりです。
色々知識を与えていただき、ありがとうございます。

お礼日時:2005/07/07 21:49

こんにちは。

Wend02 です。

直接の回答にはならないかもしれませんが、通常、私は、マクロでは、独自の並び替えのリストが必要なときは、既に並び替えリストがあるなしに関わらず、必ず、マクロで、独自の並び替えリストを付け加え、それでもって、「並び替え」をさせ、独自の並び替えリストは、削除します。

VBAのお約束のようなものだ、と私は思っています。

それ以外に関しては、問題があったコードをみてみないとはっきりしたことは言えませんね。

この回答への補足

今、扱っていて「あれ」と思ったのですが、昼に行っていたパソコン(職場)では並べ替えオプションの独自の並び替えリストの最後に作成したリストがあったのに、家のパソコンで開いてみたらないんです。

質問の気まぐれ現象もこれに起因(原因はわからないが・・・)するんですかね~?

補足日時:2005/07/07 20:45
    • good
    • 0
この回答へのお礼

3つの質問に親切に答えていただきありがたく存じます。

「マクロで、独自の並び替えリストを付け加え、それでもって、「並び替え」をさせ、独自の並び替えリストは、削除します。」

どういう技なのか気になります。

如何せん自分でマクロを組む力量がないので、教えてもらったコードをいじくることくらいしかできない自分が情けない。

マクロコードを構築できる皆さんにはただただ敬服するばかりです。

よろしければその技も教えていただければ使用したいと思うのですが・・・

(私だけのために3つもの質問に答えていただきながら頼むのもあつかましいのですが)

お礼日時:2005/07/07 15:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング