- ベストアンサー
Excelで入力したデータを自動的に並び替える方法
Excel2000で、名前のリストを作成し、これを、あいうえお順(昇順)に並び替えたものがあります。 このリストに、新しく名前を入力したときに、自動的に昇順の並び替えてくれる方法ってありますか? 質問がわかりにくければ、補足します。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
初めまして。次のようにすれば、貴方様の思い通りの動作をするようになると思います。A列に名前を入力してある設定でコードを記述しています。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myClm As Integer If Target.Column <> 1 Then Exit Sub myClm = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess End Sub Sheet1のモジュールに上記のコードを記述して下さい。 A列に名前を入力してエンターキーを押した時点で並べ替えが実行されます。 お試しになってみて下さい。
その他の回答 (3)
- aieeen
- ベストアンサー率12% (7/54)
>昇順で並べ替えぼたんを押さずに、ただ入力するだけで変えれる方法があればいいな・・・と思ってるのですが・・ ユーザーフォームを使用するとできると思います。 手順です。 AUTO_OPENにし ユーザーフォーム(1).Show にします。 ユーザーフォーム(1)には【新規作成】と【修正】CommandButtonを用意し ユーザーフォーム(2)に飛ばし、ユーザーフォーム(2)はコンボボックスと テキストボックスを用意しそこに入力します。最後に終了ボタンを押すと 並び替えと、重複データの古いデータを削除して、(【修正】ボタンのみ)保存します。 VBAコードは余りにも長いので、ポイントを書いてもらえれば、そこだけ後から追加します。
- imogasi
- ベストアンサー率27% (4737/17069)
私の他の質問でも述べていますが、エクセルで、ちょっとした問題を解決するとき次の3つがあります。 「ちょっとした」とは「○○システム」なんて中・大規模なものでない課題をいいます。1データ当たり手作業で数ステップ程度。 (1)手操作(本来の使い道)(2)関数を使う(3)VBA(マクロ)を使う。(4)(1)の延長で、特別な ウイザードを使う。 (1)による解決は望んでいないから、この質問になるのですが、(2)に期待する方が相当多い。しかし関数では 行の挿入や、削除は出来ませんので無力です。 (3)のVBAを使えば出来ますが(A)入力し終わったら、即座にソートしなおすのは高級(?)テクニックですがお望みですか。(B)ボタンをシート上に貼りつけ 入力の都度クリックするのを我慢するなら、マクロの記録 をとって、それを少し一般化すれば出来ます。 どのへんまでお望みですか。(3)は人によっては労多くして、報いが少ないと思いますが。
- dejiji-
- ベストアンサー率38% (327/858)
入力後にツールバーの「昇順で並べ替え」ボタンを押したら変わりますが、もっと簡単にしたいのでしょうか。
補足
さっそくありがとうございます。 昇順で並べ替えぼたんを押さずに、ただ入力するだけで変えれる方法があればいいな・・・と思ってるのですが・・ いい方法があればお願いします。
お礼
できましたー。有難うございます!