Excelで英数字以外の文字を削除する2つの方法|VBAとユーザー定義関数を徹底解説
本記事では、Excelのセルから英数字以外の文字を削除する方法を詳しく解説します。生データを扱っていると、セルの中に数値・テキスト・記号などが混在しているケースは非常によくあります。こうした不要な文字を取り除きたい場面では、VBAマクロやユーザー定義関数を活用すると効率的に処理できます。
記事を読みながら実際に操作できるよう、練習用ブックをダウンロードしてぜひ試してみてください。
Excelで英数字以外の文字を削除する2つの方法
分析用の生データを受け取ったとき、1つの列に数値やテキストが英数字以外の文字と混ざっていることがあります。スムーズに作業を進めるためには、不要な文字を文字列から除去する必要があります。ここでは、VBAコードを実行する方法とユーザー定義関数を作成する方法の2つを紹介します。

方法1:VBAコードを実行して英数字以外の文字を削除する
VBAマクロを使えば、選択した範囲内のすべてのセルから英数字以外の文字を一括で削除できます。以下の手順に従ってください。
ステップ1:
- まず、Alt + F11キーを押して「Microsoft Visual Basic for Applications(VBE)」のウィンドウを開きます。

- 新しいウィンドウが表示されたら、メニューの「挿入」から「標準モジュール」を選択して、新しいモジュールを追加します。

ステップ2:
- 開いたモジュールに、英数字以外の文字を削除するVBAコードを貼り付けます。以下のコードはそのままコピーして使えます。
Sub VBA_to_remove()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "Non-alphanumeric text remove"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
xOut = ""
For i = 1 To Len(Rng.Value)
xTemp = Mid(Rng.Value, i, 1)
If xTemp Like "[a-z.]" Or xTemp Like "[A-Z.]" Or xTemp Like "[0-9.]" Then
xStr = xTemp
Else
xStr = ""
End If
xOut = xOut & xStr
Next i
Rng.Value = xOut
Next
End Sub

- F5キーでコードを実行し、対象となるセル範囲を選択して「OK」をクリックします。

- これで、セルから英数字以外の文字をすべて削除できました。

関連記事:Excelで数値以外の文字を削除する方法
あわせて読みたい:
- Excelで空白文字を削除する方法(5選)
- Excelで特定の文字を削除する方法(5選)
- Excelで印刷できない文字を削除する方法(4選)
- Excelでシングルクォートを削除する方法(6選)
- Excelでアポストロフィを削除する方法(5選)
方法2:ユーザー定義関数を作成して英数字以外の文字を削除する
Excelには、英数字以外の文字を削除するための標準関数が用意されていません。そこで便利なのが、自分で関数を定義できるユーザー定義関数(UDF)です。VBAでコードを書く必要がありますが、一度作成すれば通常のワークシート関数と同じように何度でも使えます。
ステップ1:
- Alt + F11キーを押して、Visual Basic Editorを開きます。

- ここでは、関数名をRemoveNonAlphaNumericとしています。以下のコードを入力または貼り付けてください。
Function RemoveNonAlphaNumeric(xStr As String) As String
Dim xStrR As String
Dim xCh As String
Dim xStrMode As String
Dim xInt As Integer
xStrMode = "[A-Z.a-z 0-9]"
xStrR = ""
For xInt = 1 To Len(xStr)
xCh = Mid(xStr, xInt, 1)
If xCh Like xStrMode Then
xStrR = xStrR & xCh
End If
Next
RemoveNonAlphaNumeric = xStrR
End Function

ステップ2:
- コードの入力が完了したら、ワークシートに戻り「=RemoveNonAlphaNumeric」と入力します。作成した関数が候補に表示されれば成功です。

- まずはC4セルに次のように入力してみましょう。
=RemoveNonAlphaNumeric(B4)

- Enterキーを押すと結果が表示されます。
- オートフィルなどを使って、残りのセルにも同じ関数を適用すれば完成です。

関連記事:Excelで文字を削除する方法(6選)
注意点
👉 ユーザー定義関数は、通常のVBAマクロに比べてできることに制限があります。セルの挿入・削除や書式変更など、ワークシート自体の構造や形式を変える操作は行えません。
👉 開発タブが表示されていない場合は、以下の手順で有効化できます。
ファイル → オプション → リボンのユーザー設定 → 「開発」にチェックを入れる → OK
まとめ
本ガイドでは、Excelで英数字以外の文字を削除する2つのアプローチ(VBAコードの実行とユーザー定義関数の作成)を解説しました。大量のデータを整形したいときに役立つテクニックなので、ぜひ使いこなしてください。ご不明な点があれば、お気軽にコメント欄でお知らせください。フィードバックもお待ちしております。それでは、楽しいExcelライフを!
関連記事
- Excelで右端の文字を削除する方法(5選)
- Excelで末尾の文字を削除する最も簡単な方法(6選)
- Excelで電話番号からハイフンを削除する方法(4選)
- Excelで先頭の文字を削除する方法(6選)
- Excelで左端の文字を削除する方法(6選)
-
Excelで壊れたリンクを削除する3つの簡単な方法
Microsoft Excelは非常に強力なソフトウェアです。Excelのツールや機能を活用すれば、データセットに対してさまざまな操作を行うことができます。数式の作成に役立つExcel関数も多数用意されており、教育機関や企業では貴重なデータの管理にExcelファイルが広く活用されています。場合によっては、複数のExcelファイルをリンクさせて、異なるソースからデータを取り込むこともあるでしょう。しかし、リンクはさまざまな理由で切れてしまうことがあり、その結果、作業中のワークシートにエラーが発生します。そこで必要になるのが、壊れたリンクの削除です。この記事では、Excelで壊れたリンクを削除する
-
Excelでハイパーリンクをすべて削除する5つの方法【テキストはそのまま残す】
Excelでは、URLを入力すると自動的にハイパーリンクへ変換されます。便利な機能ですが、必ずしも望ましいとは限りません。誤ってハイパーリンク付きのセルをクリックすると、意図せずWebサイトが開いてしまうこともあります。そこで「テキストは残したまま、ハイパーリンクだけを削除したい」というニーズが生まれます。本記事では、Excelの文字列を保持しながら、すべてのハイパーリンクを削除する基本的な方法を5つご紹介します。 練習用ワークブックについて 以下の手順は、実際にハイパーリンクが設定されたサンプルデータを使って確認できます。ご自身のブックでも同じ流れで試してみてください。 Excelですべ