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:書式設定せずに値だけを貼り付ける方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です