Microsoft ExcelでVBAを使用して一枚に各シートから列または列をコピーし
同じ列の複数のシートからデータをコピーすることが日常業務になる場合があります。このステップは、自動化を使用して回避できます。すべてのシートの列から1つのシートにデータをコピーした後で統合シートを作成する場合は、この記事を読む必要があります。
この記事では、特定の列からデータをコピーして新しいシートに貼り付けるマクロを作成します。
この例の生データは、従業員の部門、個人、および連絡先の詳細を含む3枚のシートを含むExcelワークブック形式の従業員データで構成されています。
異なるシートから新しいシートにデータをコピーするために、マクロ「CopyColumns」を作成しました。このマクロは、「メイン」シートの「マクロの実行」ボタンをクリックして実行できます。
「CopyColumns」マクロは、「Main」シートの後に「Master」という名前の新しいシートを挿入します。 「マスター」シートには、すべてのシートの統合データが含まれます。
コードの説明
Worksheets.Add(after:= Worksheets( “Main”))
上記のコードは、「メイン」ワークシートの後に新しいワークシートを挿入するために使用されます。
If Source.Name <> “Master” And Source.Name <> “Main” Then End If上記のコードを使用して、「Master」および「Main」シートからのデータのコピーを制限します。
Source.UsedRange.Copy Destination.Columns(Last)
上記のコードは、ソースシートから宛先シートにデータをコピーするために使用されます。
ThisWorkbook.Worksheetsの各ソースについてSource.Name = “Master” Then MsgBox “マスターシートは既に存在します”
サブエンドを終了次の場合上記のコードを使用して、「マスター」シートがワークブックにすでに存在するかどうかを確認します。 「マスター」シートがブックにすでに存在する場合、マクロは実行を停止します。
コードについては以下に従ってください
Option Explicit Sub CopyColumns() Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Checking whether "Master" sheet already exists in the workbook For Each Source In ThisWorkbook.Worksheets If Source.Name = "Master" Then MsgBox "Master sheet already exist" Exit Sub End If Next 'Inserting new worksheets in the workbook Set Destination = Worksheets.Add(after:=Worksheets("Main")) 'Renaming the worksheet Destination.Name = "Master" 'Looping through the worksheets in the workbook For Each Source In ThisWorkbook.Worksheets If Source.Name <> "Master" And Source.Name <> "Main" Then 'Finding the last column from the destination sheet Last = Destination.Range("A1").SpecialCells(xlCellTypeLastCell).Column If Last = 1 Then 'Pasting the data in the destination sheet Source.UsedRange.Copy Destination.Columns(Last) Else Source.UsedRange.Copy Destination.Columns(Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True End Sub
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください