
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(エクセル)
-
エクセルで複数行に散らばった同一人物の情報を一行にまとめたい
Excel(エクセル)
-
-
4
VBAで指定範囲内の空白セルを左詰めで一括削除したいのですが
Visual Basic(VBA)
-
5
VBAで重複するデータがあれば1個だけ残して他の重複セルを"(空白)にしたいのですが
Excel(エクセル)
-
6
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】【配列】3つのシー...
-
Excelのセルの色を変えた行(す...
-
【条件付き書式】countifsで複...
-
EXCELのVBAで複数のシートを追...
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
エクセルの列の限界は255列以上...
-
エクセルで、チェックボックス...
-
複数行の同列に同じ値があった...
-
SUMPRODUCTにて別シートのデー...
-
VLOOKアップ関数の結果の...
-
Excel の複数シートの列幅を同...
-
エクセルで複数のシートを一つ...
-
シートをまたぐ条件付き書式に...
-
Excelに自動で行の増減をしたい...
-
【VBA】ピボットテーブルを既存...
-
エクセルの保護で、列の表示や...
-
エクセル マクロ 標準モジュー...
-
【VBA】シート名と見出しが一致...
-
エクセルで横並びの複数データ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】【配列】3つのシー...
-
文字の色も参照 VLOOKUP
-
【条件付き書式】countifsで複...
-
ExcelのVlookup関数の制限について
-
エクセルで、チェックボックス...
-
エクセルの保護で、列の表示や...
-
Excelのセルの色を変えた行(す...
-
EXCELのVBAで複数のシートを追...
-
シートをまたぐ条件付き書式に...
-
Excelでの並べ替えを全シートま...
-
Excel の複数シートの列幅を同...
-
VBAで繰り返しコピーしながら下...
-
【VBA】複数のシートの指定した...
-
SUMPRODUCTにて別シートのデー...
-
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行転記される。