![見出し画像](https://assets.st-note.com/production/uploads/images/137365253/rectangle_large_type_2_c34a7b79125441ad39832dc4869344ce.png?width=1200)
【Day13】文系オタクのエンジニア道~コレクションについて~
こんにちは
安田です
先週末は出展スタッフで学習の時間が取れていなかったですが
また今週からやっていきます!
よろしくおねがいしまぁぁぁぁぁぁす!(Excelポチッ)
コレクションとは
①定義の方法は2つあります
'2行で書くパターン
Dim cData As Collection
Set cData = New Collection
'もしくは1行でまとめても記載が可能
Dim cData As New Collection
1行で書いたほうがシンプルですね
②コレクションの要素は「add」を使う
cData.Add 100, "ファントムブラッド"
cData.Add 200, "戦闘潮流"
cData.Add 300, "スターダストクルセイダース"
ファントムブラッドには100、戦闘潮流には200
スターダストクルセイダースには300が入っているよ
ということです
③コレクションは更新ができない
はじめに指定した内容から更新がされないということです
cData.Add 100, "ファントムブラッド"
cData.Add 200, "戦闘潮流"
cData.Add 300, "スターダストクルセイダース"
'collectionは更新ができない
cData("ファントムブラッド") = cData("ファントムブラッド") + 200
ファントムブラッドの100に200を足して300にしたいと思っても・・・
![](https://assets.st-note.com/img/1713163251868-qu3iZWJVNj.png)
![](https://assets.st-note.com/img/1713163321336-rurVhlAdW6.png?width=1200)
④Keyの重複入力はできない
同じコレクションは入力できないことを表しています
![](https://assets.st-note.com/img/1713163625684-5HaMUwqXdw.png?width=1200)
![](https://assets.st-note.com/img/1713163673163-yGix6TSYp7.png)
エラーナンバーをもとに
重複しているかを見つけるコードを書きました
エラーコードが0以外の場合
A9に重複していますという文字を表示
![](https://assets.st-note.com/img/1713164040557-XQ6Acz5WYH.png?width=1200)
⑤コレクションは番号でも取得可能
Range("A8").Value = cData("ファントムブラッド")
↓
Range("A8").Value = cData(1)
同じ結果が得られます
コードのまとめ
![](https://assets.st-note.com/img/1713164332259-KLG71iHpXH.png?width=1200)
'collection
Sub collection_work()
'定義の方法は2つある
'パターン1
'Dim cData As Collection
'Set cData = New Collection
'パターン2
Dim cData As New Collection
'コレクションの要素は「add」を使う
cData.Add 100, "ファントムブラッド"
cData.Add 200, "戦闘潮流"
cData.Add 300, "スターダストクルセイダース"
'collectionは更新ができない
'cData("ファントムブラッド") = cData("ファントムブラッド") + 200
Range("A8").Value = cData("ファントムブラッド")
'keyの重複入力はできない
'cData.Add 100, "ファントムブラッド"
'エラーを見つける
On Error Resume Next
cData.Add 100, "ファントムブラッド"
If Err.Number <> 0 Then
Range("A9").Value = "重複しています"
End If
'番号でも取得可能
'Range("A8").Value = cData(1)
End Sub
コメントが多く見づらいですがご了承くださいませ
コレクションについて学習しました
ルールがあるのと、エラーコードで重複しているかどうかを判断するのは勉強になりました
最後まで読んでいただき
ありがとうございます
安田
「VBAマスターに俺はなる」
マガジンにまとめてありますので
よかったらそちらも御覧ください
この記事が気に入ったらサポートをしてみませんか?