VBA開発

指定した文字列の中から指定文字を置換する(Replace関数)【VBA入門】

Replace関数は指定した文字列の中から指定文字を置換(Replace)します。
Replaceメソッドと、今回ご説明するReplace関数は別物です。

違い
Replace関数
  →指定した文字列の中から、文字列を置き換える(置換する)
Replaceメソッド→指定したセル範囲の中から、文字列を置き換える(置換する)

関数説明

Replace関数の構文は以下のように記載します。

 
<span class="typ">Replace</span><span class="pun">(</span><span class="pln">expression</span><span class="pun">,</span><span class="pln"> find</span><span class="pun">,</span><span class="pln"> replace</span><span class="pun">[,</span><span class="pln"> start</span><span class="pun">[,</span><span class="pln"> count</span><span class="pun">[,</span><span class="pln"> compare</span><span class="pun">]]])</span>
 

引数の一覧は以下です。

引数定数(値)説明必須項目
expression置換対象を含む文字列必須
find置換対象文字必須
replace置換文字必須
start検索開始位置
count置換文字列数の指定
※省略の場合は全て置換
comparevbBinaryCompare大文字と小文字を区別する
vbTextCompare大文字と小文字を区別しない

どういった時に使う?

  • CSVから抜き出したJANコードの末尾になぜか半角空白スペースがあるため、削除する。
  • HTML解析している才、不要な改行空白をなくす。

置換は置換でも、スペースや改行コードの削除に使う事が多いかもしれません。

使い方サンプル

Public Sub Call_Sample_Replace()
    Dim temp As String
    
    '■単純に置換
    MsgBox Replace("令和2年", "令和2 ", "2020年")   '令和2年 → 2020年
    
    '■半角空白スペースを除去
    temp = "Hello World"
    temp = Replace(temp, " ", "") 'Hello World → HelloWorld
   
    '■入れ子もできる(全角スペース、半角スペース除去)
    temp = "Hello My World"
    temp = Replace(Replace(temp, " ", ""), " ", "") 'Hello My World → HelloMyWorld

    '■半角スペースを除く9文字目からの文字を抽出
    MsgBox Replace("Hello My World", " ", "", 9) 'Hello My World → World

End Sub

※単純に西暦、和暦を変更するなら以下記事も参考にどうぞ。
西暦→和暦変換-和暦→西暦変換【エクセルマクロ】【DATEVALUE関数】

コメント

タイトルとURLをコピーしました