Excel Office スクリプト 連想配列の使い方
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 (読み放題) で提供中です。
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。