• 虹色ミツバチ
  • freoカスタマイズメモ、テンプレート・プラグイン配布/officeTIPS
検索プラグイン
虹色ミツバチ

> Entry >MOS>Microsoft Office Excel>マクロ/VBA> ExcelVBAで連番を振るマクロ

【MOS】【Microsoft Office Excel】【マクロ/VBA】ExcelVBAで連番を振るマクロ

ExcelVBAで連番を振ってみます。

選択範囲内のセルに連番を振るマクロ

選択範囲内のセルに連番を振るには下記のようにしてください。

Sub insertNum1()
'=======================================
'選択範囲内のセルに連番を振るマクロ
'=======================================
ThisWorkbook.Activate
'//変数の定義
    Dim targetCell As Range  '連番を振るセルをtargetCellという変数(範囲)で定義
    Dim i As Long            '連番の初期値をiという変数(数値)で定義
    i = 1                    '連番の初期値に「1」を代入
'//選択範囲内での繰り返し処理
    For Each targetCell In Selection
    '//連番を振るセルの値を変更
        targetCell.Value = i
    '//連番の数を増やす
        i = i + 1
    Next
'//メッセージを表示して終了
    MsgBox ("A列に連番を振りました。")
End Sub

B列の最終行分A1セルから連番を振るマクロ

B列に歯抜けのないデータがある時、B列のB1セルから最終行までの数分A1セルから連番を振る方法は下記のとおりです。

Sub insertNum2()
'=======================================
'B列の最終行までA列に連番を振るマクロ
'=======================================
ThisWorkbook.Activate
'//変数の定義
    Dim targetCell As Range
    Dim maxRow, i As Long
'//B列の最終行を求めてmaxRow変数に値を代入
    If Len(ActiveSheet.Range("B1").Value) = 0 Then
        maxRow = 0
    ElseIf Len(ActiveSheet.Range("B2").Value) = 0 Then
        maxRow = 1
    Else
        maxRow = ActiveSheet.Range("B1").End(xlDown).Row
    End If
'//B列の最終行の取得結果に応じて作業を分岐
    If maxRow > 0 Then
    '//連番の初期値を設定
        i = 1
    '//選択範囲内での繰り返し処理
        For i = 1 To maxRow
        '//連番を振るセルの値を変更
            Range("A" & i).Value = i
        Next
    '//メッセージを表示して終了
        MsgBox ("A列に連番を振りました。")
    Else
    '//メッセージを表示して終了(エラー)
        MsgBox ("B列にデータがないので作業を中断します。")
    End If
End Sub

ページ移動

関連記事

ユーティリティ

Twitter

ページ上部へ