Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 複数の改行を一つにまとめたい-正規表現

複数の改行を一つにまとめたい-正規表現

対象:Excel2003, Excel2007, Excel2010

Excelは表計算ソフトですが、計算機能もついた表型ワープロソフトとして利用する方は少なくありません。

計算機能付き表型ワープロとしてExcelを利用することを嫌悪する方がいらっしゃる一方で、本来のワープロソフトであるWordが、実は、結構難しいソフトであるため、Excelをワープロ替わりにする方は少なくありません。

Excelをワープロ替わりに利用しているような職場だと、文字列整形に関する要望が、いろいろと出てきます。

複数の改行をまとめて一つにしいたい、という要望はその代表的なものの一つです。

[Alt]+[Enter]で複数の改行を入れられているときに、とりあえず改行を一つにしたいという要望です。

[スポンサードリンク]
最近のWindowsパソコンの環境ならば、VBScriptのRegExpオブジェクト(Regular Expression オブジェクト)を利用した、正規表現を使った、ユーザー定義関数を作るのが一つの方法です。
▼複数の改行を一つにまとめるユーザー定義関数
Function Replace_複数の改行を一つにまとめる(文字列 As String)
 With CreateObject("VBScript.RegExp")
  .Global = True
  .Pattern = "\n+"
  Replace_複数の改行を一つにまとめる = .Replace(文字列, vbLf)
 End With
End Function

Withステートメント内の
  .Global = True
で文字列全体を検索対象にして
  .Pattern = "\n+"
の「+」で1回以上の「\n」改行コードを指定して
  Replace_MltLF_to_SglLF = .Replace(文字列, vbLf)
で、元の文字列から「\n+」を「vbLf」に置換した文字列を、ユーザー定義関数の戻り値にしています。

VBScriptのRegExpオブジェクトのプロパティやメソッドについてはMSDNの「Regular Expression オブジェクトのプロパティとメソッド」をご覧ください。

関連語句
セル内の改行操作, 段落, 表内, Alt+Enter, セル内の開業, セルの中の改行, セルの中で改行位置, 改行を変更

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 複数の改行を一つにまとめたい-正規表現

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

検索


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

.