同じ列の複数のシートからデータをコピーすることが日常業務になる場合があります。このステップは、自動化を使用して回避できます。すべてのシートの列から1つのシートにデータをコピーした後で統合シートを作成する場合は、この記事を読む必要があります。

この記事では、特定の列からデータをコピーして新しいシートに貼り付けるマクロを作成します。

この例の生データは、従業員の部門、個人、および連絡先の詳細を含む3枚のシートを含むExcelワークブック形式の従業員データで構成されています。

ArrowRaw

異なるシートから新しいシートにデータをコピーするために、マクロ「CopyColumns」を作成しました。このマクロは、「メイン」シートの「マクロの実行」ボタンをクリックして実行できます。

ArrowMain

「CopyColumns」マクロは、「Main」シートの後に「Master」という名前の新しいシートを挿入します。 「マスター」シートには、すべてのシートの統合データが含まれます。

ArrowOutput

コードの説明

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]までご連絡ください