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

vbajoineyecatch

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

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

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

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

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

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

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

「関数リファレンス」を調べる

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

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

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

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

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

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

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

Join関数の構文

Join関数の構文

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

 

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

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

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

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

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

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

Join関数の使い方

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

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

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

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

VBAJoin001a

Join関数コードサンプル

設定した変数

  • 一次元配列変数・・・J(2 to 8)
  • B2からD8までのセルの値・・・RV

Join関数テストコード

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

MEMO
そのほかの利用した関数

CStr関数・・・数値型を文字列型に変換する

vbastrcstreyecatch Str関数とCStr関数 データ型変換方法の知っておくべき違いと使い方

Len関数・・・文字列の文字数を返す

vbaleneyecatch Len関数・LenB関数で文字列の文字数を知る方法。使用例で解説します

String関数・・・設定の文字を指定回数繰り返す

VBAStringeyecatch String関数の使い方は文字を指定した数だけ並べることが出来る

Join関数の使い方のまとめ

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

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

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

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

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

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

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

エクセルVBAの独習のためのツール

エクセルVBAを独習を始めようとしたときに、まず最初につまづくことがあります。

  • 何を使って勉強したらいいのか?
  • どういう参考書を使えばよいのか?

で、悩んでいる方も多いと思います。

そんな方は、以下の記事を参考にしてみてください。何か閃くかもしれません。

基礎知識習得のためのオンライン学習講座の参考記事

Udemy1eyecatch エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

エクセルVBAの独習を始めるためのポイントについて
(トラブル対応可能なおすすめの参考書記事が載っています。)

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

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

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

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