Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » VBAで下のセルと同じ値を入力する

VBAで下のセルと同じ値を入力する

対象:Excel2010, Excel2013, Windows版Excel2016

「vba セルに下のセルのデータを入力」
という検索キーワードでのアクセスに気づきました。

上のセルをコピーするなら、ショートカットキー[Ctrl]+[D]がありますけれど、逆方向はありません。

[スポンサードリンク]

これをマクロで行おうということでしょうか。

「下のセルのデータを入力」ということなので、1つ下のセルと同じ値を入力するコードをご紹介しておきます。

下のセルと同じ値をアクティブセルに入力するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなセルに1つ下のセルの値がコピーされます。
Sub 下のセルの値を複製する()
 ActiveCell.Value = ActiveCell.Offset(1, 0).Value
End Sub
Withステートメントを使うと以下のとおりです。
Sub 下のセルの値を複製する_With()
 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
横に長くなり読み辛いですね。
Withステートメントを使うと以下のとおりです。
Sub 下のセルの値を複製する_Cellsを使って_with()
 With ActiveCell
  .Value = Cells(.Row + 1, .Column).Value
 End With
End Sub

横方向に短くはなりましたけれど、初心者の方には、難易度の高そうなコードです。

Range.Offsetプロパティを早く覚えてしまうほうが、良さそうに感じます。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » VBAで下のセルと同じ値を入力する

「Offsetプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.