【Officeスクリプト入門】変数って初期化が必要?値を入れずに宣言するルールを学ぼう
Officeスクリプトで変数を作るとき、いつも let x = 10; のように最初から値を入れていましたが、ふと「これって必ず最初に値を入れないといけないの?」と疑問に思ったことはありませんか?
今回は、変数の「初期化(最初に値を入れること)」のルールと、あとから値を代入する方法について解説します!
0. 文法:初期化しない時は「型」をセットで書く
結論から言うと、変数を作るときに必ずしも最初から値(初期値)を入れる必要はありません。 値を入れずに「箱(変数)だけを先に用意する」という宣言も可能です。
ただし、初期値を入れない場合は「型(: number など)」を絶対にセットで書くというルールがあります。
1. 実践サンプル
それでは、エディタに以下のコードを貼り付けて動かしてみましょう。まずは「数値が入る箱」だけを用意して、あとからデータを代入するサンプルです。
// 初期値は入れず、まずは「数値が入る箱(score)」だけを用意する
let score: number;
// あとから処理の中で値を代入する
score = 95;
// コンソールに出力する
console.log("テストの点数:" + score);
}
2. 実行結果
スクリプトエディタの右上にある実行ボタン(よこむきさんかく ▶)を押すと、画面下部の「出力」タブに以下のように表示されます。あとから入れた「95」がしっかり出力されますね!
ワンポイント・アドバイス
なぜ初期値を入れないときは「型」が必要なの?
最初から let score = 95; と書けば、Officeスクリプトは「右側が数字だから、scoreは数値の箱(number型)ね」と自動で判断してくれます。
しかし、中身を空っぽのまま let score; とだけ書いてしまうと、Officeスクリプトは「えっ、これから数字を入れるの?文字を入れるの?どっちの箱を用意すればいいの?」と迷ってしまい、エラー(型不明のエラー)になってしまいます。そのため、あとから値を入れる場合は必ず let score: number; と教えてあげる必要があるのです。
ちなみに、値を一回も入れないまま(空っぽのまま)console.log(score); のように使おうとすると、エディタが「中身が入っていません!」と事前に赤い波線で怒ってくれます。うっかりミスを未然に防いでくれる便利な仕組みなので、ぜひ覚えておいてくださいね!