マクロを使用したワークシート間のデータ転送(Microsoft Excel)
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 [マクロを使用したワークシート間でのデータの転送]
。