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

【Officeスクリプト入門】変数って初期化が必要?値を入れずに宣言するルールを学ぼう

Officeスクリプトで変数を作るとき、いつも let x = 10; のように最初から値を入れていましたが、ふと「これって必ず最初に値を入れないといけないの?」と疑問に思ったことはありませんか?

今回は、変数の「初期化(最初に値を入れること)」のルールと、あとから値を代入する方法について解説します!

0. 文法:初期化しない時は「型」をセットで書く

結論から言うと、変数を作るときに必ずしも最初から値(初期値)を入れる必要はありません。 値を入れずに「箱(変数)だけを先に用意する」という宣言も可能です。

ただし、初期値を入れない場合は「型(: number など)」を絶対にセットで書くというルールがあります。

1. 実践サンプル

それでは、エディタに以下のコードを貼り付けて動かしてみましょう。まずは「数値が入る箱」だけを用意して、あとからデータを代入するサンプルです。

function main(workbook: ExcelScript.Workbook) {
  // 初期値は入れず、まずは「数値が入る箱(score)」だけを用意する
  let score: number;
  
  // あとから処理の中で値を代入する
  score = 95;
  
  // コンソールに出力する
  console.log("テストの点数:" + score);
}

2. 実行結果

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

  テストの点数:95

ワンポイント・アドバイス

なぜ初期値を入れないときは「型」が必要なの?
最初から let score = 95; と書けば、Officeスクリプトは「右側が数字だから、scoreは数値の箱(number型)ね」と自動で判断してくれます。

しかし、中身を空っぽのまま let score; とだけ書いてしまうと、Officeスクリプトは「えっ、これから数字を入れるの?文字を入れるの?どっちの箱を用意すればいいの?」と迷ってしまい、エラー(型不明のエラー)になってしまいます。そのため、あとから値を入れる場合は必ず let score: number; と教えてあげる必要があるのです。

ちなみに、値を一回も入れないまま(空っぽのまま)console.log(score); のように使おうとすると、エディタが「中身が入っていません!」と事前に赤い波線で怒ってくれます。うっかりミスを未然に防いでくれる便利な仕組みなので、ぜひ覚えておいてくださいね!



PR