製品の型番データが並んでいる一覧表は、見た目が似ていても実は複数のカテゴリに分かれていることが多く、分類や並び替えが手作業になるとミスや手間が増えます。
そこで今回は、型番の頭文字や一部の文字列をもとに自動でカテゴリを振り分け、カテゴリ順に並び替えるマクロをご紹介します。
大量のデータを扱う業務でも、このマクロがあれば効率的に整理できます。
型番を分類し、カテゴリ順に並び替えるマクロ
次のコードは、A列に並んだ型番を読み取り、B列にカテゴリ名を設定し、C列で並び替える処理です。
Sub SortByCategory()
Dim i As Long
Dim lastRow As Long
Dim code As String
Dim cat As String
With ActiveSheet
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
' カテゴリ判定と入力
For i = 2 To lastRow
code = .Cells(i, 1).Value
If code Like "A*" Then
cat = "家電"
ElseIf code Like "B*" Then
cat = "文房具"
ElseIf code Like "C*" Then
cat = "家具"
Else
cat = "その他"
End If
.Cells(i, 2).Value = cat
Next i
' 並び替え(カテゴリ→型番順)
.Range("A1:B" & lastRow).Sort Key1:=.Range("B1"), Order1:=xlAscending, _
Key2:=.Range("A1"), Order2:=xlAscending, Header:=xlYes
End With
MsgBox "カテゴリ別に並び替えました", vbInformation
End Sub
処理のポイント
- A列:型番(例:A123, B999, C456など)
- B列:カテゴリ(マクロで自動入力)
- C列:なし(使用せずにソート)
このコードでは Like "A*" というパターンマッチを使って、型番の先頭1文字でカテゴリを分類しています。
条件は自由に増やすことができ、必要に応じて Left(code, 2) などでより詳細な分類も可能です。
実装するメリット
このマクロを導入することで、次のようなメリットがあります。
- 型番ごとのカテゴリ分けを自動で処理
- 一覧表をカテゴリごとに並び替えて見やすく整理
- ルールを増やすだけで多種多様な型番にも対応可能
- 並び替え基準を統一でき、作業の属人化を防げる
- 条件式や構文がシンプルなのでカスタマイズしやすい
とくに「大量の型番が混在していて目視では把握しにくい」ケースに非常に有効です。
まとめ
製品型番をカテゴリごとに整理する作業は、手作業では時間がかかり、ミスも発生しやすくなります。
- 型番ルールを条件分岐で分類
- カテゴリを列に追加して視覚的にもわかりやすく
- そのまま並び替えも実行して一覧表を整える
このようなマクロを用意しておけば、業務の効率化はもちろん、担当者が変わっても同じルールで作業できる仕組みが構築できます。
業務フローを整理する第一歩として、こうした「見える化+整列」のマクロは非常に有効です。


