dポイントプレゼントキャンペーン実施中!

Excel2000で、名前のリストを作成し、これを、あいうえお順(昇順)に並び替えたものがあります。

このリストに、新しく名前を入力したときに、自動的に昇順の並び替えてくれる方法ってありますか?

質問がわかりにくければ、補足します。
よろしくお願いします。

A 回答 (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列に名前を入力してエンターキーを押した時点で並べ替えが実行されます。

お試しになってみて下さい。
    • good
    • 9
この回答へのお礼

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

お礼日時:2003/01/09 09:12

>昇順で並べ替えぼたんを押さずに、ただ入力するだけで変えれる方法があればいいな・・・と思ってるのですが・・


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

私の他の質問でも述べていますが、エクセルで、ちょっとした問題を解決するとき次の3つがあります。


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

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

この回答への補足

さっそくありがとうございます。

昇順で並べ替えぼたんを押さずに、ただ入力するだけで変えれる方法があればいいな・・・と思ってるのですが・・

いい方法があればお願いします。

補足日時:2003/01/08 12:02
    • good
    • 5

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

このQ&Aを見た人はこんなQ&Aも見ています