Excel Office スクリプト 連想配列の使い方

2021年11月6日

Office スクリプトにおける連想配列の使い方を紹介します。

解説

配列を整数の連番(インデックス)でなく、

「文字列(string型)」か「連番でない整数(number型)」のキーで管理するのが連想配列です。

ハッシュや辞書(ディクショナリー)とも呼ばれることがあります。

連想配列の宣言

この連想配列は次のように宣言します。(赤字は適宜変更

let 連想配列変数名: { [key: キーのデータ型]: 要素のデータ型 } = {};
コード例

宣言と同時に要素を設定(初期化)

内容の初期化を行う場合はキーと値をで:で区切り、要素を,で区切ります。

同じ連想配列内で値は重複しても構いませんが、キーは重複禁止です。

let 連想配列変数名: { [key: キーのデータ型]: 要素のデータ型 } = { キー:値,キー:値… };
コード例

要素の取得

指定キーの要素を取得

次のようにキーを利用して値を取得します。

赤字は適宜変更緑字はコメントです

連想配列変数[キー]; //ブラケット表記法
連想配列変数.キー; //プロパティ表記法

表記法が二つありますが、ブラケット表記法の利用を推奨します。

プロパティ表記法はキーがnumberの場合や先頭が数値の場合、使用できないのと

ブラケット表記法の方が配列と認識しやすいためです。

コード例

キーの存在チェック

連想配列の場合、存在しないキーを指定した場合、

エラーせずに動いてしまいます。(次の例ではA1セルを空白セルに変える動きになります)

コード例

その判定を行うには以下のようにします。

キー in 連想配列

連想配列の中に指定キーが存在する場合はtrue、

存在しない場合はfalseになります。

コード例

すべてのキーを取得(ループ)

次のように記述します。

for (let キー変数 of 連想配列変数){
  キー変数; //現在の繰り返しのキーを取得
}
コード例

すべてのキーを取得(配列)

次のように記述すると配列としてキーの一覧を取得します。

Object.keys(連想配列変数);

すべての要素を取得(ループ)

キーのループの中で値を取得するだけです。

for (let キー変数 of 連想配列変数){
  連想配列変数[キー変数]; //現在の繰り返しの要素を取得
}
コード例

要素の追加・変更

追加と変更は次のように行います。

連想配列変数[キー] = ;

指定キーが存在すれば変更、存在しなければ追加します。

要素数の取得

そのままではlengthメソッドを利用できないため、

Object.keysでキー一覧の配列を取得してlengthメソッドを利用します。

Object.keys(連想配列変数).length;

要素の削除

指定キーの要素を削除

次のように記述すると指定の要素を削除します。

delete 連想配列変数[キー]
コード例

全要素を削除

次のように記述すると全要素を削除します。

連想配列変数 = {};

結合

Object.assignを利用します。

キーが重複している場合、後ろに指定した連想配列の値になります。

結合後の連想配列変数 = Object.assign(連想配列変数1, 連想配列変数2)
コード例

値からキーを取得

次のように指定すると一致する値のキー一覧(配列)を取得します。


キー一覧配列変数 = Object.keys(連想配列変数).filter((key) => {
    return 連想配列変数[key] === 
  })

次の例では2を検索し、一致する大阪、広島、福岡が配列として取得されます。

コード例

Office スクリプトを効果的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り700円またはKindle Unlimited (読み放題) で提供中です。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

関連記事

Excel Office スクリプトの記事一覧