libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

スプレッドシート利用の基本 (4/5)

作成:2011-06-17 08:14
更新:2011-11-04 15:33

■セルのプロパティを操作する

それぞれのセルには、さまざまなプロパティが用意されています。例えばセルの背景色、表示されるテキストの色やフォント、スタイルなど、さまざまな情報がセルには用意されています。いわゆる「プロパティ(属性)」というものですね。

これらは、Google Apps Scriptの世界では、Rangeオブジェクトに用意されているメソッドによってやりとりすることができます。例えば背景色なら、getBackgroundColorで値をとり出したり、setBackroundColorで値を設定したりできるようになっています。

このように、「get○○で値をとり出し、set○○で値を変更する」といった操作が、Google Apps Scriptでは「そこに用意されているプロパティを扱う際の基本的なやり方」となっています。ですから、そのアプリケーションにどういうプロパティがあったかを考えれば、ごく自然にそれを利用するためのメソッドがどういうものかも想像がつくわけです。では、色とフォントに関する主なメソッドについて以下に整理していきましょう。

○背景色の取得
変数 = 《Range》.getBackgroundColor();
変数 = 《Range》.getBackgroundColors();

○背景色の変更
《Range》.setBackgroundColor( 値 );
《Range》.setBackgroundColors( 値 );
背景色(backgroundColorプロパティ)は、上記のメソッドで値のやり取りが行えます。値は、色を示すテキストとなります。例えば、"red"といった色名や、"#FF0000"といった16進数を用います。

メソッドを見ると、それぞれ単数形複数形のものが用意されていることが分かります。単数形は、レンジの範囲の1つ(通常は左上のセル)の値だけを操作するもので、複数形は全セルの値をまとめて操作するものです。まとめて操作するということは、すべてのセルの値を何らかの形で扱うことになります。

getBackgroundColorsでは、返値は2次元配列となります。また、getBackgroundColorsでも、引数に指定するのは2次元配列です。この2次元配列は、いずれもそのレンジで指定された範囲の全セルの背景色をまとめたものとなります。

○テキスト色の取得
変数 = 《Range》.getFontColor();
変数 = 《Range》.getFontColors();

○テキスト色の変更
《Range》.setFontColor( 値 );
《Range》.setFontColors( 値 );
テキストの色(fontColorプロパティ)を利用するためには、上記のようなメソッドがRangeに用意されています。やはり、背景色と同様、単数形と複数形のメソッドがあります。これも複数形のものは全セルの値を2次元配列としてまとめたものになります。

○フォントファミリーの取得
変数 = 《Range》.getFontFamily();
変数 = 《Range》.getFontFamilies();

○フォントファミリーの変更
《Range》.setFontFamily( 値 );
《Range》.setFontFamilies( 値 );
フォントファミリー(fontFamilyプロパティ)に関するメソッドです。値は、使用するフォント名のテキストになります。複数形が、単にsをつけただけではないので、間違えないようにしましょう。

○フォントサイズの取得
変数 = 《Range》.getFontSize();
変数 = 《Range》.getFontSizes();

○フォントサイズの変更
《Range》.setFontSize( 値 );
《Range》.setFontSizes( 値 );
フォントサイズ(fontSizeプロパティ)は、整数(int値)として扱われます。やはり単数形と複数形のメソッドが用意されています。

○フォントスタイルの取得

変数 = 《Range》.getFontStyle();
変数 = 《Range》.getFontStyles();

○フォントスタイルの変更
《Range》.setFontStyle( 値 );
《Range》.setFontStyles( 値 );
フォントスタイル(fontStyleプロパティ)は、セルに設定されるスタイル名を示すテキストになります。利用可能なテキストは、"italic", "normal", "oblique"のいずれかとなります。見ればわかるようにボールドは含まれません。

○ボールドの取得
変数 = 《Range》.getFontWeight();
変数 = 《Range》.getFontWeights();

○ボールドの変更
《Range》.setFontWeight( 値 );
《Range》.setFontWeights( 値 );
ボールド(fontWeightプロパティ)は、fontStyleプロパティでは設定されません。これはfontWeightというものとして別に用意されているのです。値は、"normal""bold"のいずれかのテキストになります。

――とりあえず、色とフォントに関するものをひと通りあげておきました。下のリスト欄に、簡単な利用例をあげておきましょう。これは、選択された範囲の各セルの背景色とテキスト色を、赤系と青系で交互に変えて設定するものです。
(by. SYODA-Tuyano.)

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

*program list*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
※選択範囲の各セルの背景色とテキスト色を設定する
function myFunction(){
    var range = SpreadsheetApp.getActiveRange();
    var r = range.getNumRows();
    var c = range.getNumColumns();
    var arr = new Array(r);
    var arr2 = new Array(r);
    for(var i = 0;i < r;i++){
        arr[i] = new Array(c);
        arr2[i] = new Array(c);
    }
    Logger.log(arr);
    var total = 0;
    for(var i = 0;i < r;i++){
        for(var j = 0;j < c;j++){
            if ((i + j) % 2 == 0){
             arr[i][j] = "#FF0000";
             arr2[i][j] = "#FFCCCC";
            } else {
                arr[i][j] = "#0000FF";
                arr2[i][j] = "#CCCCFF";
            }
        }
    }
    range.setFontColors(arr);
    range.setBackgroundColors(arr2);
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る