• 締切済み

エクセル2003で日付等をソートしたい

エクセル2003で日付等をソートしたいのですが、簡単に設定できますか?? 表のA1に日付というセルを作りました。その下から日付がずらっと並んでいるのですが、その日付はランダムで、上から若い順に並び替えたいです。 毎回、手動でするのではなくて、A1セルにボタンをつけて、カチッとクリックするだけで並び替えをしたいです。 たまに見かけるのですが、セルの右端に灰色の矢印の付いたボタンみたいなのが、そうだと思います。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 返事が遅くなってすみません。 >×印が出るやつです。なぜでしょうか?? それを、「実行時エラー」といいます。 たぶん、コードを貼り付けるシートと、ボタンの場所が食い違っているからです。 例えば、 Visual Basic ---[Sheet1(コード)] と、枠の一番上の青いところに表示されていて、 左上の窓を見ると Sheet1(Sheet1) とかが、黒っぽくセレクトされているはずです。  そこに、コードを貼り付けます。 後は、その場所で、F5 を押して、フォームボタンを作るマクロ を実行してみてください。 それから、今、気が付きましたが、安全のために、 ActiveSheet.Range("A1").Sort  は、  Range("A1").Sort と換えてください。 Private Sub SortPr() '並べ替えマクロ Const myOrder As Integer = xlAscending ActiveSheet.Range("A1").Sort _     Key1:=Range("A2"), _     Order1:=myOrder, _     Header:=xlYes, _     OrderCustom:=1, _     MatchCase:=False, _     Orientation:=xlTopToBottom End Sub     ↓ Private Sub SortPr() '並べ替えマクロ Const myOrder As Integer = xlAscending     Range("A1").Sort _     Key1:=Range("A2"), _     Order1:=myOrder, _     Header:=xlYes, _     OrderCustom:=1, _     MatchCase:=False, _     Orientation:=xlTopToBottom End Sub なお、お互いのお時間が経ちましたので、「お礼側」書いていただければ、こちらは、見落とししないで済みます。よろしくお願いします。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 #3さんのご意見には申し訳ないのですが、マクロを作ってしまいました。 以下は、ボタン(フォーム)そのものを作ってしまうマクロです。 一応、今は、ボタン(フォーム)は昇順に並べるだけです。 マクロの付け方: データのある場所のシートタブを、右クリックすると、コードの表示というものがありますから、それをクリックして画面を出していただきます。以下を貼り付けてしまったら、 後は、Altキーを押しながら、F11で、元の画面に戻ります。 (注意:今回の場合は、かならず、データの並べ替えをするシートでなければなりません。また、フォームボタンから本格的なコントロールツールボタンに移行する場合は、ボタンのマクロの中身だけをそっくり抜き出せば使えます。) 最初に、ボタンの位置決めをしておきます。 Altキーを押しながら、F8 を押して、『フォームボタンを作るマクロ』の名前を小窓の中から探して、クリックしてください。 うまく成功すれば、ボタンが、位置決めしたところに出てくるはずです。 後は、そのままお使いください。『フォームボタンを作るマクロ』は、もし使うことがないなって思ったら、削除してしまったほうがよいです。 ボタンの位置が後で気に入らなかったら、ボタンを右クリックすると、選択状態になりますから、マウスカーソルの形状が変わって十字になれば移動できます。また、白抜き矢印状態の時は、削除も可能です。 Sub フォームボタンを作るマクロ() Dim dummy As Variant Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double Dim CodeModuleName As String CodeModuleName = Application.VBE.ActiveCodePane.CodeModule.Name On Error Resume Next  Set dummy = ActiveSheet.Buttons("SortButton") If Err.Number = 0 Then   MsgBox "既にボタンは作られました。再び作る時は、前のものを削除してください。"   Exit Sub End If On Error GoTo 0 If MsgBox("ボタンは、この場所でよろしいですか?", vbOKCancel) = vbCancel Then   Exit Sub End If On Error GoTo ErrMsg With ActiveCell  x1 = .Left  y1 = .Top  x2 = .Offset(, 1).Left  y2 = .Offset(1).Top End With With ActiveSheet.Buttons.Add(x1, y1, x2 - x1, (y2 - y1) * 2)   .Name = "SortButton"   .OnAction = CodeModuleName & ".SortPr"   .Caption = "並べ替え"   .Visible = True End With Exit Sub ErrMsg: MsgBox "設定に失敗しました。", 16  ActiveSheet.Buttons(1).Delete End Sub Private Sub SortPr() '並べ替えマクロ Const myOrder As Integer = xlAscending ActiveSheet.Range("A1").Sort _     Key1:=Range("A2"), _     Order1:=myOrder, _     Header:=xlYes, _     OrderCustom:=1, _     MatchCase:=False, _     Orientation:=xlTopToBottom End Sub

