Microsoft Excelでは、アクティブセル行から特定のシートにセルをコピーできます。この記事では、VBAコードを使用して、すべてのシートからデータを転送し、データを1つのワークシートにマージします。ブックにマスターシートを追加し、指定した範囲のデータを1つのシートに保存します。

_サンプルコードは、Sheet2という名前のデータベースシートにコピーされます。

マクロを実行するたびに、セルはsheet2の最後の列の後のデータとともに最後の行の下に配置されます。このマクロは、ActiveCellから列A、Dのセルをコピーします。_

以下はサンプルデータの画像です:

image 1

アクティブセル行からSheet2にセルをコピーするには; VBエディターを起動するには、以下の手順に従う必要があります。

[開発者]タブをクリックし、[コード]グループから[VisualBasic]を選択します

image 2

===

  • [挿入]をクリックしてから[モジュール]をクリックします

image 3

これにより、新しいモジュールが作成されます。標準モジュールに次のコードを入力します

Sub CopyCells()

Dim sourceRange As Range

Dim destrange As Range

Dim Lr As Long

Lr = LastRow(Sheets("Sheet2")) + 1

Set sourceRange = Sheets("Sheet1").Cells( _

ActiveCell.Row, 1).Range("A1:D1")

Set destrange = Sheets("Sheet2").Range("A" & Lr)

sourceRange.Copy destrange

End Sub
Sub CopyCellsValues()

Dim sourceRange As Range

Dim destrange As Range

Dim Lr As Long

Lr = LastRow(Sheets("Sheet2")) + 1

Set sourceRange = Sheets("Sheet1").Cells( _

ActiveCell.Row, 1).Range("A1:D1")

With sourceRange

Set destrange = Sheets("Sheet2").Range("A" _

& Lr).Resize(.Rows.Count, .Columns.Count)

End With

destrange.Value = sourceRange.Value

End Sub
Function LastRow(sh As Worksheet)

On Error Resume Next

LastRow = sh.Cells.Find(What:="*", _

After:=sh.Range("A1"), _

Lookat:=xlPart, _

LookIn:=xlFormulas, _

SearchOrder:=xlByRows, _

SearchDirection:=xlPrevious, _

MatchCase:=False).Row

On Error GoTo 0

End Function
Function Lastcol(sh As Worksheet)

On Error Resume Next

Lastcol = sh.Cells.Find(What:="*", _

After:=sh.Range("A1"), _

Lookat:=xlPart, _

LookIn:=xlFormulas, _

SearchOrder:=xlByColumns, _

SearchDirection:=xlPrevious, _

MatchCase:=False).Column

On Error GoTo 0

End Function

image 4

image 5

===

上記のVBAコードを確認するには; 「A1:D1」の範囲のデータを追加し、F5ショートカットキーを押してマクロを実行します。指定した範囲に保存されているデータは、A1から「Sheet2」にコピーされます

image 6

  • このマクロを再度実行すると;データは次の行に保存されます。下の画像を参照してください:

image 7

上記のマクロの範囲は、要件に合わせて変更できます。結論:*上記のマクロを使用すると、VBAコードを使用してアクティブセル行から新しいシートにセルをコピーできます。

image 48

私たちのブログが気に入ったら、Facebookで友達と共有してください。また、TwitterやFacebookでフォローすることもできます。

_私たちはあなたからの連絡をお待ちしております。私たちの仕事を改善、補完、または革新し、あなたのためにそれをより良くする方法を教えてください。 [email protected]_までご連絡ください