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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

文字列:文字列の空白を削除(Trim 関数, LTrim関数, RTrim関数)

Trim 関数・LTrim 関数・RTrim 関数の使い方 【書式】 <先頭と末 …

データ型を調べてそのデータ型を示す文字列を返す(TypeName 関数)

TypeName 関数 の使い方 TypeName 関数は、引数に、データ型を調 …

DateSerial 関数 TimeSerial 関数 使用例
日付時刻:数値から日付・時刻データを取得( DateSerial 関数、TimeSerial 関数 )

DateSerial 関数(数値を使って日付データを取得) 【書式】 date …

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

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

乱数(Rnd 関数)例1
乱数を生成する(Rnd 関数)

Rnd 関数の使い方 Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動 …

Spc 関数 01
指定した数のスペースを挿入する(Spc 関数)

指定した数のスペースを挿入 指定した数のスペースを挿入するには、Spc 関数を使 …

フォント名(Name,ThemeFont,StandardFont) 例
フォント名(Name,ThemeFont,StandardFont)

フォント名を取得・設定する(Name プロパティ) Name プロパティは、オブ …

Volatile メソッド
ユーザー定義関数:自動再計算関数の設定(Volatile メソッド)

ユーザー定義関数で、自動再計算を行うかどうかを設定する ワークシート上で使用する …

カレントフォルダの取得・設定(DefaultFilePath プロパティ)

DefaultFilePath プロパティ カレントフォルダとは、ブックを開いた …

オートシェイプの種類を表す定数
オートシェイプの種類を表す定数(MsoAutoShapeType 列挙型)

MsoAutoShapeType 列挙型 オートシェイプオブジェクトの図形の種類 …