一行毎に行挿入・一列毎に列挿入2021.04.06
選択セル範囲を対象に一行毎、あるいは一列毎に、行・列をまとめて挿入するマクロです。
下図は、行挿入のマクロ実行例です。
マクロ実行後に「元に戻す」機能は使用できません。
事前にブックを保存しておくことをお薦めします。
【お薦め】マクロ・プロシージャを管理する無料のツール!
Excelマクロ管理ツール
Excelマクロ管理ツール
サンプルコード2021.04.06
'セル範囲のセルアドレスを取得しまとめて行(列)を挿入します Sub Selection_Insert_Rows() '選択セル範囲 1行毎に行を追加する If Not TypeName(Selection) = "Range" Then Exit Sub Dim i As Long Dim strAds As String With Intersect(Selection, ActiveSheet.UsedRange) For i = .Rows.Count To 1 Step -1 strAds = strAds & .Cells(i, 1).Offset(1).Address(False, False) & "," If 200 < Len(strAds) Then Range(Left$(strAds, Len(strAds) - 1)).EntireRow.Insert strAds = "" End If Next End With If 0 < Len(strAds) Then Range(Left$(strAds, Len(strAds) - 1)).EntireRow.Insert End If End Sub
Sub Selection_Insert_Columns() '選択セル範囲 1列毎に列を追加する If Not TypeName(Selection) = "Range" Then Exit Sub Dim i As Long Dim strAds As String With Intersect(Selection, ActiveSheet.UsedRange) For i = .Columns.Count To 1 Step -1 strAds = strAds & .Cells(1, i).Offset(, 1).Address(False, False) & "," If 200 < Len(strAds) Then Range(Left$(strAds, Len(strAds) - 1)).EntireColumn.Insert strAds = "" End If Next End With If 0 < Len(strAds) Then Range(Left$(strAds, Len(strAds) - 1)).EntireColumn.Insert End If End Sub