| 
    
     |  | 返事遅れてすいません構文が難しく悩んでいて八方ふさがりになっていました。 とりあえず処理自体は希望どうりの動きと結果でした。
 自分も勘違いしていた部分もあり理解した部分もあるのですが理解できない
 部分は、いまだにインターネット又本等で調べているのですがわからず
 あつかましのですがもう一度教えてください
 
 vntKeys = Array(0, 1)
 
 
 カンマがついていたので2次元配列と勘違いしていました。
 Array関数は1次元配列のバリアント型なのは納得しましたが、Arrayで列を格納する場合
 Array(”A”、”B”、”C”、”D”)又は数字の場合Array(Array(0,1)・・・・
 見たいな感じかとおもっていました?
 上記文だと
 Vntkeys(0)=0’VntKeys(0)に0を格納する
 vntKeys(1)=1’VntKeys(1)に1を格納する
 と自分は解釈していまあしたが、これで2列をキーとできるのがとても不思議です?
 後Private Subの構文も処理がわからず
 
 特に
 lngNum = -Int(-(UBound(vntK) + 1) / 3) * 3 - 1 ’///この構文がわからない?
 
 ReDim Preserve vntK(lngNum), vntO(lngNum)
 For i = UBound(vntOrders) + 1 To lngNum ’動的配列宣言範囲VntOrdersに1                        ’を足した数字〜lngNumまで
 vntO(i) = xlAscending ’vnt0で繰り返し参照している部分を昇順にする
 Next i iに処理を移行
 
 With rngScope rngScopeに対して同じ処理を行う
 For i = lngNum To 0 Step -3 ’///なんでステップ3ずつ?
 .Sort _
 Key1:=.Cells(1, vntK(i - 2) + 1), _
 Key2:=IIf(IsEmpty(vntK(i - 1)), vntK(i - 1), .Cells(1, vntK(i - 1) + 1)), _
 Key3:=IIf(IsEmpty(vntK(i)), vntK(i), .Cells(1, vntK(i) + 1)), _
 Order1:=vntO(i - 2), _
 Order2:=vntO(i - 1), _
 Order3:=vntO(i), _
 Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
 Orientation:=xlTopToBottom, SortMethod:=xlStroke
 後上記配列を使用しないコードを処理してみましたがこちらも処理結果はOKですが
 ステップごとに動かして見ましたがE列に連番を振っている部分は確認できましたが
 その後は処理が早すぎるため動きが確認できませんでした。
 一応報告まで
 
 
 |  |