対象:Excel2010, Excel2013, Windows版Excel2016
「vba セルに下のセルのデータを入力」
という検索キーワードでのアクセスに気づきました。
上のセルをコピーするなら、ショートカットキー[Ctrl]+[D]がありますけれど、逆方向はありません。
[スポンサードリンク]
これをマクロで行おうということでしょうか。
「下のセルのデータを入力」ということなので、1つ下のセルと同じ値を入力するコードをご紹介しておきます。
下のセルと同じ値をアクティブセルに入力するサンプルマクロ
以下のSubプロシージャを実行すると、アクティブなセルに1つ下のセルの値がコピーされます。
Sub 下のセルの値を複製する()
ActiveCell.Value = ActiveCell.Offset(1, 0).Value
End Sub
Withステートメントを使うと以下のとおりです。ActiveCell.Value = ActiveCell.Offset(1, 0).Value
End Sub
Sub 下のセルの値を複製する_With()
With ActiveCell
.Value = .Offset(1, 0).Value
End With
End Sub
With ActiveCell
.Value = .Offset(1, 0).Value
End With
End Sub
Range.Offsetプロパティを使って、アクティブセルの1つ下のセルを表すRangeオブジェクトを取得して、そのValueをアクティブセルのValueに代入しています。
Cellsプロパティを使って下のセルと同じ値をアクティブセルに入力するサンプルマクロ
Range.Offsetプロパティを使わない場合は、以下のようなプロシージャでしょうか。
Sub 下のセルの値を複製する_Cellsを使って()
ActiveCell.Value = Cells(ActiveCell.Row + 1, ActiveCell.Column).Value
End Sub
横に長くなり読み辛いですね。ActiveCell.Value = Cells(ActiveCell.Row + 1, ActiveCell.Column).Value
End Sub
Withステートメントを使うと以下のとおりです。
Sub 下のセルの値を複製する_Cellsを使って_with()
With ActiveCell
.Value = Cells(.Row + 1, .Column).Value
End With
End Sub
With ActiveCell
.Value = Cells(.Row + 1, .Column).Value
End With
End Sub
横方向に短くはなりましたけれど、初心者の方には、難易度の高そうなコードです。
Range.Offsetプロパティを早く覚えてしまうほうが、良さそうに感じます。
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » VBAで下のセルと同じ値を入力する