Vba: 表示されている線を別のシートにコピーする方法
VBA で次の構文を使用すると、表示されている行のみをあるシートから別のシートにコピーできます。
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
この特定のマクロは、 Sheet1の範囲A1:D999にある表示されている各行をコピーし、 Sheet2のセルA1から貼り付けます。
注: Application.CutCopyMode = False行は、マクロの実行後にカット アンド コピー モードを無効にすることを指定します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用して、表示されている行を別のシートにコピーする
シート 1に、さまざまなバスケットボール選手に関する情報を含む次のデータセットがあるとします。
ここで、チーム名が Mavs または Spurs に等しい行のみを表示するフィルターをデータセットに適用するとします。
ここで、VBA を使用して、表示されているセルのみをSheet1からSheet2 にコピーするとします。
これを行うには、次のマクロを作成できます。
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
このマクロを実行すると、 Sheet2に次の出力が表示されます。
Sheet1に表示されているすべての行がコピーされてSheet2に貼り付けられていることに注意してください。
注 #1 : マクロ内でxlCellTypeVisible を使用して、表示されているセルのみをコピーすることを指定しました。
注 #2 : VBA Copyメソッドの完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 最後に使用された行を見つける方法
VBA: 条件に基づいて行を別のシートにコピーする
VBA:書式設定せずに値だけを貼り付ける方法