VBA(マクロ) PR

Excel VBA(マクロ)『コレクション』について超簡単解説!初心者でもすぐできる!

記事内に商品プロモーションを含む場合があります

コレクションとは?

Excel VBAにおける「コレクション」とは、関連するオブジェクトのグループを参照するためのオブジェクトです。簡単に言えば、コレクションは同種のオブジェクトのセットと考えることができます。例えば、ワークシートのコレクションは、ワークブック内のすべてのワークシートを含みます。

同種のオブジェクトのまとまりを
「コレクション」と呼びます。

コレクションの利点

  • 組織化: 関連するオブジェクトを一か所にまとめることで、コードを整理しやすくします。
  • 効率的なアクセス: コレクションを使用することで、特定のオブジェクトに簡単かつ効率的にアクセスできます。
  • 拡張性: 新しいオブジェクトをコレクションに追加したり、既存のオブジェクトを削除したりすることが簡単です。

コレクションの操作

コレクション内のオブジェクトは、インデックス(番号)またはキー(名前)を使用してアクセスします。一般的な操作には、以下のようなものがあります。

  1. 要素の追加: Add メソッドを使用して、コレクションに新しいオブジェクトを追加します。
  2. 要素の削除: Remove メソッドを使用して、コレクションから特定のオブジェクトを削除します。
  3. 要素へのアクセス: インデックスまたはキーを使用して、コレクション内のオブジェクトにアクセスします。
  4. 要素の数: Count プロパティを使用して、コレクション内のオブジェクトの数を取得します。
  5. コレクションの走査: For Each ループを使用して、コレクション内のすべてのオブジェクトを走査します。

コレクションの例

以下は、Excel VBAでよく使われるコレクションのいくつかの例です。

  • ワークシートのコレクション: Worksheets コレクションは、ワークブック内のすべてのワークシートを含みます。
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    Debug.Print ws.Name
Next ws
  • セルの範囲: Range オブジェクトは、特定のセル範囲を参照するコレクションとして動作します。
Dim cell As Range
For Each cell In Range("A1:A10")
    Debug.Print cell.Value
Next cell

コレクションのカスタム作成

VBAでは、独自のコレクションも作成できます。これにより、任意のオブジェクトのグループを効率的に管理できます。

  1. コレクションの作成: New Collection を使用して新しいコレクションを作成します。
  2. オブジェクトの追加: Add メソッドを使用してコレクションにオブジェクトを追加します。
  3. コレクションの使用: For Each ループやインデックスを使用してコレクション内のオブジェクトを操作します。

コレクションのエラーハンドリング

コレクションを操作する際には、エラーハンドリングを適切に行うことが重要です。特に、存在しないインデックスやキーにアクセスしようとした場合、エラーが発生します。

ベストプラクティス

  • 明確なインデックスとキーの使用: インデックスやキーを使ってオブジェクトにアクセスする際は、明確でわかりやすい値を使用します。
  • エラーハンドリングの実装: コレクション操作中にエラーが発生する可能性に備えて、適切なエラーハンドリングを実装します。
  • 効率的な走査: For Each ループを使用してコレクションを効率的に走査します。

まとめ

Excel VBAのコレクションは、同種のオブジェクトを効率的に管理するための強力なツールです。コレクションを使用することで、プログラムの可読性が向上し、コードの効率が高まります。コレクションの基本的な操作方法を理解し、独自のコレクションを作成し、効果的に利用することが、VBAプログラミングの鍵となります。

一緒に学んでいきましょう!

【お使いのパソコンにExcelをインストールする】

created by Rinker
¥14,899 (2024/12/23 20:26:25時点 楽天市場調べ-詳細)
マイクロソフト Excel 2021

【オススメExcel書籍はこちらから購入可能!】

created by Rinker
¥1,738 (2024/12/23 21:53:02時点 楽天市場調べ-詳細)

この記事を書いている人

◉てるパパ(telpapa)
本業でExcelを駆使して業務改善を行う
30代会社員