大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、「Dictionary」の「初期化」と「一部のキーを削除」する方法について、ご紹介します。「初期化」する場合は「.RemoveAll」を使って、「一部のキーを削除」するには「.Remove」を使います。

はじめに

この記事では、「Dictionary」の「初期化」と「一部を削除」する方法について、ご紹介します。

初期化と削除は、次のVBAコードを使います。

  • 「初期化」:「.RemoveAll」
  • 「一部を削除」:「.Remove」

という感じです。

では、「Dictionary」の「初期化」と「一部を削除」する方法について、解説していきます。

この記事で紹介すること

  • 「Dictionary」を初期化する方法
  • 「Dictionary」の一部を削除する方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAコードまとめ

「Dictionary」の「初期化」と「一部のキーを削除」するVBAコードについて、まとめています。

VBAコードだけ確認したい場合に、ご活用ください。

'辞書を初期化
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」

「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」をみてみます。

「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

「Dictionary」の要素は「0」番目から始まる点に注意です。

削除する前の「Dictionary」をみてみます。

「Dictionary」の値を出力

では、「2番目」のキーだけ削除してみます。

「2番目」のキーだけ削除

「2番目」のキーだけ削除できました。

おわりに

この記事では、「Dictionary」の「初期化」と「一部を削除」する方法について、ご紹介しました。

初期化と削除は、次のものを使います。

  • 「初期化」:「.RemoveAll」
  • 「一部を削除」:「.Remove」

という感じです。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す