複数のシートにデータを転記するVBAコードの改善方法

Visual Basic

Excel VBAを使って、複数のシートにデータを転記する方法についての質問です。特に、シート1のデータをシート2やシート3に転記したい場合の解決方法について詳しく解説します。

問題のコード:複数シートに転記したい

質問者の提供されたコードは、シート1のデータを「転記」というシートにコピーするものです。しかし、複数シートにデータを転記する場合、どのように修正すればよいのでしょうか?

Sub 転記()
Dim sh As Worksheet
Dim r1 As Long, r2 As Long
Application.ScreenUpdating = False
Set sh = Worksheets("シート1")
r2 = sh.Cells(Rows.Count, "A").End(xlUp).Row + 1
With Worksheets("転記")
.Range("A16:BM" & .Cells(Rows.Count, "A").End(xlUp).Row).Copy Destination:=sh.Range("A" & r2)
End With
Application.ScreenUpdating = True
End Sub

解決方法:複数シートに転記する方法

このコードを複数シートに転記するために、いくつかの変更を加える必要があります。具体的には、複数のシートをループで回し、それぞれにデータを転記する方法です。

Sub 転記() 
Dim sh As Worksheet, ws As Worksheet
Dim r1 As Long, r2 As Long
Application.ScreenUpdating = False
Set sh = Worksheets("シート1")
r2 = sh.Cells(Rows.Count, "A").End(xlUp).Row + 1
For Each ws In Worksheets
If ws.Name <> "シート1" Then
ws.Range("A16:BM" & ws.Cells(Rows.Count, "A").End(xlUp).Row).Copy Destination:=sh.Range("A" & r2)
End If
Next ws
Application.ScreenUpdating = True
End Sub

コードの説明

この改良されたコードでは、まずシート1のデータを参照し、次にすべてのシートをループして、シート1以外のシートに転記します。`For Each`ループを使用して、`Worksheets`コレクション内のすべてのシートをチェックし、`シート1`以外のシートにデータをコピーします。

まとめ:複数シートへの転記方法

Excel VBAを使って、複数のシートにデータを転記する方法は、シートをループして条件を加えたコードを書くことで簡単に実現できます。上記のコードを参考にして、他のシートにも簡単にデータを転記できるようになります。

コメント

タイトルとURLをコピーしました