| 
    
     |  | ▼mori さん: 
 >前回は「合計」と記入されているセルがある行の下に1行挿入したいと
 >言うことでした。
 >この逆(「合計」と記入されているセルがある行の「上」に1行挿入
 >したい)と言うのは可能でしょうか?
 
 これまでのコードは 転記処理のFor〜Nextループに入る前に
 書き込み先の行番号(lngPresentRowIndex)に 4 を入れておいて、
 1行書き込み処理が終わったら、「次に書き込む行番号」を指定するために
 lngPresentRowIndex に1を加えていました。
 その後、値が「合計」だったときだけ、「次の書き込み先行番号」に 2 を
 加える処理を追加して、結果として1行空白行を挿入した転記処理を実現す
 るように改良しました。
 
 >  lngPresentRowIndex = 4
 >  For lngRow = 31 To lngMaxRow
 >
 >    '転記処理
 >
 >    If 値が「合計」ならば
 lngPresentRowIndex = lngPresentRowIndex + 2 '次の転記行番号
 Else
 lngPresentRowIndex = lngPresentRowIndex + 1 '次の転記行番号
 End If
 >  Next
 
 こんどはこれを
 '最初の書き込み行番号 - 1 を初期値とする
 ◆  lngPresentRowIndex = 4 - 1
 
 としておいて、
 ◆ For〜Loopの先頭で 行番号を 現在の値に +1 する
 ◆  ただし、値が「合計のときは」さらに +1 した行に、転記する
 
 という風にすればよいと思います。
 
 
 'Dim InsertLine As Long (不要)
 lngPresentRowIndex = 4 - 1 '◆変更(本来の開始行-1)
 For lngRow = 31 To lngMaxRow
 
 (途中省略)
 
 '書き込み行インデックスを加算
 lngPresentRowIndex = lngPresentRowIndex + 1 '◆ここへ移動
 
 If strTrimedTekiyo = "合計" Then
 lngPresentRowIndex = lngPresentRowIndex + 1 '◆この行追加
 .Cells(lngPresentRowIndex, 2).Value = strTekiyo
 .Cells(lngPresentRowIndex, 6).Value = strKingaku
 
 ElseIf strTrimedTekiyo = "値引" Then
 .Cells(lngPresentRowIndex, 2).Value = strTekiyo
 .Cells(lngPresentRowIndex, 6).Value = strKingaku
 
 Else
 .Cells(lngPresentRowIndex, 2).Value = strTekiyo
 .Cells(lngPresentRowIndex, 3).Value = strSuryo
 .Cells(lngPresentRowIndex, 4).Value = strTani
 End If
 
 Next
 
 かんちがいなら、ゴメン。
 
 |  |