Excel の列から英語以外の文字を削除するにはどうすればよいですか?
Excel でデータを管理する際、特に一貫性のない文字や不要な文字が混在するリストを扱う場合は、テキストのクリーニングが頻繁に必要になります。たとえば、名前やエントリの列で、一部のセルにアクセント付き文字、特殊記号、あるいは英語以外の言語スクリプトが含まれている場合、データの一貫性要件を満たすため、またはその後の処理をスムーズに行うために、これらを削除しなければならないことがあります。
このような文字を手動で削除するのは、特に大規模なデータセットを扱う場合、非常に時間がかかり、ミスも起こりやすくなります。これを効率的に解決するため、Excel ではいくつかのアプローチが用意されています。たとえば、VBA スクリプトを使って英語以外の文字を含む行を自動的に削除する方法や、テキストから英語以外の文字だけを除去しつつデータ構造を維持したままクリーンアップする方法があります。ここでは、こうしたニーズに応える実用的な2 つのソリューションをご紹介します。
Kutools for Excel を使用して文字列から英語以外の文字を削除する
VBA を使用してセルのテキストから英語以外の文字を削除する
VBA を使用して英語以外の文字を含む行を削除する
特定の列から英語以外の文字を含む行全体を完全に削除したい場合は、VBA スクリプトを使えばこの処理を自動化できます。この方法は、標準的な英語アルファベットのみを含むセルだけを残したいときに特に効果的です。外国語の文字や特殊記号が含まれるセルがあると、そのセルを含む行全体が削除されます。英語のアルファベットのみを受け付けるシステムにデータをインポートするための、クリーンなデータセットを準備する際に特に役立ちます。
ただし、この方法には1 回につき1 列しか対象にできないという制限があることにご注意ください。他の列にも適用したい場合は、各列ごとにスクリプトを個別に実行する必要があります。また、一度実行すると、バックアップを作成していない場合や元に戻す(Undo)機能が使えない限り、削除された行は復元できません。
以下に手順を示します。
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をクリックしてください。
4.後続のダイアログボックスでOKをクリックして選択を確定してください。スクリプトは選択した列の各セルをチェックし、英字(A~Z の小文字・大文字)以外の文字が含まれているセルを検出すると、そのセルのある行全体を自動的に削除します。処理が完了すると、完了メッセージがポップアップ表示されます。
![]() | ![]() | ![]() |
注:この VBA スクリプトは一度に1 列のみ処理可能です。削除された行は操作後に復元できませんので、コードを実行する前に必ずブックを保存してください。特にデータ量が多かったり、特殊な書式が含まれている場合は、事前にバックアップを取ることを強くおすすめします。
トラブルシューティングのヒント:エラーメッセージが表示されたり、何も起こらないように見える場合は、有効な列を1 列のみ(複数列にわたる範囲ではない)選択しているかをご確認ください。このスクリプトを実行するには、VBA が有効になっている必要があります。お使いの環境で VBA エディターがロックされていたり制限されている場合は、権限を有効にするか、代替の方法をご検討ください。
適用範囲:この方法は、データに純粋な英字のみを含むエントリを確保したい場合に最適です。特殊文字や外国語の文字が一切含まれない行のみを残したいときにぴったりです。ただし、行全体を削除せずにデータを保持しつつ、英語以外の文字だけを削除したい場合は、以下に示すKutools のソリューションや他の方法をご検討ください。
Kutools for Excel を使用して文字列から英語以外の文字を削除する
行を削除せずにセル内のテキストから英語以外の文字をクリーンアップしたい場合は、特定の文字を削除機能がKutools for Excelに搭載されており、迅速で実用的なソリューションを提供します。データ構造全体を維持しながら、文字列内の特殊文字やアクセント付き文字、外国語の文字を削除し、英字のみを残したいシーンに最適です。
たとえば、誤って入力された、または外部ソースからコピーされた結果としてさまざまな記号や英語以外の文字が混入している可能性のある氏名や商品コードなどの英数字エントリを標準化するのに、この方法は理想的です。手動でのクリーニングと比べて、不要な文字を見落とすリスクを低減し、処理を高速化できます。
![]() | ![]() | ![]() |
1.クリーンアップしたいテキストが含まれる範囲を選択し、Excel リボンのKutoolsタブに移動して、テキストをクリックします。ドロップダウンメニューから特定の文字を削除を選択してください(下のスクリーンショットを参照)。
2.表示される特定の文字を削除ダイアログボックスで、英字以外(数字、句読点、特殊記号、英語以外の文字など、英字以外のすべての文字)のオプションをチェックしてください。プレビューペインには、英字以外および特殊文字を削除したテキストが自動的に表示されます。
3.プレビューの結果が期待通りであることを確認したら、OKをクリックします。これにより、「範囲を選択してください」から英語以外の文字(標準的な英字以外のすべての文字)が即座に削除され、その他のデータはそのまま維持されます。
Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手
Excel で頻繁にテキストのクリーニングを行う必要がある場合、Kutools のアプローチはユーザーフレンドリーなビジュアルインターフェースを提供し、大規模な範囲もわずか数回のクリックで効率的に処理できます。また、結果が期待通りでない場合に変更を簡単に元に戻せる Undo サポートも備えています。
ヒントと注意点:「英字以外」オプションを使用すると、テキスト内の数字や特殊な句読点も削除されます。数字や特定の文字を残したい場合は、目的の結果が得られるまでダイアログ内のチェックボックスを試行錯誤してください。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.この数式を入力したら、Ctrl+Shift+Enterキーを押してください(Office 365 より前のExcel バージョンの場合。Office 365 以降では、Enter キーを押すだけで OK です)。セルの右下隅にあるフィルハンドルをドラッグするかダブルクリックして、関連するすべての行に数式をコピーしましょう。
パラメーターの説明:この数式は、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 を使用して文字列から英語以外の文字を削除するデモ
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得



