マクロを使用したワークシート間のデータ転送(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_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(3852)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。