シートに関する考察

○Worksheetオブジェクト
ワークシートを表します。
(注釈)
Worksheet オブジェクトは Worksheets コレクションのメンバーです。Worksheets コレクションには、ブックにあるすべての Worksheet オブジェクトが含まれています。
Worksheet オブジェクトは Sheets コレクションのメンバーでもあります。Sheets コレクションには、ブックにあるすべてのシート (グラフ シート、ワークシートの両方) が含まれています。

ワークシート(シート)に関するプロパティやらメソッド(操作)となるオブジェクトのようだ。
なのでブックと同様にイベントもこれに属する。

○Worksheetsオブジェクト
指定されたブックまたは作業中のブックにあるすべての Worksheet オブジェクトのコレクションです。各 Worksheet オブジェクトはワークシートを表します。
(注釈)
Worksheet オブジェクトは Sheets コレクションのメンバーでもあります。Sheets コレクションには、ブックにあるすべてのシート (グラフ シート、ワークシートの両方) が含まれています。

WorksheetsとWorksheetは紛らわしいし判りづらいが、Microsoft自身のヘルプでも間違いがあるくらい混乱するようなものである。
例えば、Worksheet内の各メソッドの説明を読む限りでは、例えば
Worksheets("Sheet1")はWorksheetオブジェクトであるという説明になっている。(つまりWorksheetsオブジェクトではない)
しかしWorksheets内の各メソッドの説明はWorksheets("Sheet1")はWorksheetsオブジェクトであるという説明になっている。
一体どちらなのだろうか。なんにせよ、どちらかが間違いである。

Worksheets.Addの項目やらとの整合性やら他のWebページでの説明を読む感じでは
Worksheets.Add 等と書いた場合にはWorksheetsオブジェクト.Addという形式で
Worksheets("Sheet1") 等と書いた時にはWorksheetオブジェクトであるというのが正しいのだろう。

別の言い方をすれば、引数を持たなければWorksheetsオブジェクト(コレクション)であり、それにワークシートを特定するような名称(番号)を付与すれば特定のワークシートとなり、すなわちWorksheetオブジェクトである、と考えるのが正当だろう。

そう考えるとWorksheetsメソッドにCopyやらMoveやらDeleteがあるのがおかしいということになるのだが。

○Chartオブジェクト
シートの一種だがグラフだけからなるシート。
Excelを使ってグラフを作る時、セルのあるシートに貼り付けるか、専用のシートを作ることができる選択があるが、その後者で作るシートのこと。
そういう意味ではWorksheetと同レベルのオブジェクトである。

○Sheetsオブジェクト
指定されたブックまたは作業中のブックにあるすべてのシートのコレクションです。
(注釈)
Sheets コレクションには、Chart オブジェクトまたは Worksheet オブジェクトを含めることができます。
任意の種類のシートにアクセスする場合には、Sheets コレクションを使用すると便利です。特定の種類のシートだけにアクセスする場合は、その種類のシートのオブジェクトを参照してください。

どうにも判りづらいが、要するにWorkbooks+Chartsというか、WorkbookもChartもひとくくりでシートという概念でまとめているオブジェクトのようだ。
別の言い方をすれば、WorkbookだろうがChartだろうが気にする必要の無い表現のようだ。

要するにSheets("Sheet1")だろうがSheets("Graph1")のようにどちらでもSheetsで指定できるということ。
Worksheets("Graph1")はエラーだし、Charts("Sheet1")もエラーである。

ブックでやったものと同様にシート名の全表示をしてみよう。
Dim wksht As Worksheet
For Each wksht In Worksheets
Debug.Print wksht.Name
Next
comments (2)

コメント

darlenacalamity.wordpress.com | 2017/07/31 04:15 PM
Thank you for any other informative site. The
place else could I get that kind of information written in such an ideal means?

I have a challenge that I am simply now working on, and I have been on the look out for such information.
Do you get taller when you stretch? | 2017/07/29 05:28 AM
hey there and thank you for your information _ I've
certainly picked up something new from right here. I did
however expertise a few technical issues using this web site,
since I experienced to reload the website lots of times previous to I could get it to
load correctly. I had been wondering if your hosting
is OK? Not that I am complaining, but slow loading instances times will very frequently affect your placement in google and could damage your quality score if advertising and marketing with Adwords.
Well I am adding this RSS to my email and could look out for much more of your respective exciting content.
Ensure that you update this again very soon.

Comment Form