見出し画像

OfficeScriptsで名言ボットを作ってみた⑩ 変数を宣言するときはデータ型もいれましょう🙂

こんにちは。aliceです。

OfficeScripts初心者が名言ボットを作ってみたシリーズ。はじめてのOfficeScripts。

今回は変数に文字列を入れてみます。


OfficeScriptsとPowerAutomateで名言ボットを作りました。(OfficeScriptsの使用にはweb版のExcelとライセンスが必要です。)

前回はsetValueメソッドを使って値をいれてみました。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
 let rangeValues = range.getValues();
 let lastRow = range.getRowCount();
 for (let i = 1; i <= lastRow; i++) {
   if (rangeValues[i][3] === "") {
     sheet.getCell(i, 3).setValue("True");
   }
 }
}


今回はbot用のセリフを入れる変数wordにセリフを入れてみたいと思います。

この2つを追加。

let word = "";

word = `${rangeValues[i][1]}`;


1 変数を文字列で宣言する

wordの中に入れる値はセリフなので文字列で宣言します。

let word = "";

変数wordに空白の文字列を入れてみた。

typeof演算子でデータ型を確認。


画像1

文字列型でした。

function main(workbook: ExcelScript.Workbook) {
 let word = "";
 console.log(typeof(word));
}


普通に文字列型でも宣言できます。

let word: string;

データ型はundefinedです。まだ何も入れていないからかな?

画像2

文字列を入れてみます。

画像3

文字列型になって「flower」も出力されました。

function main(workbook: ExcelScript.Workbook) {
 let word: string;
 word = "flower";
 console.log(typeof(word));
 console.log(word);
}


データ型を宣言しないとどうなるのかな?

function main(workbook: ExcelScript.Workbook) {
 let word;
 word = "flower";
 console.log(typeof(word));
 console.log(word);
}

エラーになってる(▀̿Ĺ̯▀̿ ̿)

画像4

Google翻訳

画像5

一言で言うと、データ型はちゃんと宣言しましょう!ということでしょうか…。


問題もチェック

画像6

やっぱり、データ型はちゃんと宣言しましょう!ということでしょうか…。

スクリプトに 'any' 型Officeはありません
TypeScriptでは、型を推論できるので、書き込み型は省略可能です。 ただし、Officeスクリプトでは、変数を任意の型にできない必要があります。 明示的および暗黙的の両方 any は、スクリプト内でOfficeされません。 これらのケースはエラーとして報告されます。

「Officeスクリプトでは、変数を任意の型にできない必要があります。」ってどういう意味なんだろう。

No 'any' type in Office Scripts
Writing types is optional in TypeScript, because the types can be inferred. However, Office Script requires that a variable can't be of type any. Both explicit and implicit any are not allowed in an Office Script. These cases are reported as errors.

画像7

TypeScriptでは型を推測できるため、型の記述はオプションです。ただし、Officeスクリプトでは、変数の型をanyにすることはできません。 Officeスクリプトでは、明示的および暗黙的ないずれも許可されていません。これらのケースはエラーとして報告されます。

OfficeScriptsでは変数の型を宣言しましょう!しないとエラーになるよということですね。


ということでここまでできました。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
 let rangeValues = range.getValues();
 let word = "";
 let lastRow = range.getRowCount();
 for (let i = 1; i <= lastRow; i++) {
   if (rangeValues[i][3] === "") {
     sheet.getCell(i, 3).setValue("True");
   }
 }
}


2 今日のまとめ

変数を宣言するときはデータ型も宣言しましょう。


お疲れさまでした


この記事が気に入ったらサポートをしてみませんか?