こんにちは。まるです。
今日も備忘録です。
エクセルで結合されているセルとそうでないセルが混在している列に対して
連番を振りたいという場面が結構多くて、
毎回手動だとめんどくさいですし関数だとうまくいかなかったのでマクロ組みました
以下コードです。
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を押してマクロの一覧を表示し「結合セルに連番を入力」を選択して実行
これで結合されているセルも含めて上から順に連番が付けられます。
現場変わっても使うこと多そうなので記録しておきます。
以上です。それではまた