| 
    
     |  | ユーザーフォームのコマンドボタンを押すと 非アクティブなシートにデータを書き込むように
 していますが、(メインのデータを書き込むシートがアクティブになっている)
 With Worksheets("Sheet2")
 .Range("A65536").End(xlUp).Offset(1, 0)=・・・・・・
 .・・・・・・・
 End With
 と非アクティブなシートに書き込んだ後に、フリガナでソートをしておりますが、
 ソートのコードがマクロの記録で生成されたものを使っているので、
 Worksheets("Sheet2").Range("F2", Range("J65536").End(xlUp)).Select
 (上のセル範囲指定のコードは自分で変更してます。)
 Selection.Sort Key1:=Range("H2"), Order1:=xlAscending, Key2:=Range("J2") _
 , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
 False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
 xlSortNormal, DataOption2:=xlSortNormal
 (Key2 は1234などの数字です。)
 ソートする為にそのシートを選択しなければならず、
 Application.ScreenUpdating = False
 Application.ScreenUpdating = True でソートする間と、元のシートに
 戻るまで、画面の更新を停止しております。
 このようなことをせずに、非アクティブなシートをソートする方法は
 あるのでしょうか?別なシートをアクティブにして、処理をして、また元のシートに戻るというのは、どうにも無駄な動作のように思われるので、アドバイスを
 宜しくお願い致します。
 
 
 |  |