配列関数Join関数の使い方について説明します。
文字列を接続する関数ですが、 配列変数で文字列を要素化した時にはこれを使います。
また「区切り文字」も自由に設定できます。
こんにちは、じゅんぱ店長(@junpa33)です。
今回は、文字列同士をつなぐJoin関数についてです。
どういった時に使えるかというと、たとえば、よくあるところでは、
テンプレート上では、セル上で区切られた年月日の表示「年」「月」「日」を、
データ処理上で一つにつなぎたい時にも使うことが出来ます。
ただし、この文字列は配列の要素化しておかないといけませんが・・・
コンテンツ
Join関数には配列変数で要素化した値が必要
Join関数は、文字列同士をつなぐ働きをする関数になります。
ただ単につなぐだけではなく、文字列と文字列の間に「区切り文字」を挟み込むことが出来ます。
もちろん、ただ単につなぐだけのこともできます。
Join関数を使うために知っておく必要のあることが一つあります。
Join関数を利用するためには配列変数を使用する必要があります。
「一次元配列」というものを知っておきましょう。
Join関数の構文
Join関数の構文
- Join(「文字列の一次元配列」、「区切り文字」)
つなぎたい文字列は、一次元配列の要素になっていることが必要です
「区切り文字」は省略可能です。ただし省略すると自動的に「区切り文字」は半角スペースに指定されます。
全く「区切り文字」を使いたくない場合、ただ単につなぐだけの時は、空文字「””」を指定します。
戻り値はもちろん文字列型になります。
- 一次元配列についてはこちらの記事が参考になります。
Join関数の使い方は配列変数とペアーで
Join関数の使い方
サンプルとして、「年」「月」「日」と別々のセルに入力されているデータを一つの文字データにまとめてみます。
年月日を8桁の数値として出力します。
エクセルファイルを「名前を付けて保存」の時にも年月日を8桁の数値化して名前に付けるということもあると思います。
そういった時のVBAの自動化コードとしても参考にしてください。
- 一次元配列変数・・・J(2 to 8)
- B2からD8までのセルの値・・・RV
Option Explicit
Sub VBAJoinテスト()
Dim s As Long, t As Long
Dim J(2 To 4) As String
Dim RV As String
'行毎のループ
For s = 2 To 8
'列毎のループ
For t = 2 To 4
RV = CStr(Cells(s, t))
'一桁数値の場合は前に「0」を付け加える
If Len(RV) = 1 Then
RV = String(1, "0") & RV
End If
J(t) = RV
Next t
'Join関数で配列の要素を連結する
Range("F" & s) = Join(J, "")
Next s
End Sub
【実行結果】
F列に出力したデータは形式が「数値型」で出力しています。
- CStr関数・・・数値型を文字列型に変換する
- Len関数・・・文字列の文字数を返す
- String関数・・・設定の文字を指定回数繰り返す
Join関数の使い方のまとめ
Join関数の説明をしてきましたが、
御存じのように、文字列を接続する方法は、一般的なものとして「&」とか「+」があります。
Join関数を使う場面としては、
文字列を配列要素化した方がVBAコード設計で都合が良い場合での
文字列を接続する方法として考えておけば良いかなと思います。
ですので、そうそう頻繁に使う関数ではないと思います。
やはり普段のメインはアンパサンド「&」使いではないかなと思います。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。