6. ワークシート・オブジェクトの参照・指定  

ワークシートの操作も、セルに続き最もよく使う操作ですね。
この操作は、ワークシートのオブジェクトである「Worksheet」オブジェクトを使うだけでなく、Applicationオブジェクトのプロパティやメソッドも使用します。
そこで、ワークシートの操作を中心に、リファレンスと小技をお届けします。また、ワークシートにはいくつかのイベントが用意されていますので、これらを上手に使用する方法も紹介します。
ワークシートオブジェクトの各プロパティやメソッドを使用する場合は、ワークシートをオブジェクトとして参照する必要があります。
 

@ Worksheetオブジェクトの参照 書式 使用例
ワークシートは、単一ではWorksheetオブジェクトですが、複数のシートが存在しますので、Worksheetsコレクションとして扱われます。
ApplicationオブジェクトのWorksheetsプロパティを使用すると、コレクションの中から、特定のワークシートを参照できます。
このプロパティには、引数を指定する2種類の方法があります。
1つは、ワークシート名で指定する方法です。この場合は、ワークシート名を文字列で引数にセットします。
Application.Worksheets(シート名またはインデックス番号)

【属性】 プロパティ
【所属オブジェクト】 Application・Workbook
【操作対象オブジェクト】 Worksheetsコレクション

<記述例>
Worksheets("Sheet1")
Worksheets(1)

<使用例 シート名で参照>
Worksheets("Sheet1").Range("A1") = "Hello!"

また、シート名の代わりにインデックス番号で指定することもできます。インデックス番号は、ブックに挿入されているシートの一番左端が「1」になります。

<使用例 インデックス番号で参照>
Worksheets(1).Range("A1") = "Hello!"

 

A アクティブなワークシートを取得する 書式 使用例
Excelで、もっとも手前に表示されていて、すぐに操作可能な状態のワークシートを、「アクティブなワークシート」と呼びます。
そして、このアクティブワークシートを参照するプロパティが、Activesheetプロパティです。
マクロ実行中に、シート名はわからないけど、現在アクティブなワークシートを参照したい、という場合に使用すると便利です。
Activesheetプロパティには、ワークシートオブジェクトが格納されていますから、そのままWorksheetオブジェクトのプロパティを操作することができます。
ActiveSheet

【属性】 プロパティ
【所属オブジェクト】 Application・Workbook
【操作対象オブジェクト】 Worksheetオブジェクト

<記述例>
ActiveSheet.Range("A1")

<使用例 アクティブなワークシートのセルに値を代入する>
ActiveSheet.Range("A1") = "Good morning!!"

 

B 指定したシートをアクティブにする 書式 使用例
指定したシートをアクティブにして一番手前に表示したい場合は、Activateメソッドを使用します。
操作対象のオブジェクトに、Worksheetsプロパティを使ってワークシートを指定し、Activateメソッドを実行します。

 

Object.Activate

【属性】 メソッド
【所属オブジェクト】 Worksheet
【操作対象オブジェクト】 Worksheet

<記述例>
Worksheets("Sheet1").Activate
Worksheets(1).Activate

<使用例 ワークシートSheet1をアクティブにする>
Worksheets("Sheet1").Activate

 

 

C ワークシート名を参照・設定する 書式 使用例
WorksheetオブジェクトのNAmeプロパティを使うと、ワークシート名の取得と設定が行えます。プロパティの値は文字列です。
操作対象のオブジェクトには、ActiveSheetプロパティやWorksheetsプロパティなどを使用して、Worksheetオブジェクトを指定します。
Name = "ワークシート名"

【属性】 プロパティ
【所属オブジェクト】 Worksheet
【操作対象オブジェクト】 Worksheet

<記述例>
Worksheets("Sheet1").Name = "月次集計"

<使用例 アクティブなワークシート名を表示する>
MsgBox ActiveSheet.Name

<使用例 ワークシート名を「月次集計」に変える>
Worksheets("Sheet1").Name = "月次集計"

 

 

D ワークシートを選択する 書式 使用例
指定したシートを選択するメソッドです。Activateメソッドと違い、複数のワークシートを選択状態にでき、選択されたシートはすべてアクティブシートになります。また、引数「Replace」を持ち、「False」をセットすると現在アクティブなシートに加え、他のシートを選択状態にできます。複数のシートを選択するには、Array関数を使用します。 Object.Select(Replace)

【属性】 メソッド
【所属オブジェクト】 Worksheet
【操作対象オブジェクト】 Worksheet、
                                 Worksheetsコレクション

<記述例>
Worksheets("Sheet3").Select

<使用例 ワークシートSheet3を選択状態にする>
Worksheets("Sheet3").Select

<応用例 Sheet3とSheet4を選択して、ワークシートの枠線を消す>
Sub 複数のワークシートの枠線を消す()
    Worksheets(Array("Sheet3", "Sheet4")).Select
    ActiveWindow.DisplayGridlines = False
End Sub

 

著作・制作   瀬戸 遥   2004/04.