web-dev-qa-db-ja.com

Excel VBAを使用してセル値とテキストを連結するにはどうすればよいですか?

= Concatenate関数を常に使用する代わりに、自動化したい反復タスクがあります。これまでの私のコードは次のとおりです。

Cells(2, 5).Value = Cells(2, 1).Value&" - "&Cells(2, 2).Value

残念ながら、これにより「コンパイルエラー:予期:ステートメントの終わり」エラーが発生し、「-」が強調表示されます。これらの2つの値の間にテキスト「-」を挟むにはどうすればよいですか?

7
xxxRxxx

Cells(2, 5).Value = Cells(2, 1).Value & " - " & Cells(2, 2).Value

7
paul bica

@ジョシュアはあなたの状況に答えを提供しました。より広範な別のソリューションは、私が以前に使用したものです。ここにコピーされたUDFを参照してください。

Option Explicit
Function ConcatenateRow(rowRange As Range, joinString As String) As String
    Dim x As Variant, temp As String

    temp = ""
    For Each x In rowRange
        temp = temp & x & joinString
    Next

    ConcatenateRow = Left(temp, Len(temp) - Len(joinString))
End Function

次に、Excelファイルでこの数式を使用して、結合するセルの範囲を選択し、セルの間に挿入する文字列(この場合は「-」)を指定します。

3
legendjr

誰が必要かという提案:

Private Sub CommandButton1_Click()
Dim i As Long
Dim j As Long

Dim x As String

i = 1
j = Range("max").Value
x = Cells(i, 2)

For i = 2 To j

x = x & " - " & Cells(i, 2)

Next i

'MsgBox (x)

Range("d1").Value = x

i = 0

End Sub
2
Truongpx