こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelセル範囲内の値のみ1行空欄にする

下記コードでは1行づつ挿入により下段までずれてしまいます。
Excelセル範囲内の値のみ1行づつ開けるにはどのようにすれば良いでしょうか。
どなたか解る方よろしくお願いします。

Sub 空欄1行()
Dim i As Long
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
For i = .Rows.Count To 2 Step -1
Intersect(.Cells(i, 1).EntireRow, .Columns).Insert xlDown
Next
End With
End Sub

投稿日時 - 2013-03-30 18:18:42

QNo.8019154

すぐに回答ほしいです

質問者が選んだベストアンサー

選択範囲内のセルが空白で無い場合に行を挿入する事で良いでしょうか。

選択範囲の開始列:Selection(1).Column
選択範囲の最終列:Selection(Selection.Count).Column
If Cells(i, j) <> ""でセルが空白で無い時に質問に記載されている行を挿入するマクロを実行させています。

Sub 空欄1行()
Dim i, j As Long


If TypeName(Selection) <> "Range" Then Exit Sub

With Selection

For i = .Rows.Count To 2 Step -1

For j = Selection(1).Column To Selection(Selection.Count).Column

If Cells(i, j) <> "" Then
Intersect(.Cells(i, 1).EntireRow, .Columns).Insert xlDown
Exit For
End If

Next

Next

End With


End Sub

投稿日時 - 2013-03-30 22:59:05

お礼

有難うございます。1行づつあきました。挿入なので下段に枠線がずれてしまいます。何かよい方法はありますか。

投稿日時 - 2013-03-31 00:11:30

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

選択されたセルの列で1行ずつからの行を挿入し、罫線はものままにしたいのでしたら次のようにしてはどうでしょう。

Sub 空欄1行()
Dim i, n, m As Long
n = ActiveCell.End(xlDown).Row
m = ActiveCell.End(xlToRight).Column
For i = n To 2 Step -1
Range(Cells(i, 1), Cells(i, m)).Insert xlDown
Next
Range(Cells(n + 1, 1), Cells(2 * n, m)).Borders.LineStyle = xlLineStyleNone
End Sub

投稿日時 - 2013-03-31 14:31:49

お礼

有難うございます。

投稿日時 - 2013-04-02 21:46:34

あなたにオススメの質問