「Visual Basic 6の基礎 - 変数」の版間の差分

ナビゲーションに移動 検索に移動
 
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>

案内メニュー