Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » セル範囲を指定して文字列を結合・連結するユーザー定義関数

セル範囲を指定して文字列を結合・連結するユーザー定義関数

対象:Excel97, Excel2000, Excel2002, Excel2003

複数のセルに入力されているデータを連結する方法をご紹介しました。

このネタで、CONCATENATE関数で「:」(コロン)を使って範囲指定できそうな気がするけれども、できないということを指摘しました。

でも、やっぱりそういう要望はあるわけです。

[スポンサードリンク]

このようなないけれどあったら便利そうな機能は、VBA(Visual Basic for Applications)で作ってしまいましょう。

▼指定したセル範囲の文字列を連結するユーザー定義関数
Function ConcatenateRangeText(セル範囲 As Range) As String

 Dim rng As Range
 Dim ret As String: ret = ""

 For Each rng In セル範囲
  ret = ret & rng.Text
 Next

 ConcatenateRangeText = ret

End Function

上記のコードをVBE(Visual Basic Editor)を起動して標準モジュールに貼り付ければ、普通のワークシート関数と同様に使えます。

A1セルからA3セルにデータが入力されているときに、A4セルに「=ConcatenateRangeText(A1:A3)」と入力してやれば、A4セルにA1セルからA3セルのデータが連結されて表示されます。

なお、CONCATENATE関数はあくまでデータを連結するので、書式も含んで連結をするにはTEXT関数で書式指定する必要があることをご紹介しました。一般的には書式を含んで結合することの方が多いと思うので、ConcatenateRangeText関数では、For Eachループの中でTextプロパティを取得して連結しています。(その意味も含めて関数の名前を、ちょっと長いですがConcatenateRangeTextとしました。)

CONCATENATE関数同様、値そのものを連結したいのであればFor Eachループの中でValueプロパティを連結してください。その場合関数名はConcatenateRangeValueでしょうか。

関連語句
自作関数,テキストの結合, 2つのセルの情報を1つのセルに記入, 2つのセル内容を1つに, 左右のセル文字をくっつける, セルとセルをたす, 文字列結合
[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » セル範囲を指定して文字列を結合・連結するユーザー定義関数

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » セル範囲を指定して文字列を結合・連結するユーザー定義関数

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

検索


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

.