| 
    
     |  | ▼はってんちゅう さん: 
 >ちなみに、Do Loop系のものは、私が最初に書いたように連続して
 >使用はできないということでしょうか。
 
 Try2() の For〜Next Sampleを そのままDo〜Loopにすることはできます。
 ただ、Loopの終了値があらかじめ分かっているばあいは
 For〜Nextのほうがスマートですけど。
 
 Sub DoLoop_Sample()
 Dim j As Long
 Dim sNew As String
 Dim sOld As String
 
 'ユニット毎合計作る
 If MsgBox("ユニット別合計を作成しまぁす ☆ ", vbOKCancel) _
 = vbCancel Then
 MsgBox "中止しました"
 Exit Sub
 End If
 
 j = Cells(8, Columns.Count).End(xlToLeft).Column '8行目の最終列番号
 Do
 sNew = Cells(8, j).Value
 If sOld <> sNew Then
 sOld = sNew
 Columns(j + 2).Insert
 End If
 j = j - 2 '2列 左へ
 Loop Until j <= 2
 
 End Sub
 
 >
 >私の方法が間違っている理由がお判りでしたら、教えていただけますか。
 
 結局、i=4 で第1回目のLoopをはじめ、
 2列づつ調べていって ある列が "SY-A" で
 (i+2)列目が "SY-F" のとき i+2列目を挿入しますよね?
 そうすると、つぎの「ある列が "SY-F" で (その+2列目)が "SR-B" である」
 ような列は 1列挿入しているから、偶数列ではなく、奇数列になりますよね?
 
 このように 行挿入すると、最初の番号関係がダイナミックに変わっていくので
 単純にはいかないのです。
 
 |  |