同じフォーマットで複数シートにある表をまとめるよChatGPTと一緒に作ったやつ
この説明は、ChatGPTで作成しています。
このプロシージャは、ExcelのVBAを使って、選択されている複数のシートにある同じフォーマットの表を、新しく作成した「まとめ」シートに1つにまとめるものです。手作業でコピペする手間を省くために、自動でデータを統合することができます。
プロシージャの仕組み
画面更新の停止
作業中に画面がチラチラしないように、最初に `Application.ScreenUpdating = False` で画面の更新を止めています。選択されているシートの名前を取得
まず、選択されているシートを順番に見て、それぞれの名前を配列 `sName` に入れていきます。「まとめ」シートの作成
次に、新しい「まとめ」シートを作成します。もし既に「まとめ」という名前のシートがあれば、番号(例:「まとめ2」)を追加して重複しないようにしています。見出しのコピー
選択されているシートの中で最初のシートから、1行目にある見出しを「まとめ」シートにコピーします。データの統合
各シートの2行目以降のデータを順番に見て、「まとめ」シートに次々と貼り付けていきます。画面更新の再開
最後に、 `Application.ScreenUpdating = True` で画面の更新を再開します。
このプログラムを使えば、複数のシートに分かれている同じフォーマットのデータを簡単に1つにまとめることができます。たとえば、月ごとの売上データを1つにまとめて全体のレポートを作る時などに便利です。
Sub 同じフォーマットで複数シートにある表をまとめるよChatGPTと一緒に作ったやつ()
Application.ScreenUpdating = False
Dim s, ws As Worksheet
Dim sName(), sheetName As String
Dim count, sheetIndex As Integer
Dim i, lastCol, lastRow, matomeRow As Long
count = 0
ReDim sName(0)
For Each s In ActiveWindow.SelectedSheets
If count >= UBound(sName) Then
ReDim Preserve sName(count)
End If
sName(count) = s.Name
count = count + 1
Next s
'まとめシート作成
sheetName = "まとめ"
sheetIndex = 1
' すでに「まとめ」というシートが存在する場合、末尾に番号を付ける
Dim sheetExists As Boolean
sheetExists = False
For Each ws In ThisWorkbook.Sheets
If ws.Name = sheetName Then
sheetExists = True
Exit For
End If
Next ws
Do While sheetExists
sheetIndex = sheetIndex + 1
sheetName = "まとめ" & sheetIndex
sheetExists = False
For Each ws In ThisWorkbook.Sheets
If ws.Name = sheetName Then
sheetExists = True
Exit For
End If
Next ws
Loop
'まとめシートを新規作成
Dim matomeSheet As Worksheet
ActiveWindow.SelectedSheets(1).Select
Set matomeSheet = Worksheets.Add(Before:=ThisWorkbook.Sheets(1))
matomeSheet.Name = sheetName
'1つめのシートから見出しをコピーしてまとめ用シートに貼り付け
Worksheets(sName(0)).Rows(1).Copy Destination:=matomeSheet.Cells(1, 1)
'各シート2行目以降を貼り付け
For i = LBound(sName) To UBound(sName)
Dim mws As Worksheet
Set mws = Worksheets(sName(i))
lastCol = mws.Cells(1, mws.Columns.count).End(xlToLeft).Column
lastRow = mws.Cells(mws.Rows.count, 1).End(xlUp).row
matomeRow = matomeSheet.Cells(matomeSheet.Rows.count, 1).End(xlUp).row
mws.Range(mws.Cells(2, 1), mws.Cells(lastRow, lastCol)).Copy Destination:=matomeSheet.Cells(matomeRow + 1, 1)
Next i
Application.ScreenUpdating = True
End Sub
ハッシュタグ
#excel #できること #vba #マクロ #自動化 #複数シート #データ統合 #データ集計 #シート作成 #プログラミング初心者 #コード解説 #仕事効率化 #見出しコピー #表管理 #データ管理 #新規シート作成 #ループ処理 #シート名取得 #スプレッドシート #作業効率アップ
Explanation in English
Combine Tables from Multiple Sheets with the Same Format - Created with ChatGPT
This explanation is made with ChatGPT.
This procedure uses Excel VBA to consolidate tables from multiple sheets with the same format into a newly created "Summary" sheet. It saves you the hassle of copying and pasting manually by automating the data integration process.
How the Procedure Works
Stop Screen Updating
To prevent the screen from flickering during processing, the procedure starts by setting `Application.ScreenUpdating = False`.Get Names of Selected Sheets
It goes through the selected sheets one by one and stores their names in the `sName` array.Create a "Summary" Sheet
Next, a new "Summary" sheet is created. If there is already a sheet named "Summary," a number (e.g., "Summary2") is added to ensure there is no duplication.Copy Headers
From the first selected sheet, it copies the headers in the first row to the "Summary" sheet.Combine Data
For each sheet, the procedure then takes the data from the second row onwards and sequentially pastes it into the "Summary" sheet.Resume Screen Updating
Finally, `Application.ScreenUpdating = True` is set to resume screen updating.
By using this program, you can easily consolidate data from multiple sheets into one. It’s particularly useful for situations like combining monthly sales data into a comprehensive report.
Hashtags
#excel #canbeused #vba #macro #automation #multiplesheets #dataintegration #datacombination #sheetcreation #beginnersprogramming #codeexplanation #workefficiency #headercopy #tablemanagement #datamanagement #newsheetcreation #loopprocessing #sheetnameacquisition #spreadsheet #workefficiencyboost
この記事が気に入ったらサポートをしてみませんか?