条件に基づいて行を別のワークシートにコピーするExcel VBA

  • これを共有
Hugh West

対処データ Excelで、あるシートから別のシートへ、基準に基づいて行をコピーすることは、頻繁に行う作業の1つです。 もし、多くの行があり、ある基準に基づいて別のシートにそれらをコピーしたい場合、それは非常に面倒で時間のかかることです。 しかし、Microsoftで ビジュアルベーシックアプリケーション(VBA) を使うと、あるシートから別のシートへデータをコピーするマクロを簡単に作成できます。 今回は 行をコピーする方法 Excel VBA を使って、2 種類の基準で別のワークシートに変換する。 .

例えば、次のようなデータセットが""という名前のワークシートにあるとします。 データ 「ここで、ある条件に基づいて、特定の行を別のシートにコピーしたいとします。

練習用ワークブックをダウンロードする

基準に基づいて別のワークシートに行をコピーする.xlsm

Excel VBAで条件に基づいて別のワークシートに行をコピーする2つの方法

1.テキスト条件に基づいて、別のワークシートに行をコピーする

このデモでは、テキストの条件に基づいて、あるワークシートから別のワークシートへ行をコピーする方法を紹介します。 例えば、次のような営業マンのデータをコピーしたいとします。 バージニア という名前のワークシートに エリアセールス エクセル使い ブイビーエー そのために、まず

➤ プレス ALT+F11 を開いてください。 ブイビーエー ウィンドウに表示されます。

での ブイビーエー ウィンドウに表示されます。

をクリックします ➤。 インサート タブを選択し モジュール .

を開くことになります。 モジュール(コード) ウィンドウを開きます。

➤ 次のコードを モジュール(コード) ウィンドウに表示されます。

 Sub Copy_Criteria_Text() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("C1", Range("C" & Rows.Count).End(xlUp)) .AutoFilter 1, "Virginia" On Error Resume Next .Offset(1).EntireRow.Copy Sheet3.Range("A" & Rows.Count).End(xlUp) .Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating = TrueSheet3.Select End Sub 

という名前のマクロが作成されます。 コピー_基準_テキスト は、Virginia を列挙して検索します。 C という名前のワークシートに含まれるバージニアを含む行を返す。 エリアセールス (Sheet3)です。

その後です。

➤ 閉じるまたは最小化します。 ブイビーエー ウィンドウに表示されます。

➤ プレス ALT+F8

を開くことになります。 マクロ ウィンドウに表示されます。

➤ 選択する コピー_基準_テキスト において マクロ名 ボックスをクリックし 実行 .

その結果、Virginiaのある行は、以下の名前のワークシートにコピーされます。 エリアセールス

続きを読む: Excelで行を別のシートに自動でコピーする方法(4つの方法)

2.行の数を基準にして、別のワークシートにコピーする

では、あるワークシートから別のワークシートに行をコピーする方法を紹介します。 例えば、100000ドル以上の売上データを、次のようなワークシートにコピーしたいとします。 トップセールス そのために、まず

➤ プレス ALT+F11 を開いてください。 ブイビーエー ウィンドウに表示されます。

での ブイビーエー ウィンドウに表示されます。

をクリックします ➤。 インサート タブを選択し モジュール .

を開くことになります。 モジュール(コード) ウィンドウを開きます。

➤ 次のコードを モジュール(コード) ウィンドウに表示されます。

 Sub Copy_Criteria_Number() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("D1", Range("D" & Rows.Count).End(xlUp)) .AutoFilter 1, ">100000" On Error Resume Next .Offset(1).EntireRow.Copy Sheet4.Range("A" & Rows.Count).End(xlUp) .Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating = FALSETrue Sheet4.Select End Sub 

という名前のマクロが作成されます。 コピー基準番号 これは、100000より大きい値を列で検索するものです。 D という名前のワークシートの データ という名前のワークシートに、100000ドル以上の売上高を含む行を返します。 トップセールス (Sheet4)です。

その後です。

➤ 閉じるまたは最小化します。 ブイビーエー ウィンドウに表示されます。

➤ プレス ALT+F8

を開くことになります。 マクロ ウィンドウに表示されます。

➤ 選択する コピー基準番号 において マクロ名 ボックスをクリックし 実行 .

その結果、100000ドル以上の売上高を含む行がコピーされて トップセールス のワークシートがあります。

続きを読む: マクロを使ってエクセルで複数行をコピーする方法(4例)

結論

この記事の2つの方法を使用すると、Excel VBAを使用して、異なる条件に基づいて1つのワークシートから別のワークシートに行をコピーすることができます。 最初の方法は、テキストの基準で、2番目の方法は、数字の基準で使用できます。 どの方法についても混乱がある場合は、コメントを残して自由に感じてください。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。