複数列のデータを1列にまとめる/複数行のデータを1行にまとめる |
| スポンサードリンク | |
更新:2025/12/13;作成:2021/8/31
| 複数列のデータを1列にまとめる | 空白のセルを無視する |
| 複数行のデータを1行にまとめる |



| 氏名 | 郵便番号 | 住所 | 性別 |
| 生年月日 | 血液型 | ||
| 長谷川 麻衣子 | 206-0924 | 東京都中央区日本橋本町1-2-8 | 女 |
| 1954年3月24日 | A | ||
| 小林 徳宏 | 207-9463 | 東京都品川区東品川1-2-8 | 男 |
| 1995年9月14日 | A | ||
| 重松 恭子 | 802-7078 | 福岡県福岡市博多区博多駅前2-5-6 | 女 |
| 1996年8月27日 | B | ||
| 黒川 卓也 | 984-9128 | 宮城県宮城郡七ヶ浜町遠山3-4-11 | 男 |
| 1986年1月6日 | O | ||
| 栗田 哲哉 | 505-7632 | 岐阜県多治見市喜多町4-1-6 | 男 |
| 1988年3月12日 | O | ||
| 湯原 知彦 | 108-4112 | 東京都立川市富士見町2-4-4 | 男 |
| 1988年6月3日 | B |




| Sub test() Dim myRng As Range, cn As Long Dim c As Range Set myRng = Range("A1:E5") ’値があるかを判断するセル範囲 ReDim myData(1 To 25, 1 To 1)’空白でないセルのデータを配列に格納します cn = 0 'cnの開始値を1とするため、ここでは0を設定します For Each c In myRng 'セル範囲を1個づつチェックします If c.Value <> "" Then 'セルの値が"" でない場合セルに値を入力します cn = cn + 1 'セルの値が""でない場合はcnの値をカウントアップします myData(cn, 1) = c.Value End If Next c '↓G1セルから下のセルをクリアします。 Range(Range("G1"), Range("G1").End(xlDown)).ClearContents '配列のデータをセルに書き出します Range("G1").Resize(cn, 1).Value = myData End Sub |

| Sub test2() Dim myRng As Range, cn As Long Dim i As Long, j As Long Set myRng = Range("A1:E5") '値があるかを判断するセル範囲 ReDim myData(1 To 25, 1 To 1) cn = 0 'cnの開始値を1とするため、ここでは0を設定します For i = 1 To 5 For j = 1 To 5 If myRng(j, i) <> "" Then cn = cn + 1 'セルの値が""でない場合はcnの値をカウントアップします myData(cn, 1) = myRng(j, i) End If Next j Next i '↓G1セルから下のセルをクリアします。 Range(Range("H1"), Range("H1").End(xlDown)).ClearContents Range("H1").Resize(cn, 1).Value = myData End Sub |

スポンサードリンク
PageViewCounter
Since2006/2/27