Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 連続したスペースを改行に置換するユーザー定義関数

連続したスペースを改行に置換するユーザー定義関数

対象:Excel2003, Excel2007, Excel2010

スペースを改行にするために、TRIM関数やSUBSTITUTE関数などを使った数式をご紹介しました。

この数式では1つ以上のスペースが改行になりますが、実務では2つ以上の連続したスペースだけを改行にしたいという要望のほうが、よくあるかもしれません。

[スポンサードリンク]
そんなときのためのユーザー定義関数を作成してみました。
▼連続したスペースを改行にするユーザー定義関数
Function Replace_連続したスペースを改行に(文字列 As String) As String
 Dim txt As String 
 txt = 文字列
 txt = Replace(txt, " ", " ")
 
 With CreateObject("VBScript.RegExp")
  .Global = True
  .Pattern = "\s{2,}"
  Replace_連続したスペースを改行に = .Replace(txt, vbLf)
 End With
End Function

正規表現を使えば、上記のようなコードで連続したスペースを改行に置換できます。

連続する改行を2個の改行にするユーザー定義関数をご紹介していますが、それとよく似ています。

違うのはWithステートメント内の
  .Pattern = "\s{2,}"
  Replace_連続したスペースを改行に = .Replace(txt, vbLf)
の部分です。

Patternプロパティに「\s{2,}」2個以上のスペースを指定している部分と、ユーザー定義関数の戻り値を「.Replace(txt, vbLf)」とReplaceメソッドを使って改行1つにしているところです。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 連続したスペースを改行に置換するユーザー定義関数

「ユーザー定義関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.