• ベストアンサー

Excelで入力したデータを自動的に並び替える方法

Excel2000で、名前のリストを作成し、これを、あいうえお順(昇順)に並び替えたものがあります。 このリストに、新しく名前を入力したときに、自動的に昇順の並び替えてくれる方法ってありますか? 質問がわかりにくければ、補足します。 よろしくお願いします。

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

  • ベストアンサー
  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.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列に名前を入力してエンターキーを押した時点で並べ替えが実行されます。 お試しになってみて下さい。

mikantyan
質問者

お礼

できましたー。有難うございます!

その他の回答 (3)

  • aieeen
  • ベストアンサー率12% (7/54)
回答No.3

>昇順で並べ替えぼたんを押さずに、ただ入力するだけで変えれる方法があればいいな・・・と思ってるのですが・・ ユーザーフォームを使用するとできると思います。 手順です。 AUTO_OPENにし ユーザーフォーム(1).Show にします。 ユーザーフォーム(1)には【新規作成】と【修正】CommandButtonを用意し ユーザーフォーム(2)に飛ばし、ユーザーフォーム(2)はコンボボックスと テキストボックスを用意しそこに入力します。最後に終了ボタンを押すと 並び替えと、重複データの古いデータを削除して、(【修正】ボタンのみ)保存します。 VBAコードは余りにも長いので、ポイントを書いてもらえれば、そこだけ後から追加します。

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

私の他の質問でも述べていますが、エクセルで、ちょっとした問題を解決するとき次の3つがあります。 「ちょっとした」とは「○○システム」なんて中・大規模なものでない課題をいいます。1データ当たり手作業で数ステップ程度。 (1)手操作(本来の使い道)(2)関数を使う(3)VBA(マクロ)を使う。(4)(1)の延長で、特別な ウイザードを使う。 (1)による解決は望んでいないから、この質問になるのですが、(2)に期待する方が相当多い。しかし関数では 行の挿入や、削除は出来ませんので無力です。 (3)のVBAを使えば出来ますが(A)入力し終わったら、即座にソートしなおすのは高級(?)テクニックですがお望みですか。(B)ボタンをシート上に貼りつけ 入力の都度クリックするのを我慢するなら、マクロの記録 をとって、それを少し一般化すれば出来ます。 どのへんまでお望みですか。(3)は人によっては労多くして、報いが少ないと思いますが。

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.1

入力後にツールバーの「昇順で並べ替え」ボタンを押したら変わりますが、もっと簡単にしたいのでしょうか。

mikantyan
質問者

補足

さっそくありがとうございます。 昇順で並べ替えぼたんを押さずに、ただ入力するだけで変えれる方法があればいいな・・・と思ってるのですが・・ いい方法があればお願いします。