VBA初学者向け講座 用語解説1 オブジェクトとは?

vba-beg-1-thumbnail VBA

皆さんこんにちは、ZeroTerasu(@ZeroTerasu)です。
 今回からVBA初学者向け講座を連載していきたいと思います。VBAを学び初めの頃は未知の用語が頻出して、用語を勉強するだけで時間があっという間に過ぎてしまうなんてことがあると思います。
 この連載記事では、初学者の方に出来るだけわかりやすくVBAに登場する用語を学んで頂けるよう記事を書いていこうと思っています。

「VBAを勉強し始めたけど専門用語が意味不明!?オブジェクトってなに!?」と思われたことはないでしょうか?

VBAには様々な専門用語が登場しますが、まずはじめに抑えておいて頂きたい用語が今回解説する
オブジェクト」です。

結論オブジェクトとは、「操作の対象となるもの」のことです。

オブジェクトを車を例にして考えてみる

 VBAは、シートセルパーツとしてとらえて、それらのパーツを組み合わせてプログラムを組んでいく手法を取り入れたプログラミング言語です。
 このようなプログラミング手法を「オブジェクト指向プログラミング(Object Oriented Programing (OOP))」と呼ばれます。(現時点では、特に覚える必要はありません。)
 また、VBAにおけるオブジェクトは階層構造になっています。
 オブジェクトの階層構造は、よく車に例えられます。車がパーツの組み合わせで出来ていることを例にして、下記の図のようにオブジェクトの階層構造を説明したいと思います。

オブジェクトと階層構造
車を例にしたオブジェクトと階層構造

1.工場を製造 = エクセルワークブックファイルを生成

2.自動車部品から構成される。 = ワークブックワークシートから構成される

3.エンジンスパークプラグピストンシリンダーヘッドなどのパーツから構成される。 
  = 
  ワークシートセルなどのパーツから構成される

<車のオブジェクトと階層構造>
 上記の車の例では、工場自動車部品エンジンバッテリーボディホイールタイヤ)、エンジン部品スパークプラグピストンシリンダーヘッド)。これら全てがオブジェクト(もの)なのです。工場を動かして(操作して)を作ります。完成したは、様々なパーツ組み合わせて作られています。工場パーツ組み合わせたり操作したりすることがこれからやろうとしているVBAでも行われています。これをオブジェクト指向プログラミングと言います。(オブジェクト(もの)を組み合わせたり、操作してプログラムを作っていきます。)
 各自動車部品(パーツ)から構成され、その自動車部品(ここでは、エンジンを例にしています。)もまたエンジン部品というパーツで構成されていて、ピラミッド構造(階層構造)になっています。

VBAにおけるオブジェクトと階層構造

(上位階層)
1.Applicationオブジェクトエクセル工場

2.Workbookオブジェクトワークブック

3.Worksheetオブジェクト(Workbookオブジェクト構成するオブジェクト)ワークシート(エンジン)

4.RangeオブジェクトCellsオブジェクトRowsオブジェクトColumnsオブジェクト
  (Worksheetオブジェクト構成するオブジェクト
(下位階層)

<VBAのオブジェクトと階層構造>
以下はVBAにおけるオブジェクト(もの)です。
Applicationオブジェクト(エクセルそのもの)
Workbookオブジェクト (一つのエクセルファイル)
Worksheetオブジェクト (一つのシートを表します)
Rangeオブジェクト(範囲またはセルを表します)
Cellsオブジェクト(セルを表します)
Rowsオブジェクト(行を表します)
Columnsオブジェクト (列を表します)

 そして、 WorkbookオブジェクトWorksheetオブジェクト から構成され、 WorksheetオブジェクトCellsオブジェクトRowsオブジェクトColumnsオブジェクトなどから構成されます 。このようにVBAでも車と同様にピラミッド構造(階層構造)が採用されています。
 また、複数の Workbookオブジェクト を一塊にしたものを Workbooksコレクションと言います。(複数のオブジェクトを一塊にしたものをコレクションと言います。)
 同様に、 複数の Worksheetオブジェクト を一塊にしたものを Worksheetsコレクションと言います。

VBAのオブジェクトと階層構造

 VBAで登場するオブジェクトの例とその階層構造を示した例が下記の階層図になります。(会社の組織図と似ていますね。)

VBAのオブジェクトと階層構造の図

代表的なオブジェクトとコレクション

 ここで代表的なオブジェクトコレクションを紹介します。実際のエクセルの画面を色塗りして図解しました。

Applicationオブジェクト:エクセルそのものを指します。
(分かりやすくするため、このオブジェクトをVBAにおけるオブジェクトの最上位と認識頂いて大丈夫です。)

Workbookオブジェクト:一つのワークブックを指します。また、開いている各々のワークブックは、Workbooksコレクションというワークブックの集合体に含まれています。

Worksheetオブジェクト:一つのワークシートを指します。現在開いているブックであれば、そのブックの中にあるそれぞれのシートが Worksheetオブジェクト です。また、ブックの中のそれぞれのワークシートオブジェクトは、Worksheetsコレクションというシートの集合体に含まれます。

Rangeオブジェクト:セルの範囲やセルそのものを指します。

Cellsオブジェクト:セルを指します。

以下に実際に、エクセル画面を用いて各オブジェクトおよびコレクションを分割してみました。

エクセル画面上の各オブジェクトおよびコレクションの分類

上記の図では、3つのエクセルファイルを開いています。それぞれのエクセルファイルの階層構造は下記の通りです。

Workbookオブジェクト(Book1)の階層構造
Workbookオブジェクト(Book1) には、直下にWorksheetオブジェクト(Sheet1)があり、 Worksheetオブジェクト(Sheet1) はRangeオブジェクトから構成されており、RangeオブジェクトはCellオブジェクトから構成されているという階層構造になっています。
Workbookオブジェクト(Book2)の階層構造
Workbookオブジェクト(Book2) には、2つのWorksheetオブジェクト(Sheet1およびSheet2)があり、この2つのWorksheetオブジェクトをまとめてWorksheetsコレクションと呼ぶことが出来ます。各WorksheetオブジェクトはRangeオブジェクトから構成されており、RangeオブジェクトはCellオブジェクトから構成されているという階層構造になっています

Workbookオブジェクト(Book3)の階層構造
  Workbookオブジェクト(Book3) には、3つのWorksheetオブジェクト(Sheet1およびSheet2およびSheet3)があり、この3つのWorksheetオブジェクトをまとめてWorksheetsコレクションと呼ぶことが出来ます。各WorksheetオブジェクトはRangeオブジェクトから構成されており、RangeオブジェクトはCellオブジェクトから構成されているという階層構造になっています

最後に

 ご受講お疲れさまでした。オブジェクトやコレクションは概念的な内容でプログラミング初心者の方にはとっつきにくい内容だと思います。
 概念的な内容を理解する近道は、視覚的なイメージを持って頂くことが一番だと考えており、今回は図を中心にした解説となりました。
 次回は、実際にオブジェクトを操作する内容に進んでいこうと考えております。また、わからなければこの記事の図を参考にして頂き、イメージを持って学習を進めて頂ければと思います。


コメント

タイトルとURLをコピーしました