VBA:ワークシートの移動

目次

VBAでワークシートを移動する基本

VBAでワークシートを移動する基本的な方法について解説します。

① ワークシートをワークブックの末尾に移動する方法

ワークシートをワークブックの末尾に移動するには、ActiveSheet.Move after:=Sheets(Sheets.Count) というコードを使用します。このコードは、現在アクティブなワークシートをワークブックの最後に移動させる方法です。Sheets.Count はワークブック内のシート数を返し、これを after 引数に指定することでシートの最後の位置を指定します。

② ワークシートを新規ブックに移動する方法

ワークシートを新しいワークブックに移動させるには、ActiveSheet.Move と記述します。これにより、アクティブなワークシートが新しいワークブックに移動されます。引数を省略すると、新しいワークブックが自動的に生成され、選択したシートがそこに移動されます。

③ 複数のワークシートを移動する方法

複数のシートを一度に移動するには、Sheets(Array("Sheet1", "Sheet2")).Move after:=Sheets(Sheets.Count) のように配列を使用します。この方法で、指定された複数のシートがワークブックの末尾に移動されます。

④ 一枚のシートだけを別ブックに移動する際の注意点

一枚のシートだけを別ブックに移動する際には、移動後に元のブックに少なくとも一枚のシートが残るように注意する必要があります。もしワークブックにシートが一枚しかない場合、そのシートを移動しようとするとエラーが発生します。

サンプルコード

ワークシートをワークブックの末尾に移動

Sub MoveSheetToEnd()
    ' アクティブなシートをワークブックの末尾に移動
    ActiveSheet.Move After:=Sheets(Sheets.Count)
End Sub

このコードは、現在アクティブなワークシートをワークブックの最後の位置に移動します。

ワークシートを新規ブックに移動

Sub MoveSheetToNewWorkbook()
    ' アクティブなシートを新しいワークブックに移動
    ActiveSheet.Move
End Sub

このコードは、アクティブなワークシートを新しいワークブックに移動させます。

複数のワークシートをまとめて移動

Sub MoveSheetBeforeAnother()
    ' "Sheet1" を "Sheet3" の前に移動
    Sheets("Sheet1").Move Before:=Sheets("Sheet3")
End Sub

このコードは、”Sheet1″ を “Sheet3” の前に移動させます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次