'辞書を初期化
A.RemoveAll
'「"C"」のキーを削除
A.Remove "C"
'「2番目」のキーを削除(0番目から始まる)
Dim C '「キー」をすべて取得
C = A.keys
A.Remove C(2)
では、解説していきます。
Dictionaryを初期化する
「Dictionary」を初期化してみます。
「RemoveAll」を使う
「RemoveAll」を使って、次のようにVBAコードを記載します。
Sub TEST1()
'辞書を登録
Dim A
Set A = CreateObject("Scripting.Dictionary")
'値を登録する
A.Add "A", "10"
A.Add "B", "20"
A.Add "C", "30"
A.Add "D", "40"
A.Add "E", "50"
'辞書をループ
For Each B In A
'辞書を出力
Debug.Print B & " " & A(B)
Next
'辞書を初期化
A.RemoveAll
'辞書をループ
For Each B In A
'辞書を出力
Debug.Print B & " " & A(B)
Next
End Sub
では、初期化前の「Dictionary」をみてみます。
初期化する前の「Dictionary」
VBAコードを実行して、「初期化」してみます。
「初期化」する
「Dictionary」を「初期化」できました。
Dictionaryの一部のキーを削除する
「Dictionary」の「一部のキーを削除」してみます。
「Remove」を使う
一部のキーの削除は、「Remove」を使います。
削除する方法は、2通りあって、
「キー」を入力して削除
「番号」を指定して削除
という感じです。
それぞれやってみます。
「キー」を入力して削除
「キー」を入力して削除してみます。
「A.Remove "C"」というように、キーを入力して削除します。
Sub TEST2()
'辞書を登録
Dim A
Set A = CreateObject("Scripting.Dictionary")
'値を登録する
A.Add "A", "10"
A.Add "B", "20"
A.Add "C", "30"
A.Add "D", "40"
A.Add "E", "50"
'辞書をループ
For Each B In A
'辞書を出力
Debug.Print B & " " & A(B)
Next
'「"C"」のキーを削除
A.Remove "C"
'辞書をループ
For Each B In A
'辞書を出力
Debug.Print B & " " & A(B)
Next
End Sub
削除する前の「Dictionary」をみてみます。
では、「.Remove」を実行して、「"C"」を削除してみます。
キー「"C"」だけを削除できました。
番号を指定して削除
次は、「番号」を指定して削除してみます。
「2」番目のキーとアイテムを削除します。
Sub TEST3()
'辞書を登録
Dim A
Set A = CreateObject("Scripting.Dictionary")
'値を登録する
A.Add "A", "10"
A.Add "B", "20"
A.Add "C", "30"
A.Add "D", "40"
A.Add "E", "50"
'辞書をループ
For Each B In A
'辞書を出力
Debug.Print B & " " & A(B)
Next
'「キー」をすべて取得
Dim C
C = A.keys
'「2番目」のキーを削除(0番目から始まる)
A.Remove C(2)
'辞書をループ
For Each B In A
'辞書を出力
Debug.Print B & " " & A(B)
Next
End Sub