本記事には広告が含まれています

EB000022_VBAエキスパート(ExcelVBAベーシック)合格講座/第二十二回:コレクション

VBAエキスパート(ExcelVBAベーシック)合格講座/第二十一回:コレクション
RECOMMEND 基礎を固める「最初のバイブル」
Excel VBA Basic 公式テキスト
VBAエキスパート公式テキスト Excel VBA Basic

変数、条件分岐、ループなど、自動化の基礎となる概念を網羅。試験対策としてだけでなく、実務で迷った時に立ち返る「辞書」としても長く使える一冊です。

このページの内容について

このページは、VBAエキスパート(ExcelVBAベーシック)試験合格講座の第二十二回記事です。公式テキスト第4章「VBAの構文」と第9章「シートとブックの操作」の内容について解説します。1時間の講義でお話する程度の分量です。講座受講者の復習での利用を想定しています。

コレクション

コレクションとは

コレクションとはアイテムの集合体のことです。アイテムには値やオブジェクトを指定できます。

公式テキストにはコレクションのことを「同じオブジェクトの集合体である」との表現がありますが、それはExcelVBAの一部の特別なコレクションに限った特性です。

コレクションの宣言

コレクションは変数と同様、宣言して使用します。

Dim コレクションに指定する任意の名称 As Collection

コレクションの作成

コレクションはオブジェクトの一種です。オブジェクトは宣言するだけでは使用できず、オブジェクトを作成もしくは既存のオブジェクトを代入する必要があります。

Set コレクションに指定した名称 = New Collection
Set コレクションに指定した名称 = コレクションオブジェクト

コレクションのメソッド

コレクションには以下の4つのメソッドが用意されています。他のメソッドやプロパティはありません。

メソッド役割
Addコレクションにアイテム(値やオブジェクト)を追加します
Countコレクションに格納されたアイテムの数を数えます
Itemコレクションに格納されたアイテムを取り出します
Removeコレクションに格納されたアイテムを削除します

Addメソッド

引数役割
Addコレクションにアイテム(値やオブジェクト)を追加します
Countコレクションに格納されたアイテムの数を数えます
Itemコレクションに格納されたアイテムを取り出します
Removeコレクションに格納されたアイテムを削除します

「ThisWorkbook」オブジェクトには「WorkSheets」という「WorkSheet」オブジェクトの集合体が含まれています。

コレクションの参照方法

コレクションはオブジェクトの集合体なので、コレクションの中のオブジェクトを特定してメソッドやプロパティを呼び出すことができます。「コレクション名(インデックス)」でオブジェクトを特定します。一部のコレクションは

サンプルコード(クリックでコピー)
Private Sub Test_Collection()
Debug.Print ThisWorkbook.Worksheets(1).Name
End Sub
実行結果

上記サンプルでは「ThisWorkbook」の「WorkSheets」コレクションの一番目のオブジェクトの「Name」プロパティを取得・表示しています。

コレクションもオブジェクト

ややこしいポイントですが、コレクションもオブジェクトの一種です。そのためコレクション自体もメソッドとプロパティを持っています。

サンプルコード(クリックでコピー)
Private Sub Test_Collection2()
Call ThisWorkbook.Worksheets.Add
Debug.Print ThisWorkbook.Worksheets.Count
End Sub
実行結果

上記サンプルでは「ThisWorkbook」の「WorkSheets」コレクションの「Add」メソッドにより、ブックへシートを追加し、その後「Count」プロパティでWorkSheetオブジェクトの数を取得・表示しています。

コレクションは必ずしも複数のオブジェクトが含まれているとは限りません。現在のExcelのデフォルト設定では、ブックを立ち上げた時点でシートは1つしかありません。そのため、WorkSheetsコレクションの中にもWorkSheetオブジェクトは1つしか入っていない状態です。

【PR】VBAエキスパート試験対策記事

当サイトでは、オデッセイコミュニケーションズ社が運営する試験であるVBAエキスパートExcel VBA ベーシックExcel VBA スタンダード)の出題範囲をベースに用語や各種関数の解説などを行っています。試験合格に向けて必須と言われる公式テキストに沿って解説をしています。受験をするか悩んでいる方、テキストとは別視点の解説を見てみたい方、受験はしないがExcelVBA(マクロ)に興味がある方へ向けた記事です。
PR VBAの学習、会社のPCだけで足りていますか?
Microsoft 365 Personal オンラインコード版
Microsoft 365 Personal (1年版)

VBAエキスパート試験の合格には、手を動かす練習量がものを言います。
会社のPCでは試せないコード、壊しても大丈夫な検証環境——自宅にExcelがあれば、学習効率が段違いに上がります。

試験勉強は「読む」だけでは身につきません。
エラーを出して、調べて、動かす。この繰り返しが本当の実力になります。
自宅に自由に使えるExcel環境を持つことは、合格への最短ルートです。

💡 賢い買い方
Microsoft公式の「自動更新」より、Amazonや楽天で「オンラインコード版(1年)」を買う方が安くなることが多いです。セール時期を狙えば、年間2,000〜3,000円の節約も可能。

Excel VBA ベーシックIT資格取得アスパLab
スポンサーリンク

Comment