Excelの列から非英語の文字を削除するにはどうすればよいですか?
Excelでデータを管理する際、特に不要または不整合な文字が含まれているリストを扱う場合、テキストをクリーンアップすることがよく求められます。たとえば、名前の列やエントリの中に、アクセント付きの文字、特殊記号、または外国語のスクリプトが含まれているセルがあり、これらを削除してデータの一貫性を保ちたい場合があります。
このような文字を手動で削除するのは非常に時間がかかり、特に大規模なデータセットを扱う場合はエラーが発生しやすくなります。これを効率的に解決するために、Excelではいくつかの方法が提供されています。VBAスクリプトを使用して非英語の文字が含まれる行を自動的に削除することもできますし、データ構造を維持しながらテキストから非英語の文字を削除してその場でデータをクリーンアップすることもできます。ここでは、これらのシナリオに対処するための2つの実用的なソリューションを紹介します。
Kutools for Excelを使用して文字列から非英語の文字を削除する
VBAを使用して非英語の文字を含む行を削除する
特定のExcel列に含まれる非英語の文字を含む行全体を完全に削除したい場合、VBAスクリプトを使用してこのプロセスを自動化できます。このアプローチは、標準的な英字(A-Z)のみが残るようにしたい場合に特に適しており、外国語の文字や特殊記号が含まれるセルがある場合、その行全体が削除されます。この方法は、標準的な英字のみを受け入れるシステムにインポートするためのクリーンなデータセットを準備する際に特に役立ちます。
ただし、この方法には一度に1つの列しか対象としないという制限があることに注意してください。他の列にも適用したい場合は、それぞれの列に対してスクリプトを個別に実行する必要があります。また、一度実行すると、バックアップを作成していない限り、削除された行は復元できません。
以下はステップバイステップガイドです:
1. Excelワークブックを開き、処理したい列が含まれるワークシートをアクティブにし、Alt + F11を押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。これにより、Excelに組み込まれているVBAプログラミング環境にアクセスできます。
2. VBAエディタで、[挿入] > [モジュール]をクリックして新しいモジュールを作成し、表示されるコードウィンドウに次のVBAコードをコピーして貼り付けます:
VBA: 非英語の文字を削除
Sub RemoveNonEnglish()
'UpdatebyExtendoffice20171204
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim xRows As Long
Dim xAsc As Long
On Error Resume Next
Set xRg = Application.InputBox("Select single column:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
xRows = xRg.Rows.Count
Set xRg = xRg(1)
For I = 1 To xRows
Set xCell = xRg.Offset(I - 1)
If xCell.Value <> "" Then
For J = 1 To Len(xCell.Value)
xAsc = Asc(UCase(Mid(xCell.Value, J, 1)))
If xAsc < 65 Or xAsc > 90 Then
xCell.EntireRow.Delete
I = I - 1
Exit For
End If
Next
End If
Next
Application.ScreenUpdating = True
MsgBox "Completed...", vbInformation
End Sub
3. F5 キーを押すか、 実行 ボタンをクリックしてコードを実行します。ダイアログボックスが表示され、「単一の列を選択」と促されます。マウスを使用してワークシートで処理したい列を選択し、 OK.
をクリックして選択を確認します。 OK その後、スクリプトは選択した列の各セルを確認します。大文字または小文字の英字(A-Z)以外の文字が検出された場合、そのセルを含む行全体が削除されます。完了後、プロセスが終了したことを通知するメッセージが表示されます。
![]() | ![]() | ![]() |
注意: このVBAスクリプトは一度に1つの列選択でのみ動作します。削除された行は操作後に復元できないため、コードを実行する前にワークブックを保存することをお勧めします。データが大きいか特別な書式設定が含まれている場合は、事前にバックアップを作成することを強くお勧めします。
トラブルシューティングのヒント: エラーメッセージが表示されるか、何も起こらない場合は、有効な列を選択し、複数列にまたがる範囲ではないか確認してください。このスクリプトを実行するにはVBAが有効である必要があります。VBAエディタがロックされているか制限されている場合は、権限を有効にするか代替方法を検討してください。
適用性: このアプローチは、データに純粋な英文字のみを含める必要があり、特殊文字や外国語文字を含む行を保持する必要がない場合に最適です。ただし、行を削除せずに単に非英語の文字を削除したい場合は、Kutoolsのソリューションや以下の他の方法を検討してください。
Kutools for Excelを使用して文字列から非英語の文字を削除する
行を削除せずにセル内の非英語の文字を削除してテキストをクリーンアップしたい場合、Kutools for Excelの「特定の文字を削除」機能は迅速かつ実用的なソリューションを提供します。これは、全体的なデータ構造を維持しつつ、文字列内の特殊文字、アクセント付き文字、または外国語の文字を削除し、通常の英文字のみを表示したい場合に適しています。
たとえば、このアプローチは名前、製品コード、またはアルファベット数字のエントリを標準化するのに理想的です。誤って入力された、または外部ソースからコピーされた結果としてさまざまな記号や非英語の文字が含まれている場合に特に有用です。手動でのクリーンアップと比較して、不要な文字を見逃すリスクを減らし、プロセスを高速化します。
![]() | ![]() | ![]() |
1. クリーンアップしたいテキスト文字列を含む範囲を選択し、次に移動します: Kutools タブのExcelリボンで、「 テキスト」をクリックし、「 特定の文字を削除 」を選択します。参考のため、以下のスクリーンショットをご覧ください:
2. 表示される「 特定の文字を削除 」ダイアログボックスで、「 非アルファ 」オプションをチェックします(これは数字、句読点、特殊記号や非英語の文字など、アルファベット以外の文字を対象とします)。 プレビュー ペインは自動的に更新され、非英語および特殊文字が削除された後のテキストの外観が表示されます。
3. プレビューが期待通りであることを確認したら、「 OK」をクリックします。選択した範囲からすべての非英語の文字(つまり、標準的な英文字以外のもの)が即座に削除され、それ以外のデータはそのまま残ります。
Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手
Excelで頻繁にテキストをクリーンアップする必要がある場合、このKutoolsのアプローチは使いやすいインターフェースを提供し、わずか数回のクリックで大量のデータ範囲を効率的に処理します。また、結果が要件を満たさない場合でも変更を簡単に取り消せるよう、元に戻すサポートもあります。
ヒントと注意: 「非アルファ」オプションは、テキスト内の数字や特殊な句読点も削除します。数字や特定の文字を保持する必要がある場合は、ダイアログの異なるチェックボックスを試して、希望の結果を得てください。OKを押す前に常にプレビューペインを確認して、効果を確認してください。
比較: この方法は、行全体を削除するVBAよりも柔軟性があり、望ましくない文字だけを削除します。そのため、各行に関連付けられた重要な情報が失われるリスクがある場合には、破壊的でなく安全です。
Excelの数式を使用して非英語の文字を削除する
Kutoolsにアクセスできない、またはVBAを使用したくない場合、Excelの数式を使用してセル内のテキストから非英語の文字(つまり、英語のアルファベットの文字以外のもの)を削除することもできます。このアプローチは、各行に適用でき、他のセルに簡単にコピーできる非破壊的で数式ベースのソリューションが必要な場合に適しています。
1. 出力列の最初のセル(例えば、元のデータがA列にある場合B1)に次の配列数式を入力します:
=TEXTJOIN("",TRUE,IF((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>=65)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<=90)+(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>=97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<=122),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))
この数式は、セルA1の各文字を確認し、大文字(A-Z)または小文字(a-z)の英文字の場合のみ保持し、結果をクリーンな文字列に結合します。
2. この数式を入力した後、Office 365より前のバージョンのExcelの場合はCtrl+Shift+Enterを押します(Office 365以降では、Enterキーを押すだけです)。数式を下方向にドラッグしてすべての関連行にコピーするか、セルの右下隅にあるフィルハンドルをダブルクリックします。
パラメータの説明: この数式はMID、CODE(ASCIIコードを返す)、INDIRECT、ROW関数を使用してターゲットセル内の各文字を処理します。アルファベットa-zまたはA-Zのみが保持されます。
注意: このアプローチは元のデータを変更しません。出力はターゲット列の数式結果です。固定値が必要な場合は、結果をコピーし、[形式を選択して貼り付け]を使用して数式を上書きします。
制限: テキストの長さは数式のパフォーマンスに影響します。この方法はマルチキャラクターのUnicodeグラフームを正しく処理できない可能性があるため、複合Unicodeシーケンスで表される視覚的な非英語の文字は残ることがあります。
VBAを使用してセルテキストから非英語の文字を削除する
行全体を削除せずにセル内のテキストから非英語の文字を削除したい場合、VBAを使用してさらにカスタマイズ可能な自動化を行うこともできます。これは、頻繁に実行する必要があるデータクリーニングタスクに実用的であり、アドインが使用できない場合に便利です。
1. Excelを開き、Alt + F11を押してMicrosoft Visual Basic for Applicationsエディタを起動します。[挿入] > [モジュール]に移動し、次のコードをモジュールウィンドウに貼り付けます:
Sub RemoveNonEnglishCharactersFromCells()
' Remove non-English characters, keep only a-z, A-Z
Dim rng As Range
Dim cell As Range
Dim i As Long
Dim ch As String
Dim output As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set rng = Application.InputBox("Select range to clean (cells will be altered):", xTitleId, rng.Address, Type:=8)
If rng Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each cell In rng
output = ""
For i = 1 To Len(cell.Value)
ch = Mid(cell.Value, i, 1)
If (Asc(ch) >= 65 And Asc(ch) <= 90) Or (Asc(ch) >= 97 And Asc(ch) <= 122) Then
output = output & ch
End If
Next i
cell.Value = output
Next cell
Application.ScreenUpdating = True
MsgBox "Cleanup complete.", vbInformation
End Sub
2. Excelに戻り、クリーンアップしたい範囲を選択し、VBAエディタに戻ってF5を押すか[実行]ボタンをクリックしてコードを実行します。プロンプトが表示されたら、処理する範囲を選択して確認します。
効果: このコードは選択した各セルを処理し、標準的な英文字以外の文字を削除し、クリーンな結果でセルを更新します。元のデータは上書きされるため、シートのバックアップを作成するかコピーで作業するのが賢明です。
Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手
デモ: Kutools for Excelを使用して文字列から非英語の文字を削除する
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得