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を検索し、一致する大阪、広島、福岡が配列として取得されます。


🚀 Excel自動化を「点」から「線」へ。体系的に学びたい方へ
本記事で解説したテクニックは、日々の業務を効率化する大きな一歩です。
しかし、実務で直面する複雑な課題を解決するためには、基礎から体系的に知識を身につけることが最短ルートになります。
「ネットの情報だけでは限界を感じる」「もっと自由自在にツールを作れるようになりたい」
そうお考えのあなたにおすすめしたいのが、Officeスクリプトを網羅的に学べるこちらの電子書籍です。


『ビジネスパーソンのためのOfficeスクリプト入門:Excel作業の自動化とデータ処理【2025年7月大幅改訂版】』
この書籍は、忙しいビジネスパーソンが最短でOfficeスクリプトを習得できるよう設計されています。
本書のここがポイント!
- 🔰 プログラミング知識ゼロでも大丈夫! 専門用語を避け、初心者目線でやさしく解説。「VBAは難しかった…」という方でも安心してスタートできます。
- 🔄 VBA経験者はスムーズに移行! VBAとの違いを比較しながら解説しているので、今ある知識を無駄なく活かせます。
- ✨ 【2025年7月大幅改訂】最新トレンドを完全網羅! 話題の生成AIを活用してコード作成を強力に支援する方法を新設。さらに、Power Automateと連携した高度な自動化シナリオも大幅に拡充されています。
「脱・手作業」を実現し、ワンランク上の業務効率化を目指すための必携書です。ぜひ手に取ってみてください。