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

【Officeスクリプト入門】文字列を数値に変える!「型変換(Number)」の方法をマスターしよう

OfficeスクリプトでExcelのデータを処理していると、「画面上は数字に見えるのに、プログラムの中では文字列(string)として扱われていて、うまく計算できない…」というトラブルによく遭遇します。

今回は、文字として定義された数字を、計算ができるように正しい「数値型(number)」へ変換する方法(型変換)を分かりやすく解説します!

0. 文法:文字列を数値にするには「Number()」を使う

Officeスクリプトで文字列を数値に変換したいときは、Number(変換したい文字) を使います。

カッコの中に文字としての数字(例: "100")を入れると、計算ができる本物の数値(例: 100)に変換してくれます。

1. 実践サンプル

それでは、エディタに以下のコードを貼り付けて動かしてみましょう。文字列として定義した "100" に、型変換を使って 50 を正しく足し算するサンプルです。

function main(workbook: ExcelScript.Workbook) {
  // 文字列型(string)として数字を定義する
  let strPrice: string = "100";
  
  // 【失敗パターン】文字のまま足し算すると...?
  let badResult = strPrice + 50;
  console.log("そのまま足した場合:" + badResult);
  
  // 【成功パターン】Number() で数値型に変換してから足し算する
  let goodResult = Number(strPrice) + 50;
  console.log("型変換して足した場合:" + goodResult);
}

2. 実行結果

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

  そのまま足した場合:10050
  型変換して足した場合:150

そのまま足した方は 10050 という文字がくっついて 10050 になってしまっていますが、Number() を使った方は正しく 150 と計算できていますね!

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

Excel実務で「Number()」が絶対に必要な理由
Excelのセルから値を取得する際、セルの書式設定が「文字列」になっていたり、システムからダウンロードしたデータだったりすると、Officeスクリプト側には数値ではなく string(文字列)として取り込まれてしまうことがよくあります。

Officeスクリプト(TypeScript)では、文字の後ろに + 50 のように足し算を書くと、エラーにはならず「文字の結合処理」として扱われてしまうため、計算結果がバグってしまう原因になります。

「セルから持ってきた数字を使って計算や合計を出したい!」という時は、今回紹介した Number(セルの値) を使って、一度しっかり数値型に変換してから計算する癖をつけておくと、予期せぬ計算ミスを防ぐことができますよ!


PR