HOME > エクセルVBA > シートの操作「シートの移動/コピー」「シートの削除」「シートの表示/非示

シートの操作

 このページではシートの移動/コピー、及びシートの削除について説明します。シートの移動/コピーは同一ブック内、他のブック、新規ブックと少し違うので間違えずに使い分けましょう。

シートの移動

 シートの移動はMoveメソッドを使用します。同一のブック内の場合になります。

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

シートの移動

Moveメソッド

 別のブックにシートを移動したい場合は、ブックを指定する必要があります。下記の記述ですと、ワークシート「SS1」をワークブックaaa.xlsのシート3枚目の左側に移動します。

 Worksheets("SS1").Move Befor:=Workbooks("aaa.xls").sheets(3)

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

別のブックにシートを移動、移動済み

 新規のブックにシートを移動する方法もあります。Moveメソッドの引数を省略すると新規のブックに「Sheet3」が移動します。

 Worksheets("Sheet3").Move

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

シートのコピー

 シートのコピーはシートの移動で使用したMoveメソッドの変わりにCopyメソッドを利用します。同一ブック内のコピー、他のブックへのコピー、新規ブックへのコピー、3つともCopyメソッドに置換えて試してみましょう。

シートの削除

 シートの削除自体はDeleteメソッドで簡単に削除することが出来ます。しかしDeleteで削除すると「シートの削除確認のメッセージ」が、現れます。

 ある程度の規模のプログラムになるとやはり何らかのメッセージで動きが止まるのは非常にもどかしいです。不要なメッセージは表示されないような方法で記述していきましょう。

 DisplayAlertプロパティを使用することでメッセージを非表示にすることが出来ます。シートの削除以外にも出てくる様々な確認メッセージに有効です。

 Falseを代入することで警告がなくなります。またプロシージャ終了時点でプロパティはTrueに戻しておきましょう。自動でも戻りますが、基本的に明示しておいたほうが後々わかりやすいプログラムになります。

Application.DisplayAlert = False
Worksheets("Sheet2").Delete
Application.DisplayAlert = True

シートの表示/非表示

 エクセルでシートを表示/非表示にするときはメニューバーの「書式」-「シート」-「表示しない」、もしくは「再表示」に切り替えることで出来ました。

シートの表示/非表示

 エクセルVBAでも表示/非表示を切り替えることが出来ます。VisibleプロパティをFalse(非表示)、True(表示)に切り替えます。

 Worksheets("Sheet3").Visible = False
 Worksheets("Sheet3").Visible = True

 VBAにはエクセルでは出来ないことも可能にすることが出来ます。シートを非表示にしてエクセルからは表示できないようにすることが出来ます。組み込み定数の「 xlveryHidden」を利用すると非表示になり、エクセルからは表示できなくなります。

 再表示する場合は「True」もしくは組み込み定数の「 xlsheetVisible」を記述します。

 Worksheets("Sheet3").Visible = xlveryHidden
 Worksheets("Sheet3").Visible = True
もしくは xlsheetVisible

 ここで紹介した組み込み定数「 xlveryHidden」、「 xlsheetVisible」はエクセル2002からの機能です。エクセル2000では使用できない組み込み定数です。

シートの操作2  エクセル職人  セルの操作1

▲TOPへ移動