【Officeスクリプト入門】文字列を数値に変える!「型変換(Number)」の方法をマスターしよう
OfficeスクリプトでExcelのデータを処理していると、「画面上は数字に見えるのに、プログラムの中では文字列(string)として扱われていて、うまく計算できない…」というトラブルによく遭遇します。
今回は、文字として定義された数字を、計算ができるように正しい「数値型(number)」へ変換する方法(型変換)を分かりやすく解説します!
0. 文法:文字列を数値にするには「Number()」を使う
Officeスクリプトで文字列を数値に変換したいときは、Number(変換したい文字) を使います。
カッコの中に文字としての数字(例: "100")を入れると、計算ができる本物の数値(例: 100)に変換してくれます。
1. 実践サンプル
それでは、エディタに以下のコードを貼り付けて動かしてみましょう。文字列として定義した "100" に、型変換を使って 50 を正しく足し算するサンプルです。
// 文字列型(string)として数字を定義する
let strPrice: string = "100";
// 【失敗パターン】文字のまま足し算すると...?
let badResult = strPrice + 50;
console.log("そのまま足した場合:" + badResult);
// 【成功パターン】Number() で数値型に変換してから足し算する
let goodResult = Number(strPrice) + 50;
console.log("型変換して足した場合:" + goodResult);
}
2. 実行結果
スクリプトエディタの右上にある実行ボタン(よこむきさんかく ▶)を押すと、画面下部の「出力」タブに以下のように表示されます。
型変換して足した場合:150
そのまま足した方は 100 と 50 という文字がくっついて 10050 になってしまっていますが、Number() を使った方は正しく 150 と計算できていますね!
ワンポイント・アドバイス
Excel実務で「Number()」が絶対に必要な理由
Excelのセルから値を取得する際、セルの書式設定が「文字列」になっていたり、システムからダウンロードしたデータだったりすると、Officeスクリプト側には数値ではなく string(文字列)として取り込まれてしまうことがよくあります。
Officeスクリプト(TypeScript)では、文字の後ろに + 50 のように足し算を書くと、エラーにはならず「文字の結合処理」として扱われてしまうため、計算結果がバグってしまう原因になります。
「セルから持ってきた数字を使って計算や合計を出したい!」という時は、今回紹介した Number(セルの値) を使って、一度しっかり数値型に変換してから計算する癖をつけておくと、予期せぬ計算ミスを防ぐことができますよ!