
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
補足要求です。
1.1行目は見出し行でしょうか。(データは2行目から)
それともデータがいきなり始まっているのでしょうか。
2.メインのシート(結果を出力するシート)は、左から1番目もしくは、2番目に必ずあると
いう前提で良いですか。
3.シート3のみA列に11111が5行あり、
他のシートのA列には、11111がなかった場合、メインのシートに11111のとりまとめを行うのでしょうか。
もし、行う場合は、5行転記すればよいのでしょうか。
No.1
- 回答日時:
参考にしてください。
Sub 同じ値をまとめるマクロ()
Dim ws As Worksheet
Dim wsMain As Worksheet
Dim lastRow As Long
Dim targetValue As Variant
Dim i As Long, j As Long, k As Long
' メインのシート(結果を出力するシート)を設定
Set wsMain = ThisWorkbook.Sheets("メインシートの名前") ' メインシートの名前を設定してください
' メインのシートを初期化
wsMain.Cells.Clear
' 対象のシートからデータをコピー
For Each ws In ThisWorkbook.Sheets
If ws.Index >= 3 Then ' 左から3番目以降のシートを対象に
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
targetValue = ws.Cells(i, 1).Value
If Not IsEmpty(targetValue) Then
' メインのシートで同じ値を探す
For j = 2 To wsMain.Cells(wsMain.Rows.Count, "A").End(xlUp).Row
If wsMain.Cells(j, 1).Value = targetValue Then
' 同じ値が見つかったらデータをコピー
For k = 1 To 84 ' 列数に合わせて調整(CE列までの列数)
wsMain.Cells(j, k).Offset(0, 1).Value = ws.Cells(i, k).Value
Next k
Exit For
End If
Next j
' 同じ値が見つからなかった場合は新しい行を追加
If j > wsMain.Cells(wsMain.Rows.Count, "A").End(xlUp).Row Then
wsMain.Cells(j, 1).Value = targetValue
For k = 1 To 84 ' 列数に合わせて調整(CE列までの列数)
wsMain.Cells(j, k).Offset(0, 1).Value = ws.Cells(i, k).Value
Next k
End If
End If
Next i
End If
Next ws
End Sub
早速ありがとうございます。
誠に申し訳ないのですが、投稿した後に、色々と考えてみたら
質問内容だけでは不足でした。
これはこれで、一度、閉めさせていただきます。
後程、改めて、質問させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
重複するIDのデータを1行にまとめるvbaのコード
Access(アクセス)
-
EXCELで2列を参照し、重複するものを横に並べたい
Excel(エクセル)
-
VBAで指定範囲内の空白セルを左詰めで一括削除したいのですが
Visual Basic(VBA)
-
-
4
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
5
エクセルで複数行に散らばった同一人物の情報を一行にまとめたい
Excel(エクセル)
-
6
Excel VBA マクロで複数列が共通している行を結合したい
Excel(エクセル)
-
7
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
エクセルで、チェックボックス...
-
SUMPRODUCTにて別シートのデー...
-
【マクロ】【配列】3つのシー...
-
【条件付き書式】countifsで複...
-
Excelでの並べ替えを全シートま...
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
Excel VBA ピボットテーブルに...
-
Excelのセルの色を変えた行(す...
-
EXCELのVBAで複数のシートを追...
-
エクセルの列の限界は255列以上...
-
Excel の複数シートの列幅を同...
-
エクセルで横並びの複数データ...
-
オートフィルタ使用時にCOUNTIF...
-
【VBA】複数のシートの指定した...
-
excel 複数のシートの同じ場所...
-
シートをまたぐ条件付き書式に...
-
VLOOKアップ関数の結果の...
-
2つのものが一致時に転記する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】【配列】3つのシー...
-
文字の色も参照 VLOOKUP
-
【条件付き書式】countifsで複...
-
ExcelのVlookup関数の制限について
-
エクセルで、チェックボックス...
-
エクセルの保護で、列の表示や...
-
Excelのセルの色を変えた行(す...
-
EXCELのVBAで複数のシートを追...
-
シートをまたぐ条件付き書式に...
-
Excelでの並べ替えを全シートま...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
SUMPRODUCTにて別シートのデー...
-
【VBA】複数のシートの指定した...
-
Excelに自動で行の増減をしたい...
-
エクセルの列の限界は255列以上...
-
Excel 2段組み
-
VLOOKアップ関数の結果の...
-
excel 複数のシートの同じ場所...
-
Excel VBA ピボットテーブルに...
おすすめ情報
閉める前に、修正が出来たら教えてください。
未だ、試用していないので、何とも言えないのですが、
例:
シート3のA列に111111が5行 C列に222222 ,333333,444444,555555,666666,
シート5のA列に111111が5行 AA列に AAAAAA,BBBBBB,CCCCCC,DDDDDD,EEEEEE
メインのシート(結果を出力するシート)には
A列 111111 C列 222222 AA列 AAAAAA
A列 111111 C列 333333 AA列 BBBBBB
A列 111111 C列 444444 AA列 CCCCCC
A列 111111 C列 555555 AA列 DDDDDD
A列 111111 C列 666666 AA列 EEEEEE
5行転記される。