ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

連想配列(Dictionary オブジェクト)

      2017/10/23

連想配列

連想配列とは、添字(キー)に文字列を使用することができる配列です。
VBA で、連想配列を使用するには、CreateObject 関数の引数に「Scripting.Dictionary」を指定するか、参照設定「Microsoft Scripting Runtime」を設定します。
(※ コレクション(Collection)オブジェクト を簡単な連想配列として使用することも出来ます。)


Dictionary オブジェクト


【書式】

<CreateObject 関数を使用する場合>
Dim myDic As Object
Set myDic = CreateObject(“Scripting.Dictionary”)

<参照設定を行う場合>
Dim myDic As Dictionary
Set myDic = New Dictionary


引数・戻り値

  • myDic  ・・・  Dictionary オブジェクト


Add メソッド

連想配列に新規の「キー」と「値」のセットを追加します。


【書式】

object.Add key, item


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • key  ・・・  追加する「キー」となる文字列を指定します。
  • item  ・・・  追加する「値」を指定します。


Exists メソッド

指定した「キー」が、連想配列に存在するかどうかを確認します。


【書式】

<取得>
bool = object.Exists key


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • key  ・・・  検索する「キー」を指定します。連想配列に存在する場合は、True 、存在しない場合は、False を返します。


Items メソッド

連想配列のすべての「値」を取得します。


【書式】

<取得>
array = object.Items


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • array  ・・・  連想配列の「値」のみを配列として取得したもの
    (例)連想配列 orgArray
    orgArray(“first”) = 100、orgArray(“second”) = 150、orgArray(“third”) = 200 の場合、
    array(0) = 100、array(1) = 150、array(3) = 200


Keys メソッド

連想配列のすべての「キー」を取得します。


【書式】

<取得>
array = object.Keys


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • array  ・・・  連想配列の「キー」のみを配列として取得したもの
    (例)連想配列 orgArray
    orgArray(“first”) = 100、orgArray(“second”) = 150、orgArray(“third”) = 200 の場合、
    array(0) = “first”、array(1) = “second”、array(3) = “third”


Remove メソッド

連想配列の「キー」と「値」のセットを削除します。


【書式】

object.Remove key


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • key  ・・・  削除する「キー」を指定します。「キー」が見つからなかった場合はエラーが発生します。


RemoveAll メソッド

連想配列のすべての「キー」と「値」を削除します。


【書式】

object.RemoveAll


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。


Count プロパティ

連想配列の項目数を取得します。


【書式】

<取得>
object.Count


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。


Item プロパティ

連想配列で、「キー」に関連付けられた「値」を取得します。または、連想配列に新規の「キー」と「値」のセットを追加します。


【書式】

<取得>
value = object[ .Item ](key)

<設定>
object[ .Item ](key) = newitem


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • key  ・・・  取得または設定する項目に関連付けられている「キー」を指定します。
  • newitem  ・・・  「キー」(key)に関連付ける「値」を指定します。


Key プロパティ

指定した「キー」を新しい「キー」に置き換えます。


【書式】

<設定>
object.Key(key) = newkey


引数・戻り値

  • object  ・・・  対象となる Dictionary オブジェクトを指定します。
  • key  ・・・  変更する「キー」を指定します。
  • newkey  ・・・  key で指定した「キー」と置き換える新規の「キー」を指定します。



VBA で、連想配列を使用する例

サンプルVBAソース1


実行結果

Dictionary オブジェクト 使用例1



サンプルVBAソース2


実行結果

Dictionary オブジェクト 使用例2



 - VBA基本 , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

no image
VBA の演算子(算術演算子)

算術演算子 算術演算を行うときに使用する演算子です。 ^(べき乗)、*(積)、/ …

定数(改行・タブ) 使用例
文字列:定数(改行・タブ)

改行・タブの定数 これらの定数は、使用前に定義する必要はありません。コード中のど …

TextToColumns メソッド
セルのデータを区切り文字で複数のセルに分割する(TextToColumns メソッド)

TextToColumns メソッド TextToColumns メソッドを使用 …

DoEvents 関数 UserForm の設定
CPU に制御を移す(DoEvents 関数)

DoEvents 関数 DoEvents 関数を実行すると、CPU に制御を移し …

ショートカットメニュー
ショートカットメニュー(CommandBar オブジェクト)

ショートカットメニュー(コンテキストメニュー) 右クリックで表示されるメニューの …

配列(多次元配列・配列の次元の変更)

多次元配列 【書式】 多次元配列の宣言 <静的配列(固定長配列)> Dim my …

変数が日付型かどうかをチェックする( IsDate 関数 )

IsDate 関数の使い方 【書式】 result = IsDate( expr …

ADO Stream オブジェクト テキスト(UTF-8)読み込み
テキストファイル(UTF-8)を読み込み、書き出し(ADODB.Stream)

Stream オブジェクト ADO(ActiveX Database Objec …

no image
XlThemeColor 列挙型

XlThemeColor 列挙 定数 値 内容 xlThemeColorDark …

演算子の優先順位
VBA の演算子(演算子の優先順位)

演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …