連載
» 2017年02月27日 05時00分 UPDATE

Excel VBAプログラマーのためのGoogle Apps Script入門(3):GASでGoogleスプレッドシートのセルのフォーマット、文字位置、色、サイズ、けい線などを変えるには (1/2)

Googleが提供するGoogle Apps Script(GAS)のプログラミングで、Google Apps(主にスプレッドシート)を操作する方法を解説していく連載。今回は、スプレッドシートのセルのフォーマット、文字位置、色、サイズ、けい線などを変える各メソッドの使い方について。

[薬師寺国安,PROJECT KySS]

 本連載「Excel VBAプログラマーのためのGoogle Apps Script入門」では、Googleが提供する「Google Apps Script」(GAS)のプログラミングで、「Google Apps」を操作する方法を「Google Sheets」(スプレッドシート)を中心に解説していく。

 前回は、スプレッドシートのセルの値、行数や列数を取得したり、セルに値を入力したりするなど、基本操作の仕方を解説した。

 今回は、セルの背景色や文字の色、サイズを変更したり、データを3桁区切りで表示したり、けい線を引いたり、セルを結合したりするなど、いろいろな「書式」(ここでは表現方法のこと)の設定について解説する。

 使用するデータは図1のようなデータを使用する。

図1 今回使用する「品名」と「単価」のデータ

数値や日付の表示形式(フォーマット)を指定するsetNumberFormatメソッド

 まずは数値や日付の表示形式(フォーマット)を指定する方法を見ていこう。

数値や日付の表示形式(フォーマット)を指定するsetNumberFormatメソッドの書式

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");
}
リスト1 「単価」を3桁区切りで表示するコード

 getRangeで「単価」の範囲を取得して(3行目)、setNumberFormatで3桁区切りに指定している(4行目)。

 実行結果は図2のようになる。

図2 「単価」が3桁区切りで表示された

セルの背景色を変えるsetBackgroundメソッド

 次に、セルの背景色を変えてみよう。

セルの背景色を変えるsetBackgroundメソッドの書式

range.setBackground("{背景色}")


 {背景色}の部分は、表示の仕方に合わせた文字列を指定する。指定方法については表1の「カラー名」と「16進数」を参照してほしい。

表1 setBackgroundに指定する色
カラー名 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);
}
リスト2 任意のセルの背景色を変えるコード

 getRaneで「品名」と「単価」のセルを指定し(3行目)、色には「黄色」を指定して(4行目)、setBackgroundメソッドで背景色を設定している(5行目)。

 実行すると図3のようになる。

図3 任意のセルの背景色を変化させた
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。