忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【Officeスクリプト入門】まとめてデータを管理する「配列」の基本と、知っておくべき型の注意点

変数や定数は1つの箱に1つのデータしか入れられませんでしたが、実務では「複数のデータをまとめて扱いたい」という場面がほとんどです。そんな時に使うのが「配列(はいれつ)」です。

今回は、配列の基本的な作り方(定義・初期化)と、Officeスクリプト(TypeScript)ならではの「型に関する重要な注意点」を分かりやすく解説します!

0. 文法:配列の型は「型名[]」で宣言する

Officeスクリプトで特定のデータ型だけを入れる配列を作るときは、型名[] という書き方をします。

  • number[]:数値だけを入れられる配列(数値配列)
  • string[]:文字列だけを入れられる配列(文字列配列)

中身を初期化(用意)するときは、値をカンマ(,)で区切って角カッコ [ ] で囲みます。

1. 実践サンプル

それでは、エディタに以下のコードを貼り付けて動かしてみましょう。数値の配列を作って、その中身を出力するシンプルなサンプルです。

function main(workbook: ExcelScript.Workbook) {
  // 数値型(number)の配列を定義して初期化する
  let scores: number[] = [80, 90, 75];
  
  // 配列を丸ごとコンソールに出力する
  console.log(scores);
  
  // 1番目のデータ(インデックスは0から始まります)を出力する
  console.log("1番目の点数:" + scores[0]);
}

2. 実行結果

スクリプトエディタの右上にある実行ボタン(よこむきさんかく ▶)を押すと、画面下部の「出力」タブに以下のように表示されます。

  [80, 90, 75]
  1番目の点数:80

ワンポイント・アドバイス:型を宣言しない時の重大な注意点!

Q. 配列にできる型に制限はあるの?別の型を混ぜてもいい?
結論から言うと、型をはっきり宣言(number[] など)しておけば、その型以外のデータは入れられなくなるという制限がかかります。これは安全なプログラムを書くためにとても良いことです。

しかし、もし型を省略して、最初の要素に異なる型を混ぜてしまうと、トラブルの原因になります。

注意:型を書かずに「別の型」を混ぜて初期化した場合

例えば、型を書かずに以下のように初期化したとします。

let myData = [100, "りんご", true];

このとき、Officeスクリプトは「なんでも入るごちゃまぜの配列(any[] 型、または union型)」だと自動解釈します。

「何でも入るなら便利じゃない?」と思うかもしれませんが、ここに大きな罠があります。Excel VBAの Variant 配列のような感覚でこれを使ってしまうと、後からデータを処理する時に、「数字だと思って足し算しようとしたら、中身が文字("りんご")で計算エラーになった」「文字だと思って文字数を数えようとしたら、中身が数字でエラーになった」というバグが多発します。

Officeスクリプト(TypeScript)の強みは、型をカチッと決めてバグを防ぐことです。特別な理由がない限りは、配列を作る時も let scores: number[]let names: string[] のように「この配列にはこのデータ型しか入れない!」としっかり型宣言をして、別の型を混ぜないようにするのが、安全で綺麗なコードを書くための鉄則ですよ!


PR