- ベストアンサー
エクセルマクロ:セルをまとめる方法
- エクセルのマクロを使用して、特定の条件に基づいてセルをまとめる方法を紹介します。
- 特定の条件に基づいて選択したセルを連結し、結果を1つのセルに表示する方法を学びます。
- この方法を使用すると、例えば特定のマークが付いているセルだけをまとめて表示することが可能です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
○印は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
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! すでに色々回答が出ていますので、参考程度で・・・ 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
お礼
うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えば次のようなマクロにすればよいでしょう。 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
お礼
うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。
- kybo
- ベストアンサー率53% (349/647)
以下の様な感じです。 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
お礼
うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。
- don9don9
- ベストアンサー率47% (299/624)
マクロでないとダメでしょうか? ○が入っている列をA列、A,B,C,Dなどのデータが入っている列をB列とすると C1セルに =IF(A1="○",B1,"") C2セルに =IF(A2="○",IF(C1="",B2,C1&","&B2),C1) と入力して、C2セルの式を下方向にコピーすれば、C列の最終行がお望みの値になると思います。
お礼
うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。
お礼
うまくいきました。 マクロの基本的な言語から学んでいるところ、 本当に助かりました。 アドバイスをいただいた皆様、どうもありがとうございました。