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

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

  関連記事

文字列:アルファベットを小文字または大文字に変換(LCase 関数,UCase 関数)

LCase 関数・UCase 関数 の使い方 【書式】 <アルファベットの大文字 …

変数がNull 値かどうかをチェックする( IsNull 関数 )

IsNull 関数の使い方 【書式】 result = IsNull ( exp …

式を評価し、結果(真・偽)に応じた式・値を返す(IIf 関数)

IIf 関数 の使い方 IIf(アイイフ)関数は、式を評価してその結果(真・偽) …

文字列:2つの文字列を比較する(StrComp 関数)

StrComp 関数の使い方 【書式】 result = StrComp ( s …

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

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

ポイント単位の値に変換(CentimetersToPoints,InchesToPoints)

CentimetersToPoints メソッド センチメートル単位の値をポイン …

色の設定(ThemeColor プロパティ・TintAndShade プロパティ)

ThemeColor プロパティ・TintAndShade プロパティ テーマカ …

RSet 関数・LSet 関数 例1
文字列:文字列変数の値を右詰めまたは左詰めにする(RSet ステートメント・LSet ステートメント)

RSet ステートメント・LSet ステートメント 【書式】 < RSet ステ …

文字列:文字を指定数並べた文字列を返す(String 関数)

String 関数 【書式】 result = String ( number, …

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

Str 関数 の使い方 Str 関数は、数値・数式を文字列に変換して返す関数です …