Googleが提供するGoogle Apps Script(GAS)のプログラミングで、Google Apps(主にスプレッドシート)を操作する方法を解説していく連載。今回は、スプレッドシートのセルのフォーマット、文字位置、色、サイズ、けい線などを変える各メソッドの使い方について。
本連載「Excel VBAプログラマーのためのGoogle Apps Script入門」では、Googleが提供する「Google Apps Script」(GAS)のプログラミングで、「Google Apps」を操作する方法を「Google Sheets」(スプレッドシート)を中心に解説していく。
前回は、スプレッドシートのセルの値、行数や列数を取得したり、セルに値を入力したりするなど、基本操作の仕方を解説した。
今回は、セルの背景色や文字の色、サイズを変更したり、データを3桁区切りで表示したり、けい線を引いたり、セルを結合したりするなど、いろいろな「書式」(ここでは表現方法のこと)の設定について解説する。
使用するデータは図1のようなデータを使用する。
まずは数値や日付の表示形式(フォーマット)を指定する方法を見ていこう。
range.setNumberFormat("{フォーマット}")
{フォーマット}の部分は、表示の仕方に合わせた文字列を指定する。指定方法の詳細については下記のURLを参照してほしい。
なお、「setNumberFormats」と複数形のメソッド名にすると、複数のセルのフォーマットを文字列の配列で一気に指定できる。
本稿では、図1の単価のデータを3桁区切りで表示するようにする。
ツールメニューから「スクリプトエディタ」を起動する。開いたエディタ画面から「ファイル」→「新規作成」→「スクリプトファイル」と選択して、「3桁区切り」というファイルを作成する。「3桁区切り.gs」内に、リスト1のコードを記述する。
function mySetNumberFormatFunction() { var sheet=SpreadsheetApp.getActiveSheet(); var range=sheet.getRange("B2:B8"); range.setNumberFormat("#,##0"); }
getRangeで「単価」の範囲を取得して(3行目)、setNumberFormatで3桁区切りに指定している(4行目)。
実行結果は図2のようになる。
次に、セルの背景色を変えてみよう。
range.setBackground("{背景色}")
{背景色}の部分は、表示の仕方に合わせた文字列を指定する。指定方法については表1の「カラー名」と「16進数」を参照してほしい。
カラー名 | 16進数 | RGB値 |
---|---|---|
black | #000000 | 0,0,0 |
gray | #808080 | 128,128,128 |
silver | #C0C0C0 | 192,192,192 |
white | #FFFFFF | 255,255,255 |
blue | #0000FF | 0,0,255 |
navy | #000080 | 0,0,128 |
teal | #008080 | 0,128,128 |
green | #008000 | 0,128,0 |
lime | #00FF00 | 0,255,0 |
aqua | #00FFFF | 0,255,255 |
yellow | #FFFF00 | 255,255,0 |
red | #FF0000 | 255,0,0 |
fuchsia | #FF00FF | 255,0,255 |
olive | #808000 | 128,128,0 |
purple | #800080 | 128,0,128 |
maroon | #800000 | 128,0,0 |
参考「Enum Color | Apps Script | Google Developers」 |
RGB値で指定したい場合は、setBackgroundRGB(red, green, blue)を使う。
なお、「setBackgrounds」と複数形のメソッド名にすると、複数のセルの背景色を文字列の配列で一気に指定できる。
ここでは、図1の「品名」と「単価」の背景色を16進数で指定する。
ツールメニューから「スクリプトエディタ」を起動し、「任意のセルの背景色を変える」というファイルを作成する。「任意のセルの背景色を変える.gs」内に、リスト2のコードを記述する。
function setBackgroundmyFunction() { var sheet=SpreadsheetApp.getActiveSheet(); var range=sheet.getRange("A1:B1"); var color="#FFFF00"; range.setBackground(color); }
getRaneで「品名」と「単価」のセルを指定し(3行目)、色には「黄色」を指定して(4行目)、setBackgroundメソッドで背景色を設定している(5行目)。
実行すると図3のようになる。
Copyright © ITmedia, Inc. All Rights Reserved.