「アクティブセルの1つ下のセルに、文字列「abc」を表示する マクロ」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。
アクティブなセルの1つ下のセルに「abc」という文字列を表示するには、VBAでどのようなコードを書けばいいのか、サンプルマクロを探していた方による検索キーワードです。
変数とCellsを使ってアクティブセルの一つ下のセルにデータを入力するサンプルマクロ
まず理解していただきたいのは、行番頭と列番号を変数に格納しておいて、Cellsプロパティを利用するプロシージャです。
Dim row_num As Long
Dim col_num As Long
row_num = ActiveCell.Row
col_num = ActiveCell.Column
End Sub
ショートカットキー[F8]でステップ実行を行って、
row_num = ActiveCell.Row
col_num = ActiveCell.Column
の2行を実行したあとに、変数・row_numとcol_numにどのような数値が入力されているかを、メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して確認してください。
アクティブセルの行番号と列番号がそれぞれ格納されているはずです。
変数・row_numに格納されているアクティブセルの行番号に、「+ 1」した数値をCellsプロパティの第1引数に指定すると、
Cells(row_num + 1, col_num).Value =
アクティブセルの一つ下のセルを表すRangeオブジェクトを取得できるという考え方を、まず理解してください。
WithとCellsを使ってアクティブセルの一つ下のセルにデータを入力するサンプルマクロ
同じ考え方で、変数を使わず、WithキーワードとCellsを使った以下のような書き方もできます。With ActiveCell
Cells(.Row + 1, .Column).Value = "abc"
End With
End Sub
先のマクロより難易度は上がりますが、やっていることは同じです。
Offsetを使ってアクティブセルの一つ下のセルにデータを入力するサンプルマクロ
Cellsプロパティの引数に、足し算・引き算を行った数値を指定するのと考え方は同じですが、RangeオブジェクトのOffsetプロパティを使うと、以下のようなすっきりしたコードで済みます。ActiveCell.Offset(1, 0).Value = "abc"
End Sub
Range.Offsetプロパティをご存じなかった方は、「ActiveCell.Offset(1, 0).Select」というコードをOffsetの引数を変更しながら、何度か実行してみてください。
- Newer:セルを選択するGASスクリプト
- Older:アウトラインモードで表示レベルを変更するショートカットキー
Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » VBAでアクティブセルの一つ下のセルにデータを入力する