• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで複数セルからの文字の結合)

Excelで複数セルからの文字の結合

このQ&Aのポイント
  • ExcelのVBAを使用して、複数のセルの内容を結合する方法について質問です。
  • B列からF列までのセルの内容をH列に結合したいのですが、うまくいきません。
  • マクロのコードを実行すると、結果が意図した通りに表示されません。どこが間違っているのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.4

で、このソースを使うとすると For Each c In .Range(.Cells(i, "B"), .Cells(i, "B").Cells(i, "F")) を For Each c In .Range(.Cells(i, "B"), Cells(i, "F")) と直せばうまくいくと思います #2でも指摘されている .Cells(i, "B").Cells(i, "F") ですが、これは .Cells(i, "B")を基点(A1)としたときの.Cells(i, "F") という意味になります そのため、i=1のときは .Range(.Cells(1, "B"), .Cells(1, "B").Cells(1, "F")) ⇒ .Range(.Cells(1, "B"), .Cells(1, "G")) i=2のときは .Range(.Cells(2, "B"), .Cells(2, "B").Cells(2, "F")) ⇒ .Range(.Cells(2, "B"), .Cells(3, "G")) i=3のときは .Range(.Cells(3, "B"), .Cells(3, "B").Cells(3, "F")) ⇒ .Range(.Cells(3, "B"), .Cells(5, "G")) と解釈され、ごらんの有様になるわけです

malius9003
質問者

お礼

ありがとうございます 実は、元々拾い物のソースを改造していたのですが その際は、"B"の部分が"A"になっていました A列に連番(空白が無いセル)を付け加えた事を考慮してなかったです

その他の回答 (4)

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.5

追記:致命的ではない問題点 Do While .Cells(i, "A") <> "" If .Cells(i, "A") <> "" Then Do While の条件で .Cells(i, "A") <> "" としているのだから その直後の If .Cells(i, "A") <> "" Then は常に真となる(If文の意味が無い)と思いまし。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.3

Sub セル内容の連結()  Dim r As Long, c As Long  Dim txt As String  ' A列の一番下までループする  For r = 1 To Cells(65536, 1).End(xlUp).Row   txt = ""   ' B列~F列でループする   For c = 2 To 6    txt = txt & Cells(r, c).Value & "/"   Next c   ' H列に書き込む   Cells(r, 8).Value = txt  Next r End Sub ……? 何か、複雑なこと考えてる?

malius9003
質問者

お礼

ありがとうございます サンプル用のシートでは問題なさそうなので、 本番用のシートで試してみます

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  >For Each c In .Range(.Cells(i, "B"), .Cells(i, "B").Cells(i, "F"))  このRangeはどの範囲を得ようとしているのでしょうか。.Cells(i, "B").Cells(i, "F")が変なのでは? では。

  • yucco_chan
  • ベストアンサー率48% (828/1705)
回答No.1

Sub test() Dim rowc As Long Dim colc As Long rowc = 1 Do While Cells(rowc, 1) <> ""   For colc = 2 To 6     Cells(rowc, 8) = Cells(rowc, 8) + Cells(rowc, colc) + "/"   Next colc rowc = rowc + 1 Loop End Sub これでいいですか? セルに数字が入っているとエラーになりますが。。

関連するQ&A

専門家に質問してみよう