本記事では、エクセルファイルにおいて全角を半角に変換する方法をご紹介します。特に英数字や記号、スペースなどで全角と半角が混在していると見栄えがよくないだけでなく、データとして処理をする際にエラーや予期せぬ動作が起こってしまう場合があります。本記事ではASC関数やVBAを使用して、簡単・自動・一括で全角を半角に変換する方法を解説します。
下記のようなお悩みを持つ方に向けた記事となっています。
- エクセルファイル内で全角と半角が混在している…
- 数字が全角で入力されているためエラーになってしまう
Excelで全角を半角に変換する方法
Excelで全角を半角に変換する方法は下記の2パターンが考えられます。
ASC関数を使用する場合は、特定のセルや列など一部のデータを簡単に全角から半角に変換したい場合に適しています。一方でブック (ファイル) 内のすべての文字で全角を半角に変換したい場合はVBAを使うことで効率的に実装できます。
- ASC関数でセルの値から英数字や記号を全角から半角に変換する
([A1]の部分は任意のセルや値に置き換えてください)=ASC(A1)
- 下記のVBAを使用して、全シート・全セルの全ての全角を半角に変換する
Sub ConvertAllSheetsFullWidthToHalfWidth() 'written by consulting-campus.site Dim ws As Worksheet Dim cell As Range Application.ScreenUpdating = False For Each ws In ActiveWorkbook.Worksheets For Each cell In ws.UsedRange If Not cell.HasFormula Then cell.Value = StrConv(cell.Value, vbNarrow) End If Next cell Next ws Application.ScreenUpdating = True MsgBox "完了しました" End Sub
ASC関数でセルごとの値を全角から半角に変換する
ExcelにはASC関数があり、これを使うことでセルの値を全角から半角に変換することができます。ASC関数はセルに入力して使用していくため、特定のセルや列・行などの範囲に対して手動で変換を行いたい場合に適しています。英数字・記号・スペースなどが変換の対象となります。
全角を半角に変換するASC関数の使用方法
使用方法としては、下記の通り通常の関数の通りセル内でASC関数を打ち込んでください。
- 全角から半角に変換したいセルとは別に、空いているセルに
=ASC(A1)
と入力し、Enterキーを押します - そのセルに、A1の全角文字が半角文字に変換された値が表示されます
こちらの変換を特定の行や列などのセル範囲で行いたい場合は、このASC関数を含むセルをコピーして他のセルに入力します。セルのコピーはCtrl + C、数式の貼付けはCtrl + Vで実行できます。
ASC関数の詳細・トラブルシューティング
ASC関数の文法や公式ドキュメントは下記のとおりです。
- 構文:
ASC(テキスト)
- 各引数の説明:
引数 説明 テキスト必須 変換する文字列 - 参考: マイクロフト公式ドキュメント
また、ASC関数はExcelの言語設定を日本語に設定しないと使用できない場合があります。Microsoftコミュニティでは下記のような投稿とトラブルシューティングがあります。ExcelでASC関数がエラーや使用できない場合は参考にしてください。
ファイル > オプション > 言語 > 編集言語の選択で「英語(米国)」を選択して「既定に設定」→「OK」としてExcelを再起動するとASC関数を使用した場合、全角の英数カナが半角の英数カナになりませんでした。
Excel2016 ASC関数について
言語を「日本語」にして「既定に設定」した場合、ASC関数で全角→半角にすることが出来ました。
ただし、日本語を既定に設定して再起動しても、既に「英語(米国)」で変換済みのセルの値は半角にはなってくれませんでした。
VBAを使用してファイル内の全ての全角を半角に一括変換する
次に、VBAを使用してExcelファイル内の全てのシート、全てのセルの全角文字を半角に一括で自動変換する方法をご紹介します。全角の存在の有無を気にせず、一度コードを実行すると解決するためシンプルかつ強力な方法となります。ASC関数と同様に、英数字・記号・スペースなどが変換の対象となります。
ファイル内の全ての全角を半角に一括変換するVBAは以下の手順で実行できます。
- Excelを開き、VBAエディタを起動します (ショートカットキー: Alt + F11)
- [挿入]→[モジュール]から新しいモジュールを挿入します
- 以下のVBAコードをモジュールウィンドウに貼り付けます
Sub ConvertAllSheetsFullWidthToHalfWidth() 'written by consulting-campus.site Dim ws As Worksheet Dim cell As Range Application.ScreenUpdating = False For Each ws In ActiveWorkbook.Worksheets For Each cell In ws.UsedRange If Not cell.HasFormula Then cell.Value = StrConv(cell.Value, vbNarrow) End If Next cell Next ws Application.ScreenUpdating = True MsgBox "完了しました" End Sub
- 最後に、F5キーまたは[実行]タブ→[Sub/ユーザーフォームの実行]からコードを実行します
(VBAのより詳しい説明については【丁寧に解説】エクセルでマクロ・VBAを実行するをご確認ください)
こちらを実行すると、現在の表示中の全てのシート・セルにおいて、元々の値が全角から半角に変換されます。より細かい情報についてはStrConv 関数 – Microsoft公式ドキュメントをご確認ください。
まとめ
以上が、Excelで全角の英数字や記号などを半角に変換する方法のご紹介となります。ASC関数やVBAを使用する方法など、変換したい値の範囲や細かい条件に合わせてこれらを使い分けてください。
ご質問やご不明点がある場合はお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント