Excel VBAでConcatenateを使用する方法(4つのメソッド)

  • これを共有
Hugh West

Excelでは、2つの文字列を結合して1つの文字列にすることを「連結」といいます。 簡単に言うと、ある列に姓、別の列に名を書いた表があった場合、連結の手続きを使って、一瞬で1つのセルに連結して結合します。 Excelでは、次のような関数があります。 CONCATENATE () を使えば、この連結を行うことができます。 しかし ブイビーエー このような関数は許されません. CONCATENATE () というのは、VBAのコードではうまくいかないからです。 ブイビーエー には組み込み関数がなく、表計算の関数を利用することができません。 そこで、このレッスンでは ブイビーエー Excel で複数のセル、列、行を結合するための連結。

練習用ワークブックをダウンロードする

この練習用ワークブックをダウンロードして、この記事を読みながらエクササイズしてください。

VBA コンカチネート関数.xlsm

VBAのConcatenate関数の紹介

Excelには、VBAのConcatenateのための組み込み関数がないと書きましたが、異なる文字列を演算子で組み合わせることで、関数として動作させることができます。 ここでは、アンパサンドを使用します。 (&) をオペレーターとして使用します。

⟴ 構文

文字列1 = " ファーストテキスト"

文字列2 = " セカンドテキスト"

⟴ 返り値

戻り値 文字列1 & 文字列2

Excel VBAのConcatenate関数の4つの異なる使用法

ここでは、4つの異なるアプローチを用いて、連結処理を行います。 ブイビーエー のコードで実現します。

1.VBAの連結でアンパサンド(&)演算子を使ってセルを結合する

下のスクリーンショットに示すように、2つのカラムのデータコレクションがあり、一方のカラムにファーストネーム、もう一方のカラムにラストネームがあります。 2つのカラムをマージすることで、全体の名前を取得することができます。 なぜなら ブイビーエー には連結のための組み込みメソッドがないので、アンパサンドを使います。 (&) オペレータを、以下の説明に従って操作してください。

ステップ1.

  • まず最初に アルト + F11 を開いてください。 マクロが使えるワークシート。
  • をクリックします。
  • 選択 モジュール .

ステップ2.

  • 2つのセルを1つにまとめるには、次のようにコピー&ペーストします。 ブイビーエー
 Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String String1 = Cells(5, 2).Value String2 = Cells(5, 3).Value Cells(5, 5).Value = String1 & String2 MsgBox (full_string) End Sub 

これです。

  • 文字列1 = Cells(5, 2).Value は最初のセル位置 B5 , 行 5, および列 2 .
  • 文字列2 = Cells(5, 3).Value は2番目のセルの位置 C5 , 行 5, および列 3 .
  • Cells(5, 5).Value = String1 & String2 はリザルトセルの位置 E5 , 行 5 および列 5 .
  • 文字列1 & 文字列2 はアンパサンドで結ばれた2つの文字列です。 (&)

ステップ3.

  • 保存して押す F5 をクリックしてプログラムを実行します。

したがって、その結果を E5 現在のワークシートのセル。

ステップ4.

  • 残りのセルについても同様に手順を繰り返し、下の画像に示すような結果を得ます。

実行するには ブイビーエー コードで、毎回、ExcelファイルがExcelに保存されていることを確認します。 マクロ対応ワークシート(xlsm.) のフォーマットで表示されます。

続きを読む: VBA StrCompをエクセルで使う方法(よくある5つの例)

2.VBAのConcatenateでプラス(+)演算子を使ってセルを結合する

前項で説明したように、アンパサンドを (&) 演算子でセル文字列を結合することもできます。 (+) 記号に置き換えます。 (&) オペレーターに依頼する場合は、以下の手順で行ってください。

ステップ1.

  • 開くには マクロ をExcelで押します。 アルト + F11 .
  • クリック インサート を選択し
  • プログラムページを開いたら、以下を貼り付けます。 ブイビーエー
 Sub Concatenate2() Dim String1 As String Dim String2 As String Dim full_string As String String1 = Cells(5, 2).Value String2 = Cells(5, 3).Value Cells(5, 5).Value = String1 + String2 MsgBox (full_string) End Sub 

これです。

  • Cells(5, 5).Value = String1 + String2 は、私たちが使っているこのラインに加えて (+) の代わりにアンパサンド記号を使用します。 (&)

ステップ2.

  • 貼り付け後、保存して F5 その結果、セル E5 .

  • 最終的な結果を得るには、これまでの手順をもう一度行い、必要なセルを埋めてください。

続きを読む VBA StrConv関数の使い方(5例)

類似の読み物。

  • ExcelのVBAでSubを呼び出す方法(4例)
  • VBA関数で値を返す(配列と非配列の両方の値)
  • ExcelでVBAのDIR関数を使用する方法(7例)
  • ExcelでVBAのUCASE関数を使う(4例)
  • VBAでInStr関数を使う方法(3例)

3.VBAのConcatenateを使って複数の列を追加する

前2回のアプローチでは、2つのセルを結合する方法を説明しました。 しかし、列全体に適用しようとすると、1つずつ追加していくと時間がかかってしまいます。 ここでは、複数の列をトータルで追加する方法を伝授します。 ブイビーエー のコードになります。

ステップ1.

  • まず、開くには マクロ プレス アルト + F11
  • 選ぶ モジュール から インサート タブ
  • 次に、以下を貼り付けます。 ブイビーエー
 Sub ConcatCols() 'B列 & C列をE列に連結 Dim LastRow As Long With Worksheets("Sheet3") LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row With .Range("E5:E" & LastRow) .Formula = "=B5&C5".Value=.数値 End With End With EndSub 

これです。

  • With Worksheets("シート3") は現在のワークシート名です。
  • LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row は最初の列名です。
  • With .Range("E5:E" & LastRow) は、結果の戻りセル範囲です。
  • .数式 = "=B5&C5" は、範囲の最初のセルを結合するための数式です。

ステップ2.

  • そして最後に、保存して F5 をクリックしてプログラムを実行します。

その結果、結果がすべて列で得られることになります。

続きを読む: ExcelでVBA Rndを使う方法(4つのメソッド)

4.VBAのConcatenateを使用して複数の行を結合する

複数のカラムを追加するだけでなく、そのカラムに対応した ブイビーエー 以下のスクリーンショットのように、3つの行を1つに連結します。 連結する手順は以下の通りです。

ステップ1.

  • アクティベート用 マクロ をExcelで押します。 アルト + F11 .
  • 次に、以下を選択します。 モジュール から インサート
  • 行を連結するために ブイビーエー
 Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("B5:D5") For Each rng In SourceRange i = i & rng & " " Next rng Range("B8").Value = Trim(i) End Sub 

これです。

  • Set SourceRange = Range("B5:D5") はソースセルの範囲である。
  • Range("B8").Value = Trim(i) はリターンセル番号です。

ステップ2.

  • 最後に、プログラムを保存して F5 を実行します。

したがって、3 つの行を連結した最終結果は、セル B8 .

続きを読む エクセルで上の行の非表示を解除する方法(7つの方法)

結論

まとめとして、今回の記事で活用方法を分かりやすく説明できたかと思います。 ブイビーエー これらのテクニックを習得して、自分のデータで使ってみてください。 練習帳を見ながら、新しい知識を活用してください。 皆様の暖かいご支援のおかげで、このような勉強会を続けていく意欲が湧いています。

ご不明な点がございましたら、お気軽にお問い合わせください。 また、下記のコメント欄にてご意見をお聞かせください。

があります。 Exceldemy チームは常にお客様のご質問にお答えしています。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。