• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:◯ならば、右セルをコピーし、1セルにまとめるマクロ)

エクセルマクロ:セルをまとめる方法

このQ&Aのポイント
  • エクセルのマクロを使用して、特定の条件に基づいてセルをまとめる方法を紹介します。
  • 特定の条件に基づいて選択したセルを連結し、結果を1つのセルに表示する方法を学びます。
  • この方法を使用すると、例えば特定のマークが付いているセルだけをまとめて表示することが可能です。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

○印はA列としています。 Sub Test()   Dim v(), i As Long   Dim c As Range   For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))     If c.Value = "◯" Then       i = i + 1       ReDim Preserve v(1 To i)       v(i) = c.Offset(, 1).Value     End If   Next   MsgBox Join(v, ",") End Sub

penichi
質問者

お礼

うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんにちは! すでに色々回答が出ていますので、参考程度で・・・ C1セルに表示するようにしてみました。 Sub test() Dim i As Long, str As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1) = "○" Then str = str & Cells(i, 2) & "," End If Next i Range("C1") = Left(str, Len(str) - 1) End Sub こんな感じではどうでしょうか?m(_ _)m

penichi
質問者

お礼

うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

例えば次のようなマクロにすればよいでしょう。 Sub 文字の連結() Dim i As String Dim m As String Dim myStr As String Dim myStr1 As String i = 1 m = 0 Do i = i + 1 If Cells(i, 1) = "○" Then myStr = Cells(i, 2).Value m = m + 1 If m = 1 Then myStr1 = myStr Else myStr1 = myStr1 & ", " & myStr End If End If Loop Until Cells(i, 2) = "" Cells(2, 3) = myStr1 End Sub

penichi
質問者

お礼

うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

以下の様な感じです。 Sub macro() Dim C As Range, T As String For Each C In Range("A1:A4") ’A列の範囲 If C.Value = "◯" Then If T = "" Then T = C.Offset(, 1).Value Else T = T & "," & C.Offset(, 1).Value End If End If Next C MsgBox T End Sub

penichi
質問者

お礼

うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.1

マクロでないとダメでしょうか? ○が入っている列をA列、A,B,C,Dなどのデータが入っている列をB列とすると C1セルに =IF(A1="○",B1,"") C2セルに =IF(A2="○",IF(C1="",B2,C1&","&B2),C1) と入力して、C2セルの式を下方向にコピーすれば、C列の最終行がお望みの値になると思います。

penichi
質問者

お礼

うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。