配列(Dictionary)

Dictionaryのキー(要素)を削除する【Removeメソッド】【ExcelVBA】

構文

object(Key).Remove

Key・・・・Dictionaryでオブジェクト内で削除したいキーを指定します。【必須】

Removeメソッドは、Dictionary オブジェクトのキー(要素)を削除します。
通常の配列では存在しない削除用のメソッドが準備されている為、Loopする必要がありません。

Dictionaryのキー(要素)を削除するサンプルコード

'参照設定 Microsoft Scripting Runtime
Public Sub sample()

    Dim dic As Dictionary
    Set dic = New Dictionary
        
    dic.Add "1月", "Jan"
    
    '■Dictionaryの0番目の要素を取得
    Debug.Print dic.Keys(0)     '1月
    '■DictionaryのKeyが"1月"の要素→今回は0番目の要素を削除
    dic.Remove "1月"
    '■削除済みなので実行時エラーが出る
    Debug.Print dic.Keys(0)     '実行時エラー9 インデックスが有効範囲にありません


    dic.Add "1月", "Jan"
    dic.Add "2月", "Feb"
    
    '■Dictionaryの0番目の要素を取得
    Debug.Print dic.Keys(0)     '1月
    '■DictionaryのKeyが"1月"の要素→今回は0番目の要素を削除
    dic.Remove "1月"
    '■削除済みでキーがズレる。(埋めてくれる)
    Debug.Print dic.Keys(0)     '2月

End Sub

注意点

  • 配列と異なりDictionaryの削除された要素は埋めます。

関連記事

Dictionaryにキーと要素を追加する【Addメソッド】【ExcelVBA】
Dictionaryにキーが存在するかチェックする【Existsメソッド】【ExcelVBA】
DictionaryのExistsが動作しないのはValueで入れてない為【ExcelVBA】

コメント

タイトルとURLをコピーしました