エクセルで全角を半角に変換したいときはないでしょうか。
けど、そんな中で悩むことは、
・Excelのセルにある文字で英数字のみ全角から半角に変換したいする方法がわからない
ですよね。
今回はそんなお悩みを解決する
・英数字のみ全角から半角に変換する方法
についてまとめます!
【お急ぎの方へ】目的の場所へすぐに移動できます
エクセルで全角を半角に変換する方法
基本となるエクセルで全角を半角に変換する方法について説明します。
もくじ
サンプルデータを用意
Excelのシートに以下のような全角文字列のデータをA1セルから入力しましょう。
| 全角文字列 | 変換後 |
| ABCDE | |
| 12345 | |
| 0.12345 | |
| @+*?<>_ | |
| カキクケコ | |
| カキクケコABC123 |
このデータには、全角英数字と全角記号、全角カタカナが含まれています。
ASC関数の使用
全角文字列を半角に変換するには、ASC関数を使用します。
| 関数名 | ASC(アスク)関数 |
| 説明 | 全角(2バイト)文字を、半角(1バイト)文字に変換します。 ※文字列に全角文字が含まれない場合は変換されません。 |
| 書式 | =ASC(文字列) |
| 引数(文字列) | 【必須】 変換したい文字列、または対象のセル参照を指定します。 |
| 使用例 | =ASC("EXCEL") → EXCEL と表示されます。 |
参考:https://support.microsoft.com/ja-jp/office/asc-%E9%96%A2%E6%95%B0-0b6abf1c-c663-4004-a964-ebc00b723266
数式を入力
B2セルに以下の数式を入れましょう。
=ASC(A2)
半角に変換された値が表示されましたね!

この数式を7行目までドラッグしましょう。
はい、すべての文字列が半角に変換されましたね!

エクセルで全角を半角に一括で変換する方法
次は一括で全角を半角に変換する方法について説明します。
同じくASC関数を使いますが、今回は一つのセルではなく、範囲指定をして、
その範囲にある全角文字列を半角に一括変換をしていきます。
数式を入力
B2セルに以下の数式を入れましょう。
=ASC(A2:A7)
はい、一瞬で複数の全角文字列を半角に変換できましたね!

英数字のみ全角から半角に変換する方法
英数字のみ全角を半角に変換する方法について説明をします。
これまでASC関数を使い全角文字列を半角に変換してきましたが、ASC関数は英数字とそれ以外の全角文字混合でも強制的に半角文字に変換してしまうため、
例えば英数字だけ半角に変換するということはできません。

そのため、英数字のみを半角に変換するためには、VBAを使用するか、他の関数と組み合わせて実現する必要があります。
今回はVBAの方で英数字のみ全角から半角に変換するオリジナル関数を実装し、
シート内でオリジナル関数を使用して英数字のみ全角から半角に変換していきたいと思います。
VBAでオリジナル関数を実装する
VBAでオリジナル関数を実装していきましょう。
サンプルコードは以下の通りです。
Function hankaku(str As String) As String
Dim i As Integer
For i = 1 To Len(str)
If AscW(Mid(str, i, 1)) >= &HFF10 And AscW(Mid(str, i, 1)) <= &HFF19 Then
hankaku = hankaku & Chr(AscW(Mid(str, i, 1)) - &HFEE0)
ElseIf AscW(Mid(str, i, 1)) >= &HFF21 And AscW(Mid(str, i, 1)) <= &HFF3A Then
hankaku = hankaku & Chr(AscW(Mid(str, i, 1)) - &HFEE0)
ElseIf AscW(Mid(str, i, 1)) >= &HFF41 And AscW(Mid(str, i, 1)) <= &HFF5A Then
hankaku = hankaku & Chr(AscW(Mid(str, i, 1)) - &HFEE0)
Else
hankaku = hankaku & Mid(str, i, 1)
End If
Next i
End Function
VBAの実装
VBAの実装手順は以下の通りです。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。
数式を入力
B2セルに以下の数式を入れましょう。
=hankaku(A2)
この数式を7行目までドラッグしましょう。
はい、全角の記号やカタカナを除いた英数字のみが半角に変換されましたね!

VBAの説明
VBAコードの各部分について詳しく説明します。
Function hankaku(str As String) As Stringhankakuという名前の関数を宣言しています。
この関数は、String型の引数strを取り、変換後のString型の値を返します。
For i = 1 To Len(str)このループは、1から文字列strの長さ(Len(str)で取得)まで、文字列内の各文字に対して処理を行います。Len関数は文字列の文字数を返します。
If AscW(Mid(str, i, 1)) >= &HFF10 And AscW(Mid(str, i, 1)) <= &HFF19 ThenMid(str, i, 1)は文字列strからi番目の文字を取り出します。
AscW関数はその文字のUnicodeコードポイントを返します。
この行では、取り出した文字が全角の数字(0から9)であるかを判定しています。
hankaku = hankaku & Chr(AscW(Mid(str, i, 1)) - &HFEE0)条件に合致する場合、全角文字のコードポイントから&HFEE0を引くことで、対応する半角文字のコードポイントを得ます。
Chr関数はこのコードポイントに対応する文字を返し、その文字を結果の文字列に追加します。
ElseIf AscW(Mid(str, i, 1)) >= &HFF21 And AscW(Mid(str, i, 1)) <= &HFF3A Then全角の大文字英字(AからZ)を判定しています。
ElseIf AscW(Mid(str, i, 1)) >= &HFF41 And AscW(Mid(str, i, 1)) <= &HFF5A Then全角の小文字英字(aからz)を判定しています。
それぞれの判定に合致する場合も、対応する半角文字に変換するためにコードポイントを調整しています。
Else
hankaku = hankaku & Mid(str, i, 1)
End If英数字以外の文字(全角や半角のカタカナ、漢字、ひらがななど)は変換せずにそのまま結果の文字列に追加されます。
さいごに
いかがでしょうか。
今回はエクセルで文字や数値をまとめて綺麗に整えるための以下の方法について解説しました。
- ASC関数:数式を使って、全角の英数字・カタカナを一括で半角に変換する基本ワザ
- VBAマクロ:カタカナや記号は全角のまま、英数字だけをピンポイントで半角にする応用ワザ
実務のデータ入力やシステムへのインポート前など、状況に応じて一番手間の少ない方法を使い分けてみてください。効率が劇的にアップするはずです。
エクセルで半角から全角に一括変換する方法!カタカナのみも可!
また、他にも実務で今すぐ役立つExcelの時短テクニックを多数ご紹介していますので、よろしければサイト内の他の記事もご参照いただければと思います。














コメントを残す