Join関数は 配列で要素化した値を文字列連結する時に効く

vbajoineyecatch

配列関数Join関数の使い方について説明します。
文字列を接続する関数ですが、 配列変数で文字列を要素化した時にはこれを使います。
また「区切り文字」も自由に設定できます。

こんにちは、じゅんぱ店長(@junpa33)です。

今回は、文字列同士をつなぐJoin関数についてです。

どういった時に使えるかというと、たとえば、よくあるところでは、

テンプレート上では、セル上で区切られた年月日の表示「年」「月」「日」を、

データ処理上で一つにつなぎたい時にも使うことが出来ます。

ただし、この文字列は配列の要素化しておかないといけませんが・・・

Join関数には配列変数で要素化した値が必要

VBAJoinp003

Join関数は、文字列同士をつなぐ働きをする関数になります。

ただ単につなぐだけではなく、文字列と文字列の間に「区切り文字」を挟み込むことが出来ます。

もちろん、ただ単につなぐだけのこともできます。

Join関数を使うために知っておく必要のあることが一つあります。

Join関数を利用するためには配列変数を使用する必要があります。

一次元配列というものを知っておきましょう。

Join関数の構文

Join関数の構文

  • Join(「文字列の一次元配列」、「区切り文字」)

つなぎたい文字列は、一次元配列の要素になっていることが必要です

「区切り文字」は省略可能です。ただし省略すると自動的に「区切り文字」は半角スペースに指定されます。

全く「区切り文字」を使いたくない場合、ただ単につなぐだけの時は、空文字「””」を指定します。

戻り値はもちろん文字列型になります。

参考記事

  • 一次元配列についてはこちらの記事が参考になります。
vbahairetueyecatch 1次元配列とは。静的配列と動的配列 エクセルVBA

Join関数の使い方は配列変数とペアーで

VBAJoinp004

Join関数の使い方

サンプルとして、「年」「月」「日」と別々のセルに入力されているデータを一つの文字データにまとめてみます。

年月日を8桁の数値として出力します。

エクセルファイルを「名前を付けて保存」の時にも年月日を8桁の数値化して名前に付けるということもあると思います。

そういった時のVBAの自動化コードとしても参考にしてください。

VBAJoin001a
Join関数コードサンプル
設定した変数
  • 一次元配列変数・・・J(2 to 8)
  • B2からD8までのセルの値・・・RV
VBA
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列に出力したデータは形式が「数値型」で出力しています。

VBAJoin002a

参考記事

Join関数の使い方のまとめ

VBAJoinp005

Join関数の説明をしてきましたが、

御存じのように、文字列を接続する方法は、一般的なものとして「&」とか「+」があります。

Join関数を使う場面としては、

文字列を配列要素化した方がVBAコード設計で都合が良い場合での

文字列を接続する方法として考えておけば良いかなと思います。

ですので、そうそう頻繁に使う関数ではないと思います。

やはり普段のメインはアンパサンド「&」使いではないかなと思います。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min