Vba: 文字列から文字を削除する方法
VBA のReplace()メソッドを使用すると、文字列から文字を削除できます。
次の例は、Excel の次の文字列リストを使用してこのメソッドを実際に使用する方法を示しています。
例 1: VBA を使用して、文字列内のすべての文字を削除します (大文字と小文字を区別します)。
各文字列から「this」を削除したいとします。
これを行うには、次のマクロを作成できます。
Sub RemoveChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(Range(" A " & i), " this ", "") Next i End Sub
このマクロを実行すると、次の出力が表示されます。
列 B には、列 A の各文字列から「this」が出現するたびに削除されて表示されます。
このマクロでは大文字と小文字が区別されることに注意してください。
つまり、「this」の出現はすべて削除されますが、「this」の出現はすべてそのまま残されます。
例 2: VBA を使用して、文字列内のすべての文字を削除します (大文字と小文字は区別されません)。
すべての文字列から (大文字と小文字に関係なく) “this” を削除したいとします。
これを行うには、次のマクロを作成できます。
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "") Next i End Sub
このマクロを実行すると、次の出力が表示されます。
列 B には、列 A の各文字列から「this」が出現するたびに削除されて表示されます。
この置換では大文字と小文字が区別されないことに注意してください。
つまり、「this」が出現するたびに (大文字かどうかに関係なく) 削除されます。
これは、 LCaseメソッドを使用して、各文字列で “this” を検索する前に列 A の各文字列を最初に小文字に変換することで実現できました。
例 3: VBA を使用して、文字列内の最初の N 個の文字を削除します。
各文字列から最初に出現した “this” だけを (大文字と小文字に関係なく) 削除したいとします。
これを行うには、次のマクロを作成できます。
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "", Count:=1) Next i End Sub
このマクロを実行すると、次の出力が表示されます。
列 B には、列 A の各文字列が表示され、最初に出現した「this」のみが削除されます。
特定の文字列の最初の出現のみを削除するためにCount:=1を使用しましたが、特定の文字列の最初のn出現の代わりに、1 を削除したい任意の値に置き換えることができることに注意してください。
注: VBA Replaceメソッドの完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、VBA を使用して他の一般的なタスクを実行する方法について説明します。
VBA: 文字列内の文字の出現を数える方法
VBA: 文字列に別の文字列が含まれているかどうかを確認する方法
VBA: 特定のテキストを含むセルを数える方法