トップ > 汎用コード > 一行毎に行挿入・一列毎に列挿入

一行毎に行挿入・一列毎に列挿入2021.04.06

選択セル範囲を対象に一行毎、あるいは一列毎に、行・列をまとめて挿入するマクロです。
下図は、行挿入のマクロ実行例です。


マクロ実行後に「元に戻す」機能は使用できません。
事前にブックを保存しておくことをお薦めします。


【お薦め】マクロ・プロシージャを管理する無料のツール!
 Excelマクロ管理ツール

サンプルコード2021.04.06

コードの貼り付け場所   VBAコードをカラーで印刷・Web掲載するためのツールはこちら

'セル範囲のセルアドレスを取得しまとめて行(列)を挿入します

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



ページトップへ戻る

Excel 汎用コード

Copyright(C) 2009- 坂江 保 All Rights Reserved.