gawahann
質問者

補足

言われたとおり、実行すると、400と出てブーっとなって、無理でした。ダイアログボックスに、×印が出るやつです。なぜでしょうか??

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

(1)まず本質問と直接関係ないですが、日付と見えるものも、文字列と正式な日付と2種あります。 エクセルの標準の日付を入力したデータだと、日付のセルの「値」は日付シリアル値という整数値なんです。ですから数値が入っている列のソートと 同じことなのです (2)>ボタンをつけて、カチッとクリックするだけで並び替えをしたいです オートフィルタの画面からの連想だと思いますが、#1でご指摘の通り、列データの中からの抽出の選択のためのものです。ドロップダウンリストの一種で選択のためのコントロール(部品)です。 ソートは並べ替えのキー(それを元に並べ替える)の列を指定するので、 多数列先頭のドロップダウンでは用を成しません。 むしろ1つのボタンを貼り付け、クリックするとソートする仕掛けを VBAで作ります。 (3)昇順が決まっていて、キー列も決まっているなら、VBAやマクロの記録でやれますが、それを勉強するまでは、エクセルの標準の並べ替えの操作を 面倒でも行ってください。 (4)ソート列の設定という点で、毎回データを入れるたびに自動で並べ替える、手操作による設定はありません。 楽に楽にを追求するのもいいですが、全体のニーズのバランスも考えて、今の姿になっている場合が多いので、そんなに沢山の課題で裏技的なものが存在するわけではありません。VBAを学べば、すこし自由にできる場合があります。

gawahann
質問者

お礼

私にはまだまだ早いってことですよね?? imogasiサンには、頭が下がります…いつもありがとうございます!!

回答No.2

オートフィルターの事でしょうか? その日付というセル(A1)を選択して、[データ]-[フィルタ]-[オートフィルタ]を上のメニューから選んでください。 そうすると、その矢印のボタンがでてくるので、 それをクリックして、ちょっと上にある、 昇順で並べ替え・降順で並べ替え などを使って並べ替えしてください^^ 頑張ってください(,,゜Д゜)

gawahann
質問者

お礼

できました!!でもNo1の方が、使い方が違うって言ってまして…ありがとうございました。

  • mati53
  • ベストアンサー率24% (9/37)
回答No.1

エク使用していますが、あまり詳しいほうではありません。 並び替えですが、カチッとする方法ではなく、普通に並べ替える箇所(横のデーターなどもあればすべて)を選んでデーターの並べ替えでできると思います。 セルの設定は日付にしておくとよいと思います。 カチッとボタンは抽出する場合に使用します。 例えば何かの合格OR不合格の人だけを表示するなど。 その場合はデーターのフィルターを使います。

gawahann
質問者

お礼

カチッとボタンは使い方が違うんですね。うかつでした…ありがとうございました!

