INDEX
Excelで全角英字を半角英字に変換する方法(関数・VBA)
Excelでデータを整理する際、全角英字(ABC)を半角英字(ABC)に統一したい場合があります。特に、データの形式を揃えたい場合や、外部システムと連携する際に全角・半角の違いが問題になることがあります。
本記事では、Excelの関数を使った方法と、VBAを利用した方法の両方を解説します。
関数を使って全角英字を半角英字に変換する方法
Excelには、全角英字を半角英字に変換する専用の関数はありません。しかし、PHONETIC関数とSUBSTITUTE関数を組み合わせることで、一部のケースでは対応可能です。
ASC関数(Googleスプレッドシート限定)
Excelにはありませんが、GoogleスプレッドシートではASC関数を使うことで簡単に全角英字を半角に変換できます。
Excelで関数を使う方法(ユーザー定義関数)
Excelの標準関数では完全に対応できないため、VBAでカスタム関数(ユーザー定義関数)を作成し、それをワークシート関数として使用する方法を紹介します。
VBAを使って全角英字を半角英字に変換する方法
VBAを使えば、Excel上で全角英字を半角英字に変換することが可能です。
セル範囲を指定して変換するVBAコード
Sub ConvertSelectedToHalfWidth()
Dim cell As Range
' 選択したセル範囲を処理
For Each cell In Selection
If Not IsEmpty(cell.Value) Then
cell.Value = StrConv(cell.Value, vbNarrow)
End If
Next cell
MsgBox "選択した範囲の全角英字を半角に変換しました。", vbInformation
End Sub
VBAのコード解説
Selection→ ユーザーがマウスで選択した範囲を取得StrConv(cell.Value, vbNarrow)→ 全角英字を半角英字に変換IsEmpty(cell.Value)→ 空白セルは処理しない
ユーザー定義関数(UDF)として利用するVBA
関数として利用したい場合は、以下のコードをVBAに登録します。
Function ToHalfWidth(str As String) As String
ToHalfWidth = StrConv(str, vbNarrow)
End Function
使用例
Excelのセルに次の数式を入力すると、全角英字が半角英字に変換されます。
=ToHalfWidth(A1)
実際の変換例
| A | B | |
|---|---|---|
| 1 | ABC | =ToHalfWidth(A1) |
| 2 | DEF | =ToHalfWidth(A2) |
| 3 | GHI | =ToHalfWidth(A3) |
まとめ
Excelで全角英字を半角英字に変換するには、以下の方法が有効です。
- 関数として使用する場合 → VBAのユーザー定義関数(
=ToHalfWidth(A1)) - 一括変換したい場合 → VBAマクロ(
ConvertToHalfWidth())を実行 - Googleスプレッドシートなら →
=ASC(A1)を使う
これらの方法を活用すれば、Excelのデータを統一し、より扱いやすくすることができます。