Excel VBAでシートを移動する:Move

VBA でシートを移動するには、Move メソッドを使用します。ここでは、Move メソッドの使い方について説明します。

Move メソッドの使い方

Move メソッドの構文は以下の通りです。

移動するシート.Move(Before, After)

Move メソッドでは、引数を使用してシートの移動位置を決定します。指定したシートの前、あるいは後ろに挿入するかを引数で指定します。

引数のシートを指定するときは Before や After の後にコロンとイコール := をつけて指定します。この Before と After を同時に指定することはできません

もし引数に何も指定しなかった場合は、新規のブックに移動されます。

以下は、Sheet1 を Sheet2 の後ろに移動する例です。

Worksheets("Sheet1").Move After := Worksheets("Sheet2")

シートを移動すると、移動したシートがアクティブの状態になります。

上のプログラムを実行するとシートが移動しますが、シートが既に指定した位置に存在する場合は何も起きません。

シートを先頭に移動する

以下は、Sheet3 を先頭の位置に移動する例です。

Worksheets("Sheet3").Move Before := Worksheets(1)

引数の Before に1番目のシートを指定することで、先頭の位置にシートを移動することができます。

シートを末尾に移動する

以下は、 Sheet1 を末尾の位置に移動する例です。

Worksheets("Sheet1").Move After := Worksheets(Worksheets.Count)

まず、Worksheets.Count を使用して末尾のシートのインデックス番号を取得しています。そのインデックス番号を利用してシートを取得し、 After の引数に指定することによって末尾の位置にシートを移動しています。

シートを別のブックに移動する

以下は、 Sheet1 を新規ブックに移動する例です。

Worksheets("Sheet1").Move

Move メソッドは引数に何も指定しない場合は、新規ブックに移動します。

次は既存のブックに移動する例です。この例では Book1 の Sheet1 を Book2 の Sheet1 の後ろに移動しています。

Workbooks("Book1").Sheets("Sheet1").Move After := Workbooks("Book2").Sheets("Sheet1")

もし移動先のシートに同名のシートが存在する場合は、「Sheet1 (2)」のような形で自動的に名前が付けられます。

シートを複数同時に移動する

Array 関数を使用すれば、複数のシートが同時に移動できます。

以下は、Sheet2 と Sheet3 を Sheet1 の前に移動する例です。

Worksheets(Array("Sheet2", "Sheet3")).Move Before:=Worksheets("Sheet1")

イベント

2017/12/05(火)
Design Thinking Square