VBA 関数 EXCEL&VBA

エクセルで半角カナを全角文字に変換する方法

今回はエクセルで 半角カタカナを全角カタカナに変換する方法 です。

全角文字と半角文字が両方存在するカタカナの場合、その両方が表の中に混在していると見た目も統一感に欠けてしまいクオリティが低い印象になります。

過去記事で、全角から半角に変換する方法をピックアップしましたが、今回はその逆です。
関数やVBAを使って半角カナから全角カナに文字列を揃える方法をマスターしましょう。



半角から全角に文字列を置換する

半角から全角に文字列を置換するには、関数を使う方法とVBAを使う方法があります。

VBAはハードルが高い、という方は関数を使えばいいですし、VBAをご存知の方はVBAで対応した方が後々繰り返されるデータのメンテナンスが楽になります。

関数で半角カナを全角に置換する

関数を使って 半角カナから全角に置換 するには JIS関数 を使います。

JIS関数

JIS関数とは、半角の英数カナ文字(1バイト)を 全角文字(2バイト)に変換する関数で;

= JIS ( 文字列 )

のように表されます。

JIS関数の使い方

下のサンプルを使って JIS関数の使い方を解説します。


▲半角カナと全角カナが混在

文字列を全角に揃えるために、JIS関数 をつかった数式を B列に入力します。
セルB2に入る数式は;

JIS (A2)

となります。


▲半角カナが全角に変換された

数式を下のセルB6までコピーするとA列の 半角カナが全角に変換 されます。

ここでのポイントは、最初から全角の文字は JIS関数の影響を受けないということと、セルA6のような英数文字も JIS関数の影響を受けて全角に変換されるので注意が必要ということです。


VBAを使って半角カナから全角に変換する

関数で対応するのもするのも良いですが、半角カナから全角に統一する「データメンテナンス」は一度きりではなく定期的な実施が必要です。

こんなときは、VBAを使ってマクロを登録しておけば、その後はワンタッチで半角カナから全角に一発変換することが可能でメンテナンスが楽になります。

StrConv関数

VBAで使う StrConv関数 は文字列の変換を行う関数で、半角カナから全角に変換する以外にも活用できます。

構文は;

StrConv( String, Conversion

のように表されます。

String の部分は変換したい文字列が入ります。

Conversion の部分は変換ルールを指定する定数が入ります。

定数 内容
vbUpperCase 1 文字列を大文字に変換します
vbLowerCase 2 文字列を小文字に変換します
vbProperCase 3 文字列の各単語の先頭の文字を大文字に変換します
vbWide 4 文字列内の半角文字(1バイト)を全角文字(2バイト)に変換します
vbNarrow 8 文字列内の全角文字(2バイト)を半角文字(1バイト)に変換します
vbKatakana 16 文字列内のひらがなをカタカナに変換します
vbHiragana 32 文字列内のカタカナをひらがなに変換します
vbUnicode 64 システムの既定のコードページを使って文字列をUnicodeに変換します
vbFromUnicode 128 文字列をUnicodeからシステムの既定のコードページに変換します

今回の場合は「vbWide」を使います。
ここで、JIS関数の説明でつかったサンプルをもう一度使って使用例を紹介します。

VBAを使う方法では、関数のときと違い「A列の文字列を直接全角に変換」します。(=B列を使わない)


StrConv関数の使用例(サンプルコード)

そしてここからは、いつものコピペで使える標準モジュール。サンプルコードです。

Option Explicit


'*********************************************************
'    半角カナを全角に変換
'*********************************************************
Sub Kana_Henkan()
  Dim strKana As String
  Dim i As Long
  ’セルA2からA6を上から順番に半角変換する
  For i = 2 To 6  ’「6」の部分の数値はデータ件数が増えたら最終行の番号にする
    strKana = ActiveSheet.Cells( i, 1).Value
    ActiveSheet.Cells( i, 1 ).Value = StrConv( strKana, vbWide
  Next i
End Sub
'-----------------<< End of Source >>------------------

このマクロを実行すると、セルA2からA6までが半角に変換されます。


▲一瞬でA列が全角に変換された!

このマクロがあれば、次回のデータメンテナンス時は最終行の番号だけを書き換えるだけで簡単に実行できます。
※「最終行」の番号を自動で取得したければ こちらの記事 をご覧ください。

エクセルで半角カナを全角文字に変換する方法』は以上です。
他の関連記事とあわせて仕事や趣味に役立ててください。

関連記事・広告



併せて読んでおくとさらに便利

Excelで全角・半角をチェックする方法
LEN関数・LENB関数
Excelでデータの全角・半角をチェックする方法を解説。カタカナやアルファベットの中には、フォントによって見た目の全角・半角の区別が難しい文字もあります。

EXCELで「文字列の置換・削除」方法をパターン別にまとめた
関数・文字列操作
Excelの特定の文字を削除したり文字列を置換(置き換え)したり、文字列に含まれる余分なスペースや文字を削除したりする方法のまとめです。置換の関数や削除の関数をパターン別に例示し...

VBAで最終行を取得する方法と そこからできること|Excel VBA
VBA・最終行
VBAで最終行を取得する方法を解説。最終行の行番号を取得できることにより最終行の削除や、最終行までセルを選択したり繰り返したり色々なことが可能になります。

エクセルの重複データに色を付ける|「ダブり」チェック
条件付き書式・COUNTIF関数
エクセルで重複するデータに色を付ける方法を解説します。Excelでダブりチェックをする方法はいくつかありますが簡単に設定できるのでぜひ挑戦してみましょう。

※その他関連記事は、このページの下の方にもあります。




-VBA, 関数, EXCEL&VBA
-, , ,