締切済み

エクセル 行の挿入

  • 困ってます
  • 質問No.5371772
  • 閲覧数457
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 100% (2/2)

エクセルの行の挿入方法を教えてください。
http://okwave.jp/qa1095365.html?rel=innerHtml&p=bottom&l=1
上記の質問のマクロをコピーし、少し加工して使用させていただいてます。

Sub Macro1()

Dim lngCnt As Long '処理行のカウント
Dim intCnt As Integer '挿入行数セット

''初期行セット
lngCnt = 5

'' 処理行のD列に文字がなくなるまで繰り返す
Do Until Cells(lngCnt, 4) = vbNullString

''挿入行数セット
intCnt = Cells(lngCnt, 4) + 1

''挿入行分繰り返す
Do Until intCnt <= 0

''次の行に進む
lngCnt = lngCnt + 1

''行の選択
Rows(lngCnt & ":" & lngCnt).Select

''行の追加
Selection.Insert Shift:=xlDown

''1行追加したので挿入行数から1引く
intCnt = intCnt - 1
Loop

''処理行数カウントアップ
lngCnt = lngCnt + 1

''1シートの最大行数を超えたか?
If lngCnt > 65536 Then
MsgBox "1シートの最大行数を超えました"
Exit Do
End If
Loop

''A1を選択
Range("A1").Select
End Sub

このマクロでは
'' 処理行のD列に文字がなくなるまで繰り返す
Do Until Cells(lngCnt, 4) = vbNullString
なので、一行抜けてしまうとマクロが止まってしまいます。
これをD行に数字が入っている所はすべて増えるように?止まらないようにしたいのです。
どうすればいいでしょう?
宜しくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.2

ベストアンサー率 71% (339/472)

 
質問のような場合は、最終行から上へ処理した方がいいでしょう。
て、Doではなく、For Nextのサンプルをひとつ。

D5~D列最終行までを対象にし、
未入力のセルは処理をジャンプする
また、D列の入力値と同じ行数を挿入する
(例えば、セルの値が、"3"だったら、3行挿入)

'-----------------------------------------
Sub test()
 Dim R As Long
 Dim StartRow As Long
 Dim LastRow As Long

 StartRow = 5
 LastRow = Cells(Rows.Count, "D").End(xlUp).Row

 For R = LastRow To StartRow Step -1
  If Cells(R, "D").Value > 0 Then
    With Cells(R, "D").Offset(1).Resize(Cells(R, "D").Value, 1)
      .EntireRow.Insert xlDown
    End With
  End If
 Next R

End Sub
'-------------------------------------------------

なお、シート最終行(65536)のチェックはしてないので
必要なら自分で考えてみること。
以上です。
お礼コメント
sumomo61

お礼率 100% (2/2)

ありがとうございました。
testしたらできました。
マクロをもう少し勉強してみます。
投稿日時 - 2009-10-19 13:45:54
OKWAVE 20th Be MORE ありがとうをカタチに
  • 回答No.1

ベストアンサー率 41% (982/2351)

空白セルの場合の処理方法が判らないので、具体的なコードは書けませんが

Range("D65536").End(xlUp).Row
で、D列で、データーが入っている最後の行が判りますので、これで得られた行まで、処理を続ける様にすれば良いのでは?

また、今回の様に、処理によって行数が増えたり減ったりする場合は、後ろ(下)から処理していくと、コードが簡単になりますよ
お礼コメント
sumomo61

お礼率 100% (2/2)

ありがとうございました。
投稿日時 - 2009-10-19 13:48:25
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