現在行の内容をそのまま下に挿入するには
標準の機能でCtrl + Dキーで上の内容を下にコピーすることができます。
かなり便利な機能で私も頻繁に使っています。
ただ、この機能は選択範囲のみが有効になるため、1行まとめてコピペしたい場合には対応できていません。
また、途中の行の場合は下の内容を上書きしてしまいます。
これを標準のやり方でやるとすると、行を選択して、右クリックで「挿入」+コピペでもできるのですが、表の書式がちゃんと引き継がれなかったり、そもそもの操作が煩わしいです。
それを解消するコードを紹介します。
コード
以下のマクロは、選択セルがある行の内容をすぐ下に挿入できます。
Ctrl + Dキーと同様に複数行にも対応しています。
挿入、として動作するため既存の下のデータへの上書きは行わないため、入力済みのデータを破壊することもありません。
なお、Ctrl + Dキーと同様、下から上へのコピペには対応していません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub 現在行を下に挿入() Dim iRow Dim iRowCount Application.ScreenUpdating = False '// 現在行位置を取得 iRow = Selection.Row '// 選択行数を取得 iRowCount = Selection.rows.Count If (iRowCount = 1) Then iRowCount = 0 ElseIf (iRowCount > 1) Then iRowCount = iRowCount - 2 End If '// 選択セルの先頭行を選択 Range(iRow & ":" & iRow).Select '// 選択行をコピー Selection.Copy '// 行数分だけ選択 Range(iRow + 1 & ":" & iRow + 1 + iRowCount).Select '// 行数分貼り付け Selection.Insert Shift:=xlDown Range("A" & iRow + 1 + iRowCount).Select Application.ScreenUpdating = True End Sub |
表形式のデータを使っている方で、表の途中の行にデータを挿入するような作業をされている方は、このマクロはとても有効だと思います。