
No.2ベストアンサー
- 回答日時:
#1です。
VBAでシートを挿入します。「統合表」と言うシート名に変えます
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("統合表")
j = 2 '統合表のデータ書きこみ開始行
For Each sh2 In ActiveWorkbook.Worksheets
If sh2.Name = "統合表" Then Exit For '統合表は統合対象外
d = sh2.Range("A65536").End(xlUp).Row '各シートの最終行を知る
' MsgBox d
For i = 2 To d '各シートの開始行2から最終行まで統合表に移す
sh1.Cells(j, "A") = sh2.Cells(i, "A")
sh1.Cells(j, "B") = sh2.Cells(i, "B") '列数だけこの後にコードを増やすこと
j = j + 1 '統合表の直下行をポイント
Next i
Next
End Sub
修正や注意が必要な点
(1)もし各シートのデータ開始行が第2行からでない時は、For i = 2 To d の2を変える。
(2)データシートの列数に合わせて
sh1.Cells(j, "B") = sh2.Cells(i, "B")
の下へBのところをC,D、E、F・・
のコードを作っていれてください。
(3)値だけの集積になってます。各列書式は手作業で。
(4)見だし、罫線も手作業で。
この回答への補足
早速ありがとうございます
さっそくやってみましたがマクロを実行すると「実行時エラー'9':インデックスが有効範囲にありません」とエラーになります。
列数は必要なだけ増やしました。
統合表シートは予め作っておかねばならないのでしょうか?予め統合表を作ってマクロを実行するとエラー表時はでませんが、何もおこりません。
よろしくお願いします。
No.4
- 回答日時:
#2です。
>統合表シートは予め作っておかねばならないのでしょうか
YES。初めの部分に、「シートを挿入します。「統合表」と言うシート名に変えます」と説明してます。
>予め統合表を作ってマクロを実行するとエラー表時はでませんが
それで予想通りです。
>何もおこりません。
私はシート3枚+統合表でテスト済みで、上手く行きました。
●「統合表」をシートの最後(一番右端)に移動してやって見てください。
●ツール-マクロ-VBEで、VBEの画面になりますが、そこでメニューの挿入-標準モジュールをクリックして出てくる画面に、#2のコードを貼りつけて、F5キー(実行に当たる)を押してください。(問題は標準モジュール)
●実行する時貼りつけたコードの途中のどこでも1箇所を
クリックしておいて、実行する。範囲外だとエラーや他のVBAコードが実行されることになる。
●#3でご指摘のようにすると良いかもしれません。
統合表が一番左にあると、そこでExitForだと、ForEachの外へ飛んでしまって、終わってしまうのかもしれないので、ThenNextとするのが良いかも知れない。または上述のように一番最後に統合表を持ってくるとか。
●統合表に累積されていく順序は、シートタブの左からの順序です。これもプログラム実行前に、都合の良いようにシート順を並べておいてください。
No.3
- 回答日時:
横レスですが
#2のマクロでは、
「統合表」シートはマクロ実行前に存在しないといけません。
シート名を変更とかでなく、新しく追加しないといけません。
If sh2.Name = "統合表" Then Exit For
を
If sh2.Name = "統合表" Then nextにした方が良いかも
試してないのでわかりませんけど。
ありがとうございました
#4さんで無事解決しました
ただ
If sh2.Name = "統合表" Then Exit Forを
If sh2.Name = "統合表" Then next
に直して実行すると「コンパイルエラー Nextに対するForがありません」というエラーメッセージが出ます
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
左隣のシートをコピーして挿入
-
【 Excel】シートの見出しに自...
-
VBA ワークシートオブジェクト...
-
エクセルのマクロを使った出席...
-
うまくマクロが実行しません
-
エクセルの複数のワークシート...
-
EXCELでマクロを使わずに図形の...
-
エクセルVBAでcmbBoxのプロパテ...
-
エクセルを開いたとき常に同じ...
-
Excelファイルのすべてのシート...
-
マクロを複数シートに実行する...
-
Excelマクロ(Range)につ...
-
エクセルでセルの値をクランプ...
-
【マクロ】アクティブセルの時...
-
マクロで印刷→セルの値から部数...
-
エクセルファイルを開く時、常...
-
エクセルファイルのシート毎の容量
-
特定のセルに数値が入っている...
-
EXCELで複数のシートを一度に「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
マクロを複数シートに実行する...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
Excelのマクロの呼び出し元を知...
-
マクロ 各シートの決められた位...
-
VBA シート名を先月の名前に...
-
メッセージボックスでシート名...
-
複数シートの保護・解除
-
エクセルで、マクロボタンの表...
-
Excel:複数シートから条件に合...
-
エクセルVBAでcmbBoxのプロパテ...
-
EXCELのエラー
-
エクセルで複数のSheetを一括フ...
-
エクセルで串刺ししたシートの...
-
シートを保護した時でも並べ替...
おすすめ情報