このページの本文へ

Google Apps Scriptのキホンと使い方 (3/4)

2014年03月12日 11時00分更新

文●掌田津耶乃

  • この記事をはてなブックマークに追加
本文印刷

整数→16進数変換スクリプトを作ろう

 Browserオブジェクトの2つのメソッドを使って、HTMLやCSSで多用されるWebカラーの値(6桁の16進数)と整数の値を変換するスクリプトを作ってみましょう。


function HexToInt() {
var hex = Browser.inputBox("色の16進数を入力:");
var r = hex.substr(0,2);
var g = hex.substr(2,2);
var b = hex.substr(4,2);
var res = parseInt(r, 16) + ', ' + parseInt(g, 16) + ', ' + parseInt(b, 16);
Browser.msgBox(res);
}

HexToInt関数。「実行」メニューから実行すると入力ダイアログが現れる。(※記述間違いがあると、赤い帯でエラーメッセージが表示されます)、入力された6桁の16進数を2桁ごとに切り分け、整数に変換してRGBごとに区切って表示する

 続いて(改行して)以下のコードを入力してみましょう。


function IntToHex() {
var str = Browser.inputBox("0〜255の値をコンマで区切って入力:");
var arr = str.split(',');
Logger.log(arr);
var r = '00' + parseInt(arr[0]).toString(16);
var g = '00' + parseInt(arr[1]).toString(16);
var b = '00' + parseInt(arr[2]).toString(16);
r = r.substr(-2);
  g = g.substr(-2);
  b = b.substr(-2);
Browser.msgBox('#' + r + g + b);
}

IntToHex関数。「実行」メニューから実行すると、整数を入力するダイアログが現れるので、「255,0,127」のように3つの整数をコンマ区切りで入力する。「OK」ボタンを押すと、「#ff007f」のように6桁の16進数に変換して表示される

 HexToIntは、入力された6桁の16進数を3つの整数に変換して表示するメソッドです。IntToHexは、入力されたコンマ区切りの0〜255の範囲にある3つの整数を、6桁の16進数に変換して表示します。

 作成したスクリプトを見ると、Browserオブジェクト以外は、ごく普通のJavaScriptのコードです。計算のような、ブラウザーの機能とは直接関係ない処理は、JavaScriptの機能をすべてそのままGASで使えます。

「入出力にBrowserオブジェクトを使う、それ以外の計算は普通にJavaScriptで書く」——この基本さえ押さえておけば、簡単な計算処理はすぐにでもGASで作れます。

スプレッドシートから実行するには?

 作成した関数は、スクリプトエディタだけでなく、スプレッドシートからも実行できます。「ツール」メニューから「スクリプトマネージャ…」を選んでみてください。画面にダイアログが現れ、作成した2つの関数がリスト表示されます。

 このリストから、実行したい関数を選択し、上にある「実行」ボタンをクリックすれば、実行できます。また「編集」や「新規作成」ボタンを押せば、スクリプトエディタが開き、選択した関数を編集したり、新たにスクリプトを作成したりできます。

「スクリプトマネージャ...」メニューを選ぶと、このようなダイアログが現れる。ここで実行したい関数を選び「実行」ボタンをクリックすれば実行される

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています