一括変換ツールのねらい:大量データを「一気に整形・変換」する“作業自動化の核”
一括変換ツールは、実務で最も“時短効果が高い”テンプレのひとつです。
現場では、こんな作業が毎日のように発生します。
- 全角 → 半角にしたい
- ひらがな → カタカナにしたい
- 文字列の前後スペースを削除したい
- 電話番号からハイフンを除去したい
- 日付の書式を統一したい
- 特定の文字を置換したい(例:㈱ → 株式会社)
これを手作業でやると、地味に時間がかかり、ミスも出ます。
一括変換ツールは、こうした「大量のセルに同じ変換をかける作業」を、
ボタン1つで一気に処理できる“変換エンジン”としてテンプレ化するものです。
設計の基本:変換処理を「関数化」し、範囲に一括適用する
一括変換の考え方
一括変換ツールは、次の2段構えで作ると強力になります。
- 変換ロジック(1セルをどう変換するか)を関数として作る
- その関数を、選択範囲やシート全体に適用する処理を作る
この構造にしておくと、
- 全角→半角
- 文字置換
- 正規化
- 数値変換
- 日付変換
など、どんな変換でも「関数を差し替えるだけ」で使い回せます。
変換ロジックのテンプレ:1セルを変換する関数
例:全角 → 半角 + 前後スペース削除
' ModConvert_Functions.bas
Option Explicit
Public Function Convert_NormalizeBasic(ByVal s As String) As String
Dim t As String
t = s
t = StrConv(t, vbNarrow) ' 全角 → 半角
t = Trim$(t) ' 前後スペース削除
t = Replace(t, " ", "") ' 全角スペース除去
Convert_NormalizeBasic = t
End Function
VB例:会社名の表記ゆれを統一(㈱ → 株式会社)
Public Function Convert_CompanyName(ByVal s As String) As String
Dim t As String
t = s
t = Replace(t, "㈱", "株式会社")
t = Replace(t, "(株)", "株式会社")
t = Replace(t, "(株)", "株式会社")
t = Replace(t, "㈲", "有限会社")
t = Replace(t, "(有)", "有限会社")
t = Replace(t, "(有)", "有限会社")
Convert_CompanyName = t
End Function
VB例:電話番号のハイフン除去
Public Function Convert_TelNumber(ByVal s As String) As String
Dim t As String
t = s
t = Replace(t, "-", "")
t = Replace(t, "ー", "")
Convert_TelNumber = t
End Function
VBここでの重要ポイントは、
変換ロジックは「1セルだけ」を対象にする
ということです。
この“1セル変換関数”を積み上げていくことで、
どんな変換でも「組み合わせて使える」ようになります。
一括変換エンジン:選択範囲に変換関数を適用する
選択範囲を一括変換する汎用テンプレ
' ModConvert_Apply.bas
Option Explicit
Public Sub ApplyConvert_ToSelection(ByVal convertFunc As String)
Dim rng As Range
On Error Resume Next
Set rng = Selection
On Error GoTo 0
If rng Is Nothing Then
MsgBox "変換したい範囲を選択してください。", vbInformation
Exit Sub
End If
Dim cell As Range
For Each cell In rng
If Not IsEmpty(cell.Value) Then
cell.Value = Application.Run(convertFunc, CStr(cell.Value))
End If
Next
MsgBox "一括変換が完了しました。", vbInformation
End Sub
VBここでの重要ポイントは、
convertFuncに「関数名」を文字列で渡すApplication.Runでその関数を実行する
という仕組みです。
これにより、
Call ApplyConvert_ToSelection("Convert_NormalizeBasic")
Call ApplyConvert_ToSelection("Convert_CompanyName")
Call ApplyConvert_ToSelection("Convert_TelNumber")
VBのように、
どの変換関数でも同じエンジンで一括変換できる
という強力な構造になります。
例題:会社名の表記ゆれを一括で統一する
実行用のラッパー Sub
Public Sub Run_Convert_CompanyName()
Call ApplyConvert_ToSelection("Convert_CompanyName")
End Sub
VB使い方は簡単です。
- 会社名の列を選択する
- ボタン(Run_Convert_CompanyName)を押す
- ㈱ → 株式会社、(有) → 有限会社 などが一括で変換される
これだけで、名寄せ前の前処理が一気に楽になります。
例題:全角 → 半角 + スペース除去を一括で行う
Public Sub Run_Convert_NormalizeBasic()
Call ApplyConvert_ToSelection("Convert_NormalizeBasic")
End Sub
VBこれを実行すると、
- 全角英数字 → 半角
- 全角スペース → 削除
- 前後スペース → 削除
が一括で行われます。
顧客名、住所、メールアドレスなど、
「まずは正規化したい」列に対して非常に有効です。
例題:電話番号のハイフン除去を一括で行う
Public Sub Run_Convert_TelNumber()
Call ApplyConvert_ToSelection("Convert_TelNumber")
End Sub
VB電話番号の列を選択して実行すると、
090-1234-5678 → 09012345678
03-1234-5678 → 0312345678
のように、すべての行が一括で変換されます。
応用:複数の変換を「まとめて」かける複合変換
1セルに対して複数の変換を連続でかける
例えば、
- 全角 → 半角
- 株式会社表記統一
- スペース除去
をまとめてやりたい場合は、
複合変換関数を作ります。
Public Function Convert_CompanyFullNormalize(ByVal s As String) As String
Dim t As String
t = Convert_NormalizeBasic(s)
t = Convert_CompanyName(t)
Convert_CompanyFullNormalize = t
End Function
VBこれを一括変換エンジンに渡せばOKです。
Public Sub Run_Convert_CompanyFullNormalize()
Call ApplyConvert_ToSelection("Convert_CompanyFullNormalize")
End Sub
VBこれで、
「会社名の完全正規化」
がボタン1つで完了します。
応用:シート全体・特定列だけを一括変換する
シート全体に変換をかける版
Public Sub ApplyConvert_ToSheet(ByVal ws As Worksheet, ByVal convertFunc As String)
Dim rng As Range
Set rng = ws.UsedRange
Dim cell As Range
For Each cell In rng
If Not IsEmpty(cell.Value) Then
cell.Value = Application.Run(convertFunc, CStr(cell.Value))
End If
Next
End Sub
VB特定列だけに変換をかける版
Public Sub ApplyConvert_ToColumn(ByVal ws As Worksheet, ByVal col As Long, ByVal convertFunc As String)
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, col).End(xlUp).Row
Dim r As Long
For r = 2 To lastRow
If Not IsEmpty(ws.Cells(r, col).Value) Then
ws.Cells(r, col).Value = Application.Run(convertFunc, CStr(ws.Cells(r, col).Value))
End If
Next
End Sub
VBこれで、
- 会社名列だけ正規化
- 電話番号列だけハイフン除去
- メールアドレス列だけ小文字化
など、柔軟な運用ができます。
重要ポイントの深掘り:一括変換ツールを“実務で使える”形にするコツ
変換は「破壊的」なので、必ずバックアップを取る
一括変換は、元の値を上書きします。
Undo(元に戻す)が効かないケースもあるため、
変換前に必ずバックアップを取る
という運用ルールが必須です。
変換関数は「小さく」「組み合わせ可能」にする
1つの関数に全部詰め込むと、
後から修正しづらくなります。
- 全角→半角
- スペース除去
- 株式会社表記統一
など、1つの目的につき1関数にしておくと、
組み合わせて使える“再利用部品”になります。
変換対象の列を明確にする
実務では、
- 会社名は正規化したい
- 住所は変換したくない
- メールアドレスは小文字化したい
など、列ごとにルールが違います。
「どの列にどの変換をかけるか」を
シートに設定表として持つ
という運用もよくあります。
まとめ:一括変換ツールは「変換関数 × 適用エンジン」の組み合わせで無限に拡張できる
一括変換ツールの本質は、
- 1セルを変換する関数を作る
- その関数を範囲に適用するエンジンを作る
- 必要に応じて複合変換を作る
という“部品化”です。
この型さえ作っておけば、
- 名寄せ前の正規化
- マスタ更新前の前処理
- CSV取り込み後の整形
- 住所・会社名・電話番号の統一
- 全角・半角の統一
など、あらゆる「データ整形作業」がボタン1つで終わるようになります。
