メインコンテンツまでスキップ

数値と相互に変換

今回は Office スクリプトを使って、文字列から数値、数値から文字列それぞれについて、変換する方法をサンプルコードと併せて解説します。

VBA との違い

VBA では型の異なるデータ同士での演算はエラーとなりますが、Office スクリプトでは許容されています。

例えば、文字列と数値を加算すると、数値も文字列として暗黙的にキャストされ、たとえ文字列が数値に変換可能であっても文字列として処理されます。

暗黙的な文字列への変換
const value1 = '150';

const value2 = 200;

// 出力結果は350ではなく"150200"
console.log(value1 + value2); //150200

数値データが文字列として格納されている場合は、明示的に型の変換が必要となります。

文字列から数値への変換

Number のコンストラクタを使った方法

Numberのコンストラクタの引数に文字列を指定することで、文字列を数値に変換することができます。

Numberのコンストラクタを使ったサンプル
const thisYear = Number('2022'); // 2022

const root2 = Number('1.4142'); // 1.4142

const notANumber = Number('こんにちは'); // NaN

const empty = Number(''); // 0

parseInt 関数を使った方法

標準で用意されているparseInt関数を使うことでも、文字列を数値に変換できます。

parseのコンストラクタを使ったサンプル
const thisYear = parseInt('2022'); // 2022

const root2 = parseInt('1.4142'); // 1

const notANumber = parseInt('こんにちは'); // NaN

const empty = parseInt(''); // NaN
注意点

parseInt 関数を使用した場合、小数点以下を含む場合は切り捨てられます。

数値から文字列への変換

Number.toString を使った方法

数値から文字列への変換は、Numberオブジェクトに用意されているtoStringメソッドを利用することをおすすめします。

Number.toStringを使ったサンプル
const thisYear = (2022).toString(); // 2022

const pi = 3.1415;
const enshuritsu = pi.toString(); // '3.1415'

const binary = (100).toString(2); // '1100100'

引数に数値を指定すると、指定した値が基数となる数を受け取ることができます。例えば、toString(2)と指定した場合、対象となる数値を 2 進数に変換した値が返却されます。

String のコンストラクタを使った方法

Stringのコンストラクタの引数に数値を指定することでも、数値から文字列に変換することができます。

Stringのコンストラクタを使ったサンプル
const thisYear = String(2022); // 2022

const pi = 3.1415;
const enshuritsu = String(pi); // '3.1415'