投稿されたコードは機能しているように見えますが、新しいデータは逆の順序で配置されます
としてテスト
Sub demoAsIs()
Dim Sheet As Worksheet
Dim i As Long
Set Sheet = ActiveSheet
For i = 0 To 4
Sheet.Range("A1:B1").Insert Shift:=xlShiftDown
Sheet.Cells(1, 1) = "number " & 2 * i + 1
Sheet.Cells(1, 2) = "number " & 2 * i + 2
Next
End Sub
サンプルデータ
前:
後:
順序を逆にするには、これを試してください
Sub demo()
Dim Sheet As Worksheet
Dim i As Long
Dim rNewData As Range
Set Sheet = ActiveSheet
Set rNewData = Sheet.Range("A1:B1")
For i = 0 To 4
rNewData.Insert Shift:=xlShiftDown
' rNewData now refers to the one row down from where it was
rNewData.Cells(0, 1) = "number " & 2 * i + 1
rNewData.Cells(0, 2) = "number " & 2 * i + 2
Next
End Sub
結果:
xlDown
vsに関する注記xlShiftDown
Excel VBaは、パラメータの多くの列挙セットを提供します。各列挙には、基になる数値があります。Insert
メソッド、Shift
パラメータは列挙 XlInsertShiftDirection
型を使用します:xlShiftDown
、xlShiftToRight
。
xlShiftDown
= -4121
同じ基になる数値(などxlDown
)を持つ別のセットから列挙を提供することは機能しますが、厳密には正しくありません。
に注意してくださいInsert
Shift
パラメータはオプションです。省略した場合、Excelは範囲の形状に基づいてシフトする方向を決定します。