カタカナは全角で英数字は半角に変換【エクセル関数・マクロ】

※このページにはプロモーションが含まれています

スポンサーリンク

全角を半角、半角を全角に変換する関数

JIS関数とASC関数はとても便利な関数なのでよく使用していますが、いまだにどっちがどっちなのか覚えられません。

半角を全角にする関数

=JIS(参照セル)

半角を全角に変換
使用するフォントによっては全角・半角が視覚的に区別できない場合があります

全角を半角にする関数

=ASC(参照セル)

全角を半角に変換

カタカナは全角で英数字は半角にする

関数で変換する方法が分からなかったのでマクロを使用します。マクロも詳しくはないのでアナログな使い方かもしれませんが、以下のように「1(全角)を1(半角)に置き換える」という処理を全ての英数字の分だけ作っています。

当初はアルファベットの大文字が小文字に(又は小文字が大文字に)変換されていたので、大文字と小文字を区別するために「MatchCase:=True」を追加しました。

Sub 変換()

Dim 選択セル As Range
For Each 選択セル In Selection
With Selection
.Replace What:="1", Replacement:="1", LookAt:=xlPart, MatchCase:=True

End With
Next 選択セル
End Sub

マクロの内容

選択したセルの「数字・アルファベット(小文字)・アルファベット(大文字)」を全角から半角に変換するマクロのため、カタカナは事前にJISで全角にしておく必要があります。逆に考えると、事前にASCで文字列を半角にして、カタカナ半角をの半角を全角に変換するマクロを使用するのも有効かと思います。

例えば住所などの地名には「全角が正解・半角が正解」という文字があると思うので、目的に応じてプラスアルファの事前・事後処理が必要になる可能性もあります。

Sub 変換()

Dim 選択セル As Range
For Each 選択セル In Selection
With Selection
.Replace What:="1", Replacement:="1", LookAt:=xlPart, MatchCase:=True
.Replace What:="2", Replacement:="2", LookAt:=xlPart, MatchCase:=True
.Replace What:="3", Replacement:="3", LookAt:=xlPart, MatchCase:=True
.Replace What:="4", Replacement:="4", LookAt:=xlPart, MatchCase:=True
.Replace What:="5", Replacement:="5", LookAt:=xlPart, MatchCase:=True
.Replace What:="6", Replacement:="6", LookAt:=xlPart, MatchCase:=True
.Replace What:="7", Replacement:="7", LookAt:=xlPart, MatchCase:=True
.Replace What:="8", Replacement:="8", LookAt:=xlPart, MatchCase:=True
.Replace What:="9", Replacement:="9", LookAt:=xlPart, MatchCase:=True

.Replace What:="a", Replacement:="a", LookAt:=xlPart, MatchCase:=True
.Replace What:="b", Replacement:="b", LookAt:=xlPart, MatchCase:=True
.Replace What:="c", Replacement:="c", LookAt:=xlPart, MatchCase:=True
.Replace What:="d", Replacement:="d", LookAt:=xlPart, MatchCase:=True
.Replace What:="e", Replacement:="e", LookAt:=xlPart, MatchCase:=True
.Replace What:="f", Replacement:="f", LookAt:=xlPart, MatchCase:=True
.Replace What:="g", Replacement:="g", LookAt:=xlPart, MatchCase:=True
.Replace What:="h", Replacement:="h", LookAt:=xlPart, MatchCase:=True
.Replace What:="i", Replacement:="i", LookAt:=xlPart, MatchCase:=True
.Replace What:="j", Replacement:="j", LookAt:=xlPart, MatchCase:=True
.Replace What:="k", Replacement:="k", LookAt:=xlPart, MatchCase:=True
.Replace What:="l", Replacement:="l", LookAt:=xlPart, MatchCase:=True
.Replace What:="m", Replacement:="m", LookAt:=xlPart, MatchCase:=True
.Replace What:="n", Replacement:="n", LookAt:=xlPart, MatchCase:=True
.Replace What:="o", Replacement:="o", LookAt:=xlPart, MatchCase:=True
.Replace What:="p", Replacement:="p", LookAt:=xlPart, MatchCase:=True
.Replace What:="q", Replacement:="q", LookAt:=xlPart, MatchCase:=True
.Replace What:="r", Replacement:="r", LookAt:=xlPart, MatchCase:=True
.Replace What:="s", Replacement:="s", LookAt:=xlPart, MatchCase:=True
.Replace What:="t", Replacement:="t", LookAt:=xlPart, MatchCase:=True
.Replace What:="u", Replacement:="u", LookAt:=xlPart, MatchCase:=True
.Replace What:="v", Replacement:="v", LookAt:=xlPart, MatchCase:=True
.Replace What:="w", Replacement:="w", LookAt:=xlPart, MatchCase:=True
.Replace What:="x", Replacement:="x", LookAt:=xlPart, MatchCase:=True
.Replace What:="y", Replacement:="y", LookAt:=xlPart, MatchCase:=True
.Replace What:="z", Replacement:="z", LookAt:=xlPart, MatchCase:=True

.Replace What:="A", Replacement:="A", LookAt:=xlPart, MatchCase:=True
.Replace What:="B", Replacement:="B", LookAt:=xlPart, MatchCase:=True
.Replace What:="C", Replacement:="C", LookAt:=xlPart, MatchCase:=True
.Replace What:="D", Replacement:="D", LookAt:=xlPart, MatchCase:=True
.Replace What:="E", Replacement:="E", LookAt:=xlPart, MatchCase:=True
.Replace What:="F", Replacement:="F", LookAt:=xlPart, MatchCase:=True
.Replace What:="G", Replacement:="G", LookAt:=xlPart, MatchCase:=True
.Replace What:="H", Replacement:="H", LookAt:=xlPart, MatchCase:=True
.Replace What:="I", Replacement:="I", LookAt:=xlPart, MatchCase:=True
.Replace What:="J", Replacement:="J", LookAt:=xlPart, MatchCase:=True
.Replace What:="K", Replacement:="K", LookAt:=xlPart, MatchCase:=True
.Replace What:="L", Replacement:="L", LookAt:=xlPart, MatchCase:=True
.Replace What:="M", Replacement:="M", LookAt:=xlPart, MatchCase:=True
.Replace What:="N", Replacement:="N", LookAt:=xlPart, MatchCase:=True
.Replace What:="O", Replacement:="O", LookAt:=xlPart, MatchCase:=True
.Replace What:="P", Replacement:="P", LookAt:=xlPart, MatchCase:=True
.Replace What:="Q", Replacement:="Q", LookAt:=xlPart, MatchCase:=True
.Replace What:="R", Replacement:="R", LookAt:=xlPart, MatchCase:=True
.Replace What:="S", Replacement:="S", LookAt:=xlPart, MatchCase:=True
.Replace What:="T", Replacement:="T", LookAt:=xlPart, MatchCase:=True
.Replace What:="U", Replacement:="U", LookAt:=xlPart, MatchCase:=True
.Replace What:="V", Replacement:="V", LookAt:=xlPart, MatchCase:=True
.Replace What:="W", Replacement:="W", LookAt:=xlPart, MatchCase:=True
.Replace What:="X", Replacement:="X", LookAt:=xlPart, MatchCase:=True
.Replace What:="Y", Replacement:="Y", LookAt:=xlPart, MatchCase:=True
.Replace What:="Z", Replacement:="Z", LookAt:=xlPart, MatchCase:=True

End With
Next 選択セル
End Sub
①事前にJISで全角にする
②変換するセルを選択
③マクロ実行後
タイトルとURLをコピーしました