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の使い方 » ユーザー定義関数 » セル範囲を指定して文字列を結合・連結するユーザー定義関数

[スポンサード リンク]
[スポンサード リンク]

TrackBack:3

TrackBack URL
ユーザー定義関数の説明をダイアログに表示 from インストラクターのネタ帳
対象:Excel 97,2000,2002,2003 このサイトでもこれまでいくつかユーザー定義関数をご紹介してきました。 ・ファイルの最終更新日時を取得したい−LastSaveTime関数 ・数式を別のセルに表示させたい−ViewFormula関数 ・ユーザー定義書式を表示させたい−ViewFormat関数 ...
CONCATENATE関数で改行−CHAR関数 from インストラクターのネタ帳
対象:Excel97,Excel2000,Excel2002,Excel2003,Excel2007 「&」演算子やCONCATENATE関数を利用する...
Googleスプレッドシートで文字列を結合するには from インストラクターのネタ帳
Googleスプレッドシートでも、Excelと同じく文字列結合演算子「&」やCONCATENATE関数が用意されています。CONCATENATE関数の引数...

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

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

検索

最近じっくりと読まれている記事

.