【完全ガイド】Excel VBAでCollectionを使いこなす方法
【完全ガイド】Excel VBAでCollectionを使いこなす方法

【完全ガイド】Excel VBAでCollectionを使いこなす方法

【完全ガイド】Excel VBAでCollectionを使いこなす方法 2024 8/02 広告 Excel 2024年8月2日

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。

SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。

お気軽にお問い合わせください。

目次

【完全ガイド】Excel VBAでCollectionを使いこなす方法

Excel VBAを使っていると、データの管理や操作を効率化するために「Collection」を使うと便利になる場面が多くあります。本記事では、Collectionの基本から実際の使用例までを詳しく解説します。これを読めば、Collectionを自在に操れるようになります!

1. Collectionとは?

Collectionは、複数のオブジェクトや値を一括で管理することができます。配列と似ていますが、異なる点も多いです。例えば、Collectionは、アイテムの追加や削除が簡単で、インデックスだけでなくキーでもアクセスすることができるのが特徴です。

2. Collectionの基本的な使い方

まずは、Collectionの基本的な使い方を見てみましょう。

Collectionの作成 Dim items As Collection Set items = New Collection アイテムの追加 items.Add "りんご" items.Add "バナナ" items.Add "オレンジ" アイテムの取得 Dim item As String item = items(1) ' 結果: りんご アイテムの削除 items.Remove 1 ' 1番目のアイテムを削除 アイテム数の取得 Dim count As Long count = items.Count 3. Collectionの操作方法 For Eachループ処理ができる

配列などでよく使われる、For i = 1 to 100 での繰り返しも使えますが、ForEachで処理した方が早いのでオススメです。

Dim item As Variant For Each item In items Debug.Print item Next item キーを使ったアクセス items.Add "ぶどう", "key1" items.Add "メロン", "key2" Debug.Print items("key1") ' 結果: ぶどう キーを使った削除 items.Remove "key1" 4. 実践的な応用例  学生情報を管理する

以下のコードは、学生の名前とIDをCollectionで管理する例です。

Sub ManageStudents() Dim students As Collection Set students = New Collection ' 学生を追加 students.Add Array("ID001", "鈴木"), "ID001" students.Add Array("ID002", "田中"), "ID002" students.Add Array("ID003", "佐藤"), "ID003" ' 学生情報の表示 Dim student As Variant For Each student In students Debug.Print "ID: " & student(0) & ", 名前: " & student(1) Next student ' 学生の削除 students.Remove "ID002" ' 削除後の学生情報の表示 Debug.Print "削除後の学生情報:" For Each student In students Debug.Print "ID: " & student(0) & ", 名前: " & student(1) Next student End Sub 商品リストを管理する

以下のコードは、商品名と価格をCollectionで管理する例です。

Sub ManageProducts() Dim products As Collection Set products = New Collection ' 商品を追加 products.Add Array("商品A", 1000), "A" products.Add Array("商品B", 1500), "B" products.Add Array("商品C", 2000), "C" ' 商品情報の表示 Dim product As Variant For Each product In products Debug.Print "商品名: " & product(0) & ", 価格: " & product(1) Next product ' 商品の削除 products.Remove "B" ' 削除後の商品情報の表示 Debug.Print "削除後の商品情報:" For Each product In products Debug.Print "商品名: " & product(0) & ", 価格: " & product(1) Next product End Sub 5. よくある質問(FAQ) CollectionとArrayの違いは何ですか?

Collectionは、アイテムの追加や削除が可能で、動的です。インデックスだけでなくキーでアクセスもできます。一方、Arrayは固定サイズであり、インデックスでアクセスする必要があります。

Collection内に特定のアイテムが存在するか確認できますか?

残念ながら、直接的な方法はありません。ループを使って確認する方法があります。

Dim exists As Boolean exists = False Dim item As Variant For Each item In items If item = "探したいアイテム" Then exists = True Exit For End If Next item If exists Then MsgBox "アイテムは存在します。" Else MsgBox "アイテムは存在しません。" End If 6.まとめ

Collectionは、Excel VBAでデータを効率的に管理するための強力なツールです。この記事を参考にして、Collectionを使いこなしてくださいね!Collectionを使えるようになると、VBAのレベルが上がること間違いなしです!

記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
Excel よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
📎📎📎📎📎📎📎📎📎📎
BOT