13,005
回編集
(→概要) |
(→動的配列) |
||
97行目: | 97行目: | ||
' 配列のサイズ変更 (既存データを保持) | ' 配列のサイズ変更 (既存データを保持) | ||
ReDim Preserve arrDynamic(30) | ReDim Preserve arrDynamic(30) | ||
</syntaxhighlight> | |||
<br><br> | |||
== Collection == | |||
キーと値のペアを管理できるが、キーは文字列のみである。<br> | |||
順序が保持され、インデックス番号でもアクセス可能である。<br> | |||
<br> | |||
主に、データの順序付きリストとして使用される。<br> | |||
<br> | |||
* Countプロパティ | |||
*: 要素数を取得する。 | |||
* Itemメソッド | |||
*: 要素を取得する。(デフォルトメソッド) | |||
* Beforeメソッド / Afterメソッド | |||
*: 特定の位置に項目を挿入する。 | |||
<br> | |||
<syntaxhighlight lang="vb"> | |||
Dim colItems As New Collection | |||
' 項目の追加(Add) | |||
colItems.Add "データ1", "key1" | |||
colItems.Add "データ2", "key2" | |||
colItems.Add "データ3" 'キー省略可能 | |||
' 項目の取得 | |||
Debug.Print colItems("key1") 'キーで取得 | |||
Debug.Print colItems(1) 'インデックスで取得 | |||
' コレクションの走査 | |||
Dim varItem As Variant | |||
For Each varItem In colItems | |||
Debug.Print varItem | |||
Next | |||
' 項目の削除 | |||
colItems.Remove "key1" 'キーで削除 | |||
colItems.Remove 1 'インデックスで削除 | |||
</syntaxhighlight> | |||
<br><br> | |||
== Dictionary == | |||
より柔軟な連想配列である。<br> | |||
キーには文字列以外の型も使用でき、任意の型の値を格納することができる。<br> | |||
<br> | |||
ハッシュテーブルベースで実装されているため、大量のデータを扱う場合はCollectionより高速である。<br> | |||
<br> | |||
また、Exists関数でキーの存在が確認できる。<br> | |||
ただし、インデックス番号での参照はできない。<br> | |||
<br> | |||
<syntaxhighlight lang="vb"> | |||
Dim dicItems As New Dictionary | |||
' 項目の追加 | |||
dicItems.Add "名前", "山田太郎" | |||
dicItems.Add "年齢", 30 | |||
dicItems.Add "住所", "東京都" | |||
' 項目の取得 | |||
Debug.Print dicItems("名前") | |||
' 存在確認 | |||
If dicItems.Exists("年齢") Then | |||
Debug.Print dicItems("年齢") | |||
End If | |||
' 項目の変更 | |||
dicItems("住所") = "大阪府" | |||
' 全てのキーを取得 | |||
Dim varKey As Variant | |||
For Each varKey In dicItems.Keys | |||
Debug.Print varKey & ": " & dicItems(varKey) | |||
Next | |||
' 項目の削除 | |||
dicItems.Remove "住所" | |||
' 全項目の削除 | |||
dicItems.RemoveAll | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> |