このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】文字列を置換する方法/削除する方法

2024年10月23日

【VBA】文字列を置換する方法/削除する方法

今回はVBAで文字列を、①置換する方法と②削除する方法の2つを紹介します。

どちらの場合でもReplace関数を使用します。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

①文字列を置換する方法

Sub ReplaceString()
    
    Dim str As String
    str = "abcdef"
    
    '「c」を「置換」に置き換える
    str = Replace(str, "c", "置換")
    Debug.Print str 'ab置換def
End Sub

Replace関数の基本的な使い方はこのようになります。

サンプルコードでは文字列の中の「c」を「置換」に置き換えています。

Replace(元の文字列, 置換対象の文字列, 置き換える文字列)

Replace関数は「元の文字列」に含まれる「置換対象の文字列」を「置き換える文字列」に置換します。

補足:セルの文字列を置換する

セルの文字列を置換する
Sub ReplaceString2()
    
    'A1セルの「c」を「置換」に置き換える
    Range("A1").Value = Replace(Range("A1").Value, "c", "置換")
End Sub

A1セルの文字列を置き換えたい、という場合はこのようにすれば変換することができます。

②文字を削除する方法(空文字に置換する)

Sub EraseString()
    
    Dim str As String
    str = "abcdef"
    
    '「c」を削除する
    str = Replace(str, "c", "")
    Debug.Print str 'abdef
End Sub

文字を削除したい場合もReplace関数を使います。

削除したい場合は「置き換える文字列」を空文字"" にすれば削除されます。

Replace関数の任意の引数

Replace(expression, find, replace [start[,count[,compare]]])

Replace関数は省略可能な任意の引数が3つ存在します。(start, count, compare)

startはあまり使う機会が少ないので省きますが、あとの2つの引数の使い方を紹介します。

置換する回数(count)

Sub ReplaceCount()
    
    Dim str As String
    
    '「c」を最初の1つだけ「置換」に置き換える
    str = "abcabcabc"
    str = Replace(str, "c", "置換", Count:=1)
    Debug.Print str 'ab置換abcabc
    
   
    '「c」を最初の2つだけ「置換」に置き換える
    str = "abcabcabc"
    str = Replace(str, "c", "置換", Count:=2)
    Debug.Print str 'ab置換ab置換abc
End Sub

引数のcountを設定すると置換する回数が制限されます。

Count:=1とすると最初の1つだけが置換されます。

Count:=2とすると最初の2つだけが置換されます。

大文字と小文字を区別しない(compare)

Sub ReplaceCompare()
    
    Dim str As String
    str = "abcABC"
    
    '「c」を「置換」に置き換える(大文字と小文字を区別しない)
    str = Replace(str, "c", "置換", compare:=vbTextCompare)
    Debug.Print str 'ab置換AB置換
End Sub

デフォルトではReplace関数は大文字と小文字を区別して変換します。

しかし、compare:=vbTextCompareと設定すると大文字/小文字に関係なく置換が行われます。

大文字と小文字の両方を置換したい場合は引数compareにvbTextCompareを設定しましょう。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/11/23 15:08:04時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい