アルファベット文字を取り除く(Microsoft Excel)
ブライアンは、いくつかのアルファベット文字を含むセルがたくさんあるワークシートを持っています。彼は、セルのどこに表示されていても、それらのアルファベット文字だけを取り除く方法を探しています。たとえば、セルに「ABC123」が含まれている場合、ブライアンは「ABC」を削除したいと考えています
残りは「123」だけです。同様に、「A3B2C1」は「321」になるはずです
「#45P%」は「#45%」になります。
この問題に取り組む唯一の方法は、マクロを使用することです。文字を所定の位置で単純に削除したい場合は、影響を与えるセルを選択してから、各セルを調べて問題のある文字を削除するマクロを実行することで実行できます。これを行うには多くの方法があります。次のマクロは簡単なアプローチです。
Sub CleanText1() Dim rngCell As Range Dim intChar As Integer Dim strCheckString As String Dim strCheckChar As String Dim intCheckChar As Integer Dim strClean As String For Each rngCell In Selection strCheckString = rngCell.Value strClean = "" For intChar = 1 To Len(strCheckString) strCheckChar = Mid(strCheckString, intChar, 1) intCheckChar = Asc(strCheckChar) Select Case intCheckChar Case 65 To 90 'upper case chars 'Do nothing Case 97 To 122 'lower case chars 'Do nothing Case 128 To 151 'special language chars 'Do nothing Case 153 To 154 'special language chars 'Do nothing Case 159 To 165 'special language chars 'Do nothing Case Else strClean = strClean & strCheckChar End Select Next intChar rngCell.Value = strClean Next rngCell End Sub
文字を取り除くこのアプローチの良いところは、Select Case構造でチェックされているもの(および実行されているアクション)を変更するだけで、他の文字を簡単に取り除くことができることです。
元のセルを変更したくない場合は、文字列の「クリーンな」バージョンを返すユーザー定義関数をまとめることをお勧めします。これは、前のマクロにいくつかの変更を加えることで実現できます。
Function CleanText2(ByVal sRaw As String) As String Dim intChar As Integer Dim strCheckString As String Dim strCheckChar As String Dim intCheckChar As Integer Dim strClean As String Application.Volatile strClean = "" For intChar = 1 To Len(sRaw) strCheckChar = Mid(sRaw, intChar, 1) intCheckChar = Asc(strCheckChar) Select Case intCheckChar Case 65 To 90 'upper case chars 'Do nothing Case 97 To 122 'lower case chars 'Do nothing Case 128 To 151 'special language chars 'Do nothing Case 153 To 154 'special language chars 'Do nothing Case 159 To 165 'special language chars 'Do nothing Case Else strClean = strClean & strCheckChar End Select Next intChar CleanText2 = strClean End Function
この関数を使用するには、次のような数式をセルに入れることができます。
=CleanText2(A1)
その結果、数式はセルA1の内容を乱すことなく、セルA1にあるものすべての「クリーンな」バージョンを返します。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(9011)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。