サイトについて      連絡先   検索

VBA シートを移動する

はじめに

Excel VBA マクロのシートを移動する方法を紹介します。

Sheets.Move メソッドまたは Worksheets.Move メソッドでシートを移動できます。

複数まとめてやシートの位置、ワークブックなどを指定できます。

  • 目次
    • シートを移動する
    • 複数のシートを移動する

シートを移動する

sheet1

Sheets の引数にインデックスかシート名を指定すると、そのシートを移動できます。

1 番目のシートを移動するにはSheets(1).MoveまたはWorksheets(1).Moveを入力します。1 番左のシートが 1 です。


Sheets(1).Move        ' 1 番目のシートを移動
Sheets("Sheet1").Move ' シート「Sheet1」を移動

Worksheets(1).Move        ' 1 番目のシートを移動
Worksheets("Sheet1").Move ' シート「Sheet1」を移動

Move の引数を指定しないと、新しいワークブックにシートが移動されアクティブになります。

3

Move の引数を指定して、同じワークブックに移動でき、アクティブになります


Call Sheets(1).Move(Before:=Sheets(3))        ' 3 番目のシートの前に移動
Call Sheets(1).Move(After:=Sheets("Sheet3"))  ' シート「Sheet3」の後ろに移動
4

引数には次のものがあり、すべて省略できます。

引数「Before」指定したシートの前にコピーします。引数「After」と一緒に指定できません。
引数「After」指定したシートの後ろにコピーします。引数「Before」と一緒に指定できません。

Sheets と Worksheets の違いはワークシート以外を取得するかどうかです。

このためグラフシートなどは Worksheets.Move で移動できません。

1 番左や右に移動する

シートを 1 番左に移動するには、引数にBefore:=Sheets(1)を入力します。

シートを 1 番右に移動するには、引数にAfter:=Sheets(Sheets.Count)を入力します。


Call Sheets(1).Move(Before:=Sheets(1))           ' 1 番左に移動
Call Sheets(1).Move(After:=Sheets(Sheets.Count)) ' 1 番右に移動

別のワークブックに移動

Workbooks の引数にインデックスかブック名を指定すると、そのブックのシートに移動できます。

ブック名「Book2.xlsx」のブックに移動するにはWorkbooks("Book2.xlsx").SheetsまたはWorkbooks("Book2.xlsx").Worksheetsのように入力します。


' ブック「Book2.xlsx」のシート「Sheet2」の前に移動
Call Sheets(1).Move(Before:=Workbooks("Book2.xlsx").Sheets("Sheet2"))

' 2 番目のブックの 2 番目のシートの後ろに移動
Call Sheets(1).Move(After:=Workbooks(2).Sheets(2))

複数のシートを移動する

1 番目と 2 番目のシートを移動するにはSheets(Array(1, 2)).MoveまたはSheets(Array("Sheet1", "Sheet2")).Moveのように入力します。


Sheets(Array(1, 2)).Move               ' 1 番目と 2 番目のシートを移動
Sheets(Array("Sheet1", "Sheet2")).Move ' シート「Sheet1」と「Sheet2」を移動

Worksheets(Array(1, 2)).Move               ' 1 番目と 2 番目のシートを移動
Worksheets(Array("Sheet1", "Sheet2")).Move ' シート「Sheet1」と「Sheet2」を移動

引数に配列でインデックスやシート名を指定します。

すべてのシートを移動

すべてのシートを新しいワークブックに移動すると「エラー 1004 アプリケーション定義またはオブジェクト定義のエラーです。」が発生します。

このため、必ず 1 つはシートを残す必要があります。

  • 目次
    • シートを移動する
    • 複数のシートを移動する