• ベストアンサー

Excel VAB! 月でソートするコマンドは?

月別データの集計表の、数値の大きい順で並び替えさせた後に、コマンドボタンを使って月別に並び替えさせたい(大きい順で並び替えさせた前の状態へ戻す)のですが、ソートにはA-Z,Z-Aしか出てきません。 英語の月名(January...December)の順に並び替えさせるコマンドが全くわからず、四苦八苦しています。助けてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

#1です。 EXCEL2007の環境が無いので分かりませんが、 必ず設定はあると思います。 ヘルプで探してみてください。 尚、VBAはソートメソッドの引数として設定しますので、 OrderCustom:=4 だけ記述するとエラーになります。 もとのデータの範囲が分かりませんが 例えば、こんな感じです。 Sub test()   Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, OrderCustom:=5 End Sub それから、Excel2003では、Jan,Feb・・・のリストはOrderCustom:=4 January,February,・・・・・・・・・・のリストはOrderCustom:=5 でした。

daylight3
質問者

お礼

お返事を有難うございます!データの範囲は、A3:A14 に12ヶ月の名前に入力されています(January...December)。私のコマンドは初心者向けだと思うのですが、下記のようにコマンドを書いてます。3行目に月順に並べ替える命令を入力して、最後にA1にカーソルを置いて終了としたいのです。 Private Sub CommandButton1_Click()  Range("A3:A14").Select  Range("A1").Select End Sub 教えてくださいました CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, OrderCustom:=5 を入力し("A1")を("A3:A14")にしてやってみましたが、やはりエラーになってしまいました。何かおわかりでしたら、教えてください。たびたび申し訳ありません。よろしくお願い致します。

daylight3
質問者

補足

Header:=xlGuess を付けたら出来ました! 大変有難うございました。感謝致します。

その他の回答 (1)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.1

おはようございます。 ユーザー設定リストを使って並べ替えできます。 英語の月名(January...December)の順は最初から 登録されていますので、 Sortメソッドの引数で OrderCustom:=4 などのように設定すれば良いようです。 英語の月名(January...December)の順が リスト上で何番目に登録されているかによって、 OrderCustomの値は変わります。 OFFICE2003の場合はユーザー設定リストは 「ツール」→「オプション」→「ユーザー設定リスト」 で確認・登録できます。

daylight3
質問者

お礼

早速のご回答を有難うございます! 残念なことに、私はOffice2007を使用しているため、どこに「ユーザー設定リスト」があるのかわかりません。試しに、OrderCustom:=4 を入力しましてみましたが、Compile error と Syntax error が出てしまいます。どうしたらよいでしょう。。。?