Excel VBA

[ExcelVBA] シートをアクティブに[Activate・Selectメソッド]

2020年3月26日

 

 

本記事はエクセル2019で動作確認を行っています。

 

困ってます
ExcelVBAを使用してシートを参照する方法を教えて下さい。

 

本記事はこのような疑問にお答えします。

 

 

まず前提としてエクセルでのシートのオブジェクトについて理解しておきましょう。

 

1つのブックには表やグラフを扱う「ワークシート」グラフを表示する「グラフシート」が複数集まって成り立っています。

VBAでは1つ1つのシートやグラフを

ワークシート→Worksheetオブジェクト

グラフシート→Chartオブジェクト

と呼んでいます。

 

またそれぞれのオブジェクトが集まったものを

Worksheetsコレクション

Chartsコレクション

と呼びます。

 

さらに、それぞれのコレクションが集まったものを

Sheetsコレクション

と呼びます。

 

本記事は頻度が高いワークシートについて触れていきます。

 

Worksheetオブジェクトの記述方法

 

ワークシートをアクティブにするには、まずWorksheetオブジェクトの記述方法を知っておきましょう。

 

(式)

オブジェクト.Worksheets(インデックス番号)

オブジェクト.Worksheets(“ワークシート名”)

 

例としてBook1の左から2つ目のシートの名前が「請求書」だとします。

 

その場合、上記の式にあてはめると、

Workbooks.("Book1").Worksheets(2)

Workbooks("Book1").Worksheets(“請求書”)

となります。

 

オブジェクトには対象のブックを記述しますが、省略するとアクティブなブックのシートを参照します。

 

メモ

SheetsWorksheetsの違いに気をつけましょう。

Sheetsはすべてのオブジェクトを含みます。

例えばシートの並びが

Sheet1,グラフ1,Sheet2で並んでいる場合、Sheet2の記述方法は

Worksheets(2)

Sheets(3)

のように左から何番目かで変わってきます。

 

シートをアクティブにする方法

 

1つのシートを選択するにはActivateメソッドを使用します。

(式)

オブジェクト.Activate

 

Sub シートの選択()

  Worksheets("Sheet1").Activate

End Sub

 

 

複数のシートを選択するにはArray関数Selectメソッドを使用しましょう。

(式)

オブジェクト.Select

 

Sub 複数のシート()

 Worksheets(Array("Sheet1", "Sheet2")).Select

End Sub

 

また、すべてのワークシートを選択したい場合は、

Worksheets.Select

で選択可能です。

 

Chartオブジェクトもすべて選択したい場合は、

Sheets.Select

と記述すればいいのであわせて覚えておきましょう。

 

今回はシートのアクティブ方法について見てきました。

シートの範囲を正しく理解して、正しく範囲選択できるようにしておきましょう。

 

最後まで目を通していただきありがとうございます。

 

-Excel VBA
-

Copyright© Ronpeee blog , 2023 All Rights Reserved.