Leonardは、あるワークシートから別のワークシートにデータを転送するためのマクロを作成しています。両方のワークシートは同じワークブックにあります。彼が転送したいデータは最初のワークシートにあり、名前付き範囲「SourceData」を使用しています。

これは、単一行のデータで構成されています。 Leonardは、マクロ内で、このデータを最初のワークシートから2番目のワークシートの最初の空の行に転送したいと考えていますが、これを行う方法がよくわかりません。

実際にはいくつかの方法がありますが、すべての方法には、ソース範囲の識別とターゲット範囲の識別という2つの前提条件があります。名前が付けられているため、ソース範囲は簡単です。次の方法で、マクロのソース範囲を指定できます。

Set rngSource = Worksheets("Sheet1").Range("SourceData")

ターゲットワークシートの最初の空の行を把握するのは少し難しいです。これを行う比較的簡単な方法は次のとおりです。

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

完了すると、rngTarget変数は、最初の空の行が何であれ、セルAの範囲を指します。 (この場合、空の行は、列Aに何かがない行として定義されます。)

これで、必要なのは、Copyメソッドで使用するこれらのソース範囲とターゲット範囲を配置することだけです。

Sub CopySource()

Dim rngSource As Range     Dim rngTarget As Range     Dim iRow As Integer

Set rngSource = Worksheets("Sheet1").Range("SourceData")

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1     Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

rngSource.Copy Destination:=rngTarget End Sub

範囲を定義したら、ソース範囲でCopyメソッドを使用し、操作の宛先としてターゲット範囲を指定するだけでよいことに注意してください。完了すると、元のデータはまだソース範囲内にありますが、ターゲットにコピーされています。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(6131)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります:

link:/ excel-Transferring_Data_between_Worksheets_Using_a_Macro [マクロを使用したワークシート間でのデータの転送]