『ソート』(地蔵) B1:B10全てに入力規則が設定してあり、適当に選択したものを 他のセルに昇順に並べ替えしてリンクさせたく マクロの記録にて下記のようなものを作成しました。 ところが下記だとなにかしら行動する度にカーソルがB1:B10に戻り、 他のセルをいじってても逐一B1:B10に戻る為、大変不便です。 ただ単に、B1:B10のみをソートさせるだけにするには どうしたら宜しいでしょうか? Excel2003 Private Sub Worksheet_Change(ByVal Target As Range) Range("B1:B10").Select Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub ---- Select をやめれば良いのでは? (ROUGE) ---- こんな事かと思いましたが・・・・。 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B1:B10")) Is Nothing Then Range("B1:B10").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End If End Sub >B1:B10全てに入力規則が設定してあり でしたら、並べ替えの Headerは「無し」にしておくのが良いと思います。 また >他のセルに昇順に並べ替えしてリンク が、実際にどの様な事を意味しているのか分からないので 並べ替えに関してのみです。 あ・・・Select もやめました。 お好みで戻して下さい。 (HANA) ---- 素早い対応ありがとうございます! 結果はHANAさんの方法で希望通りになりました。 最初はROUGEさんのようにSelectを外して試したのですが、 範囲内(B1:B10)なら問題ないのですが、 それ以外のセルの時にエラーになったんです。 それで処理方法が分からず教えていただきに参りました。 >実際にどの様な事を意味しているのか分からないので 提出用の用紙を作成するにあたって、 不規則に選択したオプション一覧を 提出用の用紙に見栄え良く並べたかっただけなんです・・・ 単なる自己満足で申し訳ないです。 (>_<) (地蔵) ---- エラーになるとは? (ROUGE) ---- あれっ? 再発しなくなりました?? そのときは「メソッドが・・・」 のようなエラーメッセージが出て Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal の部分が黄色くなったような・・・ いらないところまで消してたのかな? ただ、Range("B1:B10").Selectを抹消しただけですが (^^;) (地蔵) ---- 何度もすみません。 新規BOOKで試したら再現しましたので 出現エラーを報告させていただきます。 実行時エラー '1004': 並べ替えの参照が正しくありません。参照が 並べ替えるデータ内であることと[最優先 されるキー]ボックスが空白でないことを確認してください。 (地蔵) ---- > ただ、Range("B1:B10").Selectを抹消しただけですが (^^;) いや、そこは消しちゃだめでしょb HANAさんのコードをよ〜く目を凝らしてみてください。 (ROUGE) ---- >Select をやめれば良いのでは? はもしかしてこーゆーことですか?(恥) Private Sub Worksheet_Change(ByVal Target As Range) Range("B1:B10").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub ↑は問題なく動作しました! (地蔵) ---- >実際にどの様な事を意味しているのか分からないので これは、  このコードが、長いマクロの一部なのか  これだけで完結する物なのか分からない と言う意味だったのですが・・・・ ご希望の様に出来たようで 良かったです。 「Selection.Sort」→選択しているセル範囲をソート するようにエクセルに指示を出したのに 並べ替えが出来るデータが無いセル範囲(或いはセル) が選択されていたら 「並べ替え出来ないよ!!」 って言われますよね。 ですから 「Range("B1:B10").Sort」この範囲をソートしてね ってお願いしてあげて下さい。 (HANA) ---- ご説明、痛み入ります! m(_ _)m 思いっきり、初歩的なミスですね! ちょっと考えればわかりそうなものなのに・・・ ありがとうございました。 因みにこのマクロはこれだけの代物でした。 (地蔵)