全角英字を半角英字に変換する方法 VBAを使った全角→半角変換 | EXCELトピックス

スポンサーリンク
スポンサーリンク

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のデータを統一し、より扱いやすくすることができます。