目次

目的

  • 行方向、列方向に連番を入力したい。
  • 途中の行、列からスタートする連番を入力したい。
  • 100 列目から 5 個の連番を入力したい。
  • ワークシート関数の row と column を使用する。

テストしてみました。

セルに row と column の数式を入力するマクロなので、データの並べ替えを行っても連番は変わらないので用途によっては不便かもしれません。

数式を入力する事で再計算が増えるので大量のデータには向いていないかもしれません。

目次まで戻る

マクロの一例

下記のマクロを作成してみました。 A1:A5 の範囲に連番を入力するマクロになっています。ワークシート関数の row を使用しています。

Sub ワークシート関数のrow関数で連番入力()
Range("A1:A5").Formula = "=row()" 'row 関数で行番号を取得している
End Sub

上記マクロを、下記の白紙のワークシートで実行してみます。

マクロ実行前の白紙のワークシートです。
マクロ実行前の白紙のワークシートです。

マクロの実行結果は以下のようになりました。上記マクロの「.Formula」の記述を省いても同じ結果になるようです。

連番が入力されました。
連番が入力されました。

A1:A5 の範囲に「=row()」の数式が入力されています。

=row() の数式が入力されている。
=row() の数式が入力されている。

次は、 A6 から 1 がスタートする連番を入力してみます。 row 関数のパラメーターに A1 を指定しているので A1 の行番号 1 が取得されるようです。

上記マクロに続けて実行してみます。

Sub A6から連番スタート()
Range("A6:A10").Formula = "=row(A1)" ' 1 からスタートします
End Sub

マクロの実行結果は以下のようになりました。

A6 から 1 がスタートしています。
A6 から 1 がスタートしています。

行番号マイナス 5 としても同じ結果になるようです。

Sub 行番号マイナス5()
Range("A6:A10").Formula = "=row()-5"
End Sub

目次まで戻る

列方向の場合

column 関数で列方向の連番を入力してみます。まずは、ワークシートの内容を消去してリセットしておきます。下記マクロを実行してみます。

Sub セル内容消去()
Cells.Clear '全セル内容消去
End Sub

マクロの実行結果は以下のようになりました。

セル内容が消去されました。
セル内容が消去されました。

列方向に連番を入力する下記マクロを作成してみました。

Sub ワークシート関数のcolumn関数で連番入力()
Range("A1:E1").Formula = "=column()" 'column 関数の数式で列番号を取得している
Range("A1:E1").Columns.AutoFit '列幅自動調整
End Sub

マクロの実行結果は以下のようになりました。

列方向に連番が入力されている。
列方向に連番が入力されている。

A1:E1 の範囲に「=column() 」の数式が入力されています。

=column() が入力されている。
=column() が入力されている。

行方向の時と同じく、連番の開始位置をオフセットしてみます。 A1 セルの列番号 1 からスタートします。

Sub F1から連番スタート()
Range("F1:J1").Formula = "=column(A1)" ' 1 からスタート
Range("F1:J1").Columns.AutoFit
End Sub

マクロの実行結果は以下のようになりました。

連番の開始位置がオフセットされている。
連番の開始位置がオフセットされている。

目次まで戻る

あとがき

私の場合、 100 列目から 5 つの連番と聞くと、 105 列目までだと思ってしまいます。

Resize プロパティを使用すると、列数でデータの個数を表せるので、便利かもしれません。

Sub 一行目の100列目から5つの連番()
Cells(1, 100).Resize(, 5).Formula = "=column(a1)" '5 列分
Debug.Print Cells(1, 100).Resize(, 5).Address '$CV$1:$CZ$1
Debug.Print Range("cv1").Column '100
Debug.Print Range("cz1").Column '104
Cells(1, 100).Resize(, 5).Columns.AutoFit '列幅自動調整
End Sub
100 列目から 5 個のデータが入力されている。
100 列目から 5 個のデータが入力されている。

テスト環境

  • Windows 10(64 ビット)
  • Microsoft Office Excel 2003

以上、閲覧ありがとうございました。

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