メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelの列から非英語の文字を削除するにはどうすればよいですか?

Author Sun Last modified

Excelでデータを管理する際、特に不要または不整合な文字が含まれているリストを扱う場合、テキストをクリーンアップすることがよく求められます。たとえば、名前の列やエントリの中に、アクセント付きの文字、特殊記号、または外国語のスクリプトが含まれているセルがあり、これらを削除してデータの一貫性を保ちたい場合があります。

このような文字を手動で削除するのは非常に時間がかかり、特に大規模なデータセットを扱う場合はエラーが発生しやすくなります。これを効率的に解決するために、Excelではいくつかの方法が提供されています。VBAスクリプトを使用して非英語の文字が含まれる行を自動的に削除することもできますし、データ構造を維持しながらテキストから非英語の文字を削除してその場でデータをクリーンアップすることもできます。ここでは、これらのシナリオに対処するための2つの実用的なソリューションを紹介します。

VBAを使用して非英語の文字を含む行を削除する

Kutools for Excelを使用して文字列から非英語の文字を削除する

Excelの数式を使用して非英語の文字を削除する

VBAを使用してセル内のテキストから非英語の文字を削除する


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

A screenshot of the pasted code in the created module

3. F5 キーを押すか、 実行 ボタンをクリックしてコードを実行します。ダイアログボックスが表示され、「単一の列を選択」と促されます。マウスを使用してワークシートで処理したい列を選択し、 OK.
A screenshot showing selection of a column in the VBA script for removing non-English characters

をクリックして選択を確認します。 OK その後、スクリプトは選択した列の各セルを確認します。大文字または小文字の英字(A-Z)以外の文字が検出された場合、そのセルを含む行全体が削除されます。完了後、プロセスが終了したことを通知するメッセージが表示されます。
A screenshot of the confirmation dialog

A screenshot showing an Excel column with non-English characters Arrow right A screenshot showing an Excel column after non-English characters have been removed

注意: このVBAスクリプトは一度に1つの列選択でのみ動作します。削除された行は操作後に復元できないため、コードを実行する前にワークブックを保存することをお勧めします。データが大きいか特別な書式設定が含まれている場合は、事前にバックアップを作成することを強くお勧めします。

トラブルシューティングのヒント: エラーメッセージが表示されるか、何も起こらない場合は、有効な列を選択し、複数列にまたがる範囲ではないか確認してください。このスクリプトを実行するにはVBAが有効である必要があります。VBAエディタがロックされているか制限されている場合は、権限を有効にするか代替方法を検討してください。

適用性: このアプローチは、データに純粋な英文字のみを含める必要があり、特殊文字や外国語文字を含む行を保持する必要がない場合に最適です。ただし、行を削除せずに単に非英語の文字を削除したい場合は、Kutoolsのソリューションや以下の他の方法を検討してください。


Kutools for Excelを使用して文字列から非英語の文字を削除する

行を削除せずにセル内の非英語の文字を削除してテキストをクリーンアップしたい場合、Kutools for Excelの「特定の文字を削除」機能は迅速かつ実用的なソリューションを提供します。これは、全体的なデータ構造を維持しつつ、文字列内の特殊文字、アクセント付き文字、または外国語の文字を削除し、通常の英文字のみを表示したい場合に適しています。

たとえば、このアプローチは名前、製品コード、またはアルファベット数字のエントリを標準化するのに理想的です。誤って入力された、または外部ソースからコピーされた結果としてさまざまな記号や非英語の文字が含まれている場合に特に有用です。手動でのクリーンアップと比較して、不要な文字を見逃すリスクを減らし、プロセスを高速化します。

A screenshot of an Excel column containing non-English characters before cleanup Arrow right A screenshot of the Excel column after using Kutools to remove non-English characters
Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

1. クリーンアップしたいテキスト文字列を含む範囲を選択し、次に移動します: Kutools タブのExcelリボンで、「 テキスト」をクリックし、「 特定の文字を削除 」を選択します。参考のため、以下のスクリーンショットをご覧ください:
A screenshot of Kutools Remove Characters option under Text menu in Excel

2. 表示される「 特定の文字を削除 」ダイアログボックスで、「 非アルファ 」オプションをチェックします(これは数字、句読点、特殊記号や非英語の文字など、アルファベット以外の文字を対象とします)。 プレビュー ペインは自動的に更新され、非英語および特殊文字が削除された後のテキストの外観が表示されます。
A screenshot of Remove Characters dialog showing options for removing non-English characters

3. プレビューが期待通りであることを確認したら、「 OK」をクリックします。選択した範囲からすべての非英語の文字(つまり、標準的な英文字以外のもの)が即座に削除され、それ以外のデータはそのまま残ります。
A screenshot of the Excel column after using Kutools to remove non-English characters

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 for Excel: あなたの指先に 300 以上の便利なツールが集結!永久無料のAI機能をお楽しみください!今すぐダウンロード!

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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