関連するQ&A

  • エクセル2000でのソート

    エクセル2000で表を作成しました。並び替えをしたいと思います。 並び替えのキーには、書式設定でユーザー定義0000#としています。 例) A1:03641、A2:03641A、A3:14563、A4:08637 を並び替えした場合、 03641、08637、14563、03641A の順に並び替えされてしまいます。 私は、03641の次に03641Aが来るように処理をしたいのですが、何か良い方法はあるのでしょうか? 皆様の知恵をお貸しください。

  • エクセルで、ソートすることは出来ますか??

    皆様、お世話になります。 エクセルで・・・ セル 1-A~ZZ ぐらいまでに、 1~43までの数字がランダムに書き込んであります。 この横方向一列に書き込んである、数字を、 小さい順番に、一発で、並び替えることは出来ますか? 小さい順番に並び替えることをソートとかいうと思いますが、出来るのでしょうか? 宜しくお願いします。

  • Excelのソートのやり方

    オリコンチャートを画像のようにExcelで表にしているのですが 月~日、週は手動?入力で 計は月~日を足した物で=SUM(D141:D147)みたいなやつで勝手に足してくれてるんですが この計を数字が大きい順にソート?したいです。 10000 9000 8000 12000 8500を 12000 10000 9000 8500 8000にしたいのですが表を作るまでは全く使ったことがないので よくわかりません。 やり方があれば教えてください。2007です。

  • エクセルでのソート

    エクセルでセルの背景色でソートさせたいのですがどのようにすればいいのでしょうか。(色別のソート順はユーザで設定した順番で行ごと) 宜しくお願いします。

  • EXCELで表を抽出する

    ・A列に日付、B列に件名を入力した表があります。 ・A列の日付は、ランダムに、繰り返し現れます。 この表から、たとえば7月だけの、A列に日付、B列に件名の表を抽出する場合、 手動でする場合は、最初の表を日付順にソートし、黙視で7月分をコピーし、別表に貼り付ける、というやり方でできますが、 数式や関数で自動的にやる方法はないでしょうか? マクロが必要になりますか?

  • EXCEL2003で日付をソートしたい

    エクセル2003で出納帳を作成しています。 日付をソート(若い順)するにはどうしたらよいでしょうか?? A列 6/1 6/2 6/3 6/1 6/2 これを A列 6/1 6/1 6/2 6/2 6/3 という感じにしたいです。 B列以降C,D,E~には、文字列、関数、数値等が入力されており、それも同時に動かしたいのですが… よろしくお願いします。

  • エクセル excel 機能 ソート テキスト出力

    表計算のためエクセルの使用を考えています。 エクセルはこれまで使ったことがなく、どのようなものか分からず質問させて頂きます。 セルごとにランダムに入力した数値を小さい順に並べ替えてテキストとして出力する機能はありますでしょうか? 例えば0~100までの数字をセルごとにランダムに入力します。 そのランダムな数字を大きさ順に並べ替えたものを、例えばテキストデータとしてメモ帳などに貼り付ける形で出力させたいです。 このような機能はありますでしょうか? 教えて下さい、宜しくお願いします。

  • エクセルを使ってソートできる表を作りたいのですが…

    日付、項目名、金額、などの項目を並べて書いて、あとで自由に金額順や日付順にソートできるようなものを作りたいのですがエクセルでもそのようなものは作ることが可能なのでしょうか? そういうことがしたいのであれば専用のソフトがあります、というのであればそのソフトの名前も教えていただけると助かります。

  • エクセル 日付データの取り扱いについて

    WEBサイトから、 31.08.14 09.08.14 12.12.14 (日.月.年)のようなデータをコピペしてきた際に、うまくソートできません。 日付順にソートできるようにしたいと考えています。 貼り付ける前にセルの書式設定を変えた方がよいのでしょうか? ご教授お願いいたします。(エクセル2013)

  • エクセル ボタンでソートしたい

    教えてください エクセル表で各列でソートしたい 列毎のマクロを書くのは大変なので、ボタンを表示しておき、その列のセルをクリックしてactive にしてから、ボタンをクリックしたらソートできるようにしたい。 Dim retuban retuban = XXXXXX strkey1 = retuban Selection.Sort Key1:=Cells(3, strkey1), のようにやればいいと思うのですが XXXXXの列名(AAなど)を取得するマクロがうまくいきません よろしくお願いします。

専門家に質問してみよう