Vba を使用して文字列を連結するにはどうすればよいですか?

VBA コードを使用して 2 つの文字列を連結するには、アンパサンドを使用する必要があります。 2 つの文字列の間にアンパサンドを使用してそれらを結合し、この新しい値をセル、変数、またはメッセージ ボックスに割り当てることができます。同様に、3 つ以上の値を連結することもできます。

後でそれを理解するために簡単な例を見ていきます。

VBA を使用して連結する手順

  1. まず、二重引用符を使用して最初の文字列を入力します。
  2. その後、アンパサンドを入力します。
  3. 次に、二重引用符を使用して 2 番目のテキストを入力します。
  4. 最後に、この値をセルまたは変数に割り当てるか、メッセージ ボックスを使用して値を確認します。
 Sub vba_concatenate() Range("A1") = "Mike" & "Ross" End Sub

区切り文字で連結する

3 番目のアンプサンドを追加するだけで、2 つの文字列の間に区切り文字を使用することもできます。次のコードを考えてみましょう。

 Range("A1") = "Mike" & "-" & "Ross"

上記のコードでは、2 つの文字列に区切り文字を使用し、アンパサンドだけを使用してそれらを結合しました。したがって、基本的に、何かを囲む必要がある場合は常に、その中にアンパサンドを使用する必要があります。

変数を使用して連結する

値を変数に保存し、これら 2 つの変数の値を連結することもできます。次のコードを考えてみましょう。

上記のコードでは、変数として宣言された変数があり、これらの変数に値を割り当てています。最後に、アンパサンドを使用して 3 つの変数を結合し、その結果をセル A1 に割り当てました。

VBAを使用して範囲を連結する

VBA を使用して、セル範囲の値を連結することもできます。次のマクロを考えてみましょう。

 Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("A1:A10") For Each rng In SourceRange i = i & rng & " " Next rng Range("B1").Value = Trim(i) End Sub

上記のコードでは、 FOR NEXT (For ループ)を使用して、連結する範囲をループしました。

したがって、範囲 (A1:A10) 内の各セルに移動して、その値を変数 I に格納し、アンパサンドを使用して各反復で値を連結します。最後に、結合チャンネルをレンジ B1 に設定します。

そして、次のコードは、選択した範囲の値を連結します。範囲を選択してコードを実行するだけです。

 Dim rng As Range Dim i As String For Each rng In Selection i = i & rng & " " Next rng Range("B1").Value = Trim(i)

列全体または行全体を連結する

列全体または行全体を連結したい場合は、loop メソッドを使用しないことをお勧めします。行全体または列全体を結合できる「TextJoin」ワークシート関数を使用できます (次のコードを考えてください)。

 'join values from column A. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("A:A")) 'join values from row 1. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("1:1"))

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です