多趣味まるの日常

跡取り息子を辞めたスーパー多趣味人間の日常や便利アイテムの紹介

【エクセル】結合されてるセルが混在する列に連番を振る【マクロ】

こんにちは。まるです。

 

 

今日も備忘録です。

 

 

エクセルで結合されているセルとそうでないセルが混在している列に対して

連番を振りたいという場面が結構多くて、

 

 

毎回手動だとめんどくさいですし関数だとうまくいかなかったのでマクロ組みました

 

以下コードです。

Sub 選択範囲に結合セルと非結合セル混在で連番を振る()
    Dim selRange As Range
    Dim c As Range
    Dim idx As Long
    Dim skipRows As Long
    
    Set selRange = Application.Selection
    idx = 1
    
    Dim i As Long
    i = 1
    Do While i <= selRange.Rows.Count
        Set c = selRange.Rows(i).Cells(1)
        If c.MergeCells Then
            ' 結合セルの左上セルに連番
            c.MergeArea.Cells(1, 1).Value = idx
            skipRows = c.MergeArea.Rows.Count
            idx = idx + 1
            i = i + skipRows
        Else
            ' 非結合セルに連番
            c.Value = idx
            idx = idx + 1
            i = i + 1
        End If
    Loop
End Sub

 

 

VBA使い方
1:ExcelでAlt + F11を押してVBAエディタを開く

2:メニュー「挿入」→「標準モジュール」で新規モジュールを挿入

3:上記コードをコピーして貼り付ける

4:Excelに戻り、連番を振りたい結合セル混在の列のセルを範囲選択

5:Alt + F8を押してマクロの一覧を表示し「結合セルに連番を入力」を選択して実行

 

 

これで結合されているセルも含めて上から順に連番が付けられます。

 

 

現場変わっても使うこと多そうなので記録しておきます。

 

 

以上です。それではまた