| 
    
     |  | >Function UserSort(sellRange As Range, celKye1 As Range, sheetname As String) 
 >Workcheets(sheetname).Activate
 >Range(sellRange).Select ★?
 >Selection.Sort Key1:=Range(celKye1) ★?, Order1:=xlAscending, Header:=xlGuess, _
 >OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
 >:=xlStroke
 >Range("A4").Select
 >End Function
 
 >指定の仕方が間違っているのでしょうか。
 >アドバイスお願いいたします。
 
 引数がRangeで渡されているのに、★印の部分でそれのRangeを取っているからでは?
 後、戻り値を返さないのだから、Functionでは無く、Subで
 私の場合は、以下の様にしています
 
 引数rngScope、rngKeyは、Book、Sheet等で修飾したRangeを渡せば善いと思います
 
 Sub MainMacro()
 
 With Worksheets("Sheet1")
 DataSort .Range("A4:G100"), .Range("A4")
 End Wirh
 
 End Sub
 
 Private Sub DataSort(rngScope As Range, _
 rngKey As Range, _
 Optional lngOrientation As Long = xlTopToBottom)
 
 rngScope.Sort _
 Key1:=rngKey, Order1:=xlAscending, _
 Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
 Orientation:=lngOrientation, SortMethod:=xlStroke
 
 End Sub
 
 |  |