Home » エクセルマクロ・Excel VBAの使い方 » VBAのコレクションとは

対象:Excel2007, Excel2010, Excel2013

「macro コレクションとは」
「vba workbooksコレクションとは」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あることに気づきました。

VBA(Visual Basic for Applications)の、コレクションとは、コレクションオブジェクトとは何なのかを調べている方による検索です。

[スポンサードリンク]

コレクションオブジェクトとは

コレクション・コレクションオブジェクトとは何なのかを簡単にまとめると、以下のように言うことができます。


▼コレクション・コレクションオブジェクトとは
同じ種類のオブジェクトをまとめたものがコレクションオブジェクトである。
コレクションオブジェクトの名前は、その個々のオブジェクト・単一オブジェクトの名前の複数形になっていることが多い。
コレクションオブジェクトは、単一オブジェクトとは違うプロパティ・メソッドを持っていることが多い。

「コレクションオブジェクト」と言ったり「コレクション」と言ったりすることがありますが、「コレクションオブジェクト」を省略して「コレクション」と呼んでいるだけと理解してください。

コレクションもオブジェクトの一種です。

Excel VBAの場合、個々のオブジェクト・単一オブジェクトとコレクションオブジェクトについて一番理解やすいのが、WorkbookとWorkbooksです。

一つのブックを表す単一オブジェクトがWorkbookオブジェクトで、WorkbookオブジェクトのまとまったものがWorkbooksコレクションオブジェクトです。

同様に、1枚のワークシートを表す単一オブジェクトがWorksheetオブジェクトで、WorksheetオブジェクトのまとまったものがWorksheetsコレクションオブジェクトです。

「同じ種類のオブジェクトをまとめたものがコレクションオブジェクト」的な説明は、多くの書籍でも行われているので「コレクションとは」という検索をした方なら、どこかで見かけたことが多いはずです。

WorkbooksとWorkbook、WorksheetsとWorksheetのように、コレクションオブジェクトの名前は単一オブジェクトの名前の複数形になっていることが多い、ということも何となく気づいてらっしゃるはずです。(絶対複数形になっているなどとは思い込まないでください。あくまでも、多いだけです。)

同じ種類のオブジェクトをまとめたものがコレクションオブジェクトであること、コレクションオブジェクトの名前は、その個々のオブジェクト・単一オブジェクトの名前の複数形になっていることが多いということをご存知の方には、是非
「コレクションオブジェクトはその個々のオブジェクトとは違うプロパティ・メソッドを持っていることが多い」
ということを理解していただきたいと考えています。

オブジェクトブラウザーでコレクションオブジェクトと個々のオブジェクトの違いを確認する

VBE(Visual Basic Editor)に付属するオブジェクトブラウザーで、Workbooksコレクションオブジェクトを調べると、下図のようなプロパティ・メソッドが存在していることがわかります。

VBAのコレクションとは

この中で上のほうに表示されている

  • Application
  • Count
  • Creator
  • Item
  • Parent

が、Workbooksコレクションオブジェクトのプロパティです。

ちなみに、開いている全ブックにループ処理するときにカウンタ変数・iを使ったFor~Next文で
  For i = 1 to Workbooks.Count
と書くときの「.Count」が、ここで出てきたWorkbooksコレクションオブジェクトのCountプロパティです。

プロパティの下に表示されている

  • Add
  • CanCheckOut
  • Close
  • Open
  • OpenDatabase
  • OpenText
  • OpenXML

が、Workbooksコレクションオブジェクトのメソッドです。

一方、Workbookオブジェクトをオブジェクトブラウザーで調べると下図のように大量のプロパティが存在していることがわかります。

VBAのコレクションとは

この大量のプロパティの下に、メソッドが大量に並んでいます。

Workbooksコレクションオブジェクトと、その個々のオブジェクト・単一オブジェクトであるWorkbookオブジェクトは、まるで違うプロパティ・メソッドを持っています。

同様のことが、WorksheetsコレクションオブジェクトとWorksheetオブジェクトでも言えます。

コレクションとは何だろうといった疑問をお持ちの方は、


同じ種類のオブジェクトをまとめたものがコレクションオブジェクトである。
コレクションオブジェクトの名前は、その個々のオブジェクト・単一オブジェクトの名前の複数形になっていることが多い。
コレクションオブジェクトは、単一オブジェクトとは違うプロパティ・メソッドを持っていることが多い。

ということを、まずは理解されることをおすすめします。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBAのコレクションとは

TrackBack:3

TrackBack URL
「オブジェクト名.プロパティ」という解説に騙されるな from インストラクターのネタ帳
VBA(Visual Basic for Applications)の、オブジェクトを参照する式・オブジェクト式の中で出てくるRangeは、プロパティであ...
VBAのコレクションはItemとCountを必ず持つ from インストラクターのネタ帳
対象:Excel2007, Excel2010, Excel2013 「mac...
VBAで格子罫線を引く-Bordersコレクション from インストラクターのネタ帳
Excel VBAではBordersコレクションを使うと格子罫線を引くことができます。
[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBAのコレクションとは

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.