|    | 
     ▼ドカ さん: 
 
こんにちは 
 
検証、ありがとうございます。 
 
まず、【うまくいっている】という最初のコード Sample ですが、隠れているバグがありました。 
データの状況によっては発生しないのですが、あきらかにバグです。 
With Sheets("Sheet1")  '元シート このブロックに 
For j = 1 To y Step 3 がありますが、ケアレスミスでした。 
For j = 1 To x Step 3 にしてください。 
 
で、【データがきれいに並ばない】2番目のコード Sample2 ですが、確認作業の過程で 
作業列を含めた各列の氏名の並び替えが、必ずしも、同じ並びにならないことを発見しました。 
たとえば、山田、田中があったとき、ある列は山田が上、ある列は田中が上になる現象です。 
 
2ヶ所あるソートのパラメータに、以下のように SortMethod パラメータを追加してください。 
 
      .Columns(k).Resize(, 3).Sort Key1:=.Columns(k), Order1:=xlAscending, _ 
        SortMethod:=xlStroke, Header:=xlYes 
 
    '作業列2を名前順に並び替え 
    .Columns(wkCol2).Sort Key1:=.Columns(wkCol2), Order1:=xlAscending, _ 
        SortMethod:=xlStroke, Header:=xlYes 
 
じれで、おそらく【きれいに並ぶ】のではと期待しています。 
 
さて、ご質問の件、少し整理してみます。 
少しお待ちください。 
 
 | 
     
    
   |