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

  関連記事

データ型を調べて、そのデータ型を示す数値を返す(VarType 関数)

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

日付時刻:日付時刻から情報取得( DatePart 関数 )

DatePart 関数(日付・時刻の値から情報を取得) 【書式】 result …

四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)

Round 関数(丸め)の使い方 【書式】 value = Round ( ex …

フォントの設定(Font プロパティ)

フォントの設定(Font プロパティ) 指定されたオブジェクトのフォント情報(F …

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

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

Tab 関数 01
出力位置、書き込み位置を設定(Tab 関数)

出力位置、書き込み位置を設定 Tab 関数 は、Print メソッド、または P …

オブジェクトの書式をクリアする(ClearFormats メソッド)

ClearFormats メソッド 対象となるオブジェクトの書式(スタイル)を初 …

文字列:指定した文字の文字コードを取得する(Asc 関数)

Asc 関数 【書式】 result = Asc ( string ) 引数・戻 …

UBound LBound 関数 使用例01
配列の要素数を取得する(UBound 関数・LBound 関数)

UBound 関数・LBound 関数 【書式】 result = UBound …

指定した文字列を数値に変換する(Val 関数)

Val 関数 の使い方 Val 関数は、指定した文字列に含まれる数字を数値として …