スプレッドシート利用の基本 (5/5)
作成:2011-06-17 08:19
更新:2011-11-04 15:34
更新:2011-11-04 15:34
■フォーマットとフォーミュラ(式)
セルには、表示の色やフォントといったプロパティだけでなく、もっと重要な情報も保管されています。それは「フォーマット」と「フォーミュラ」です。
フォーマットは、数字の表示形式を指定するためのものです。3桁ごとのカンマ表示、小数点以下何桁で丸めるか、そうしたことをフォーマットとして設定します。これはスプレッドシートの<表示形式><数字>メニューにサブメニューとして用意されている項目をイメージすればよいでしょう。
フォーミュラは、セルに設定される計算式のことです。各セルでは、数値だけでなく、「=○○」というようにイコール記号で始まる式を書くことで、その式の計算結果を表示させることができます。これがフォーミュラです。
この他、セルの表示を整えるのに用いられる「枠線(ボーダー)」も重要でしょう。枠線を使って表などを作成したりしますから、これをスクリプトから設定できると、ぐんとスクリプトの汎用性も高まります。これらについて用意されているメソッドも整理しておきましょう。
○フォーマットの取得
○フォーマットの変更
これらのものも、先ほどの色やフォントと同様、単数形と複数形のメソッドが用意されています。numberFormatプロパティを操作するためのもので、フォーマットを示すテキストが値として扱われます。フォーマットは、数字の表示形式を指定するためのものです。3桁ごとのカンマ表示、小数点以下何桁で丸めるか、そうしたことをフォーマットとして設定します。これはスプレッドシートの<表示形式><数字>メニューにサブメニューとして用意されている項目をイメージすればよいでしょう。
フォーミュラは、セルに設定される計算式のことです。各セルでは、数値だけでなく、「=○○」というようにイコール記号で始まる式を書くことで、その式の計算結果を表示させることができます。これがフォーミュラです。
この他、セルの表示を整えるのに用いられる「枠線(ボーダー)」も重要でしょう。枠線を使って表などを作成したりしますから、これをスクリプトから設定できると、ぐんとスクリプトの汎用性も高まります。これらについて用意されているメソッドも整理しておきましょう。
○フォーマットの取得
変数 = 《Range》.getNumberFormat();
変数 = 《Range》.getNumberFormats();
○フォーマットの変更
《Range》.setNumberFormat( 値 );
《Range》.setNumberFormats( 値 );
○フォーミュラの取得
変数 = 《Range》.getFormula();
変数 = 《Range》.getFormulas();
○フォーミュラの変更
《Range》.setFormula( 値 );フォーミュラ(formulaプロパティ、式のこと)を扱うためのメソッドです。セルに設定された計算式や関数などのテキストが値として扱われます。
《Range》.setFormulas( 値 );
○R1C1型フォーミュラの取得
変数 = 《Range》.getFormulaR1C1();
変数 = 《Range》.getFormulasR1C1();
○R1C1型フォーミュラの変更
《Range》.setFormulaR1C1( 値 );フォーミュラを扱うためのメソッドですが、セルの指定をR1C1形式にした値になります。これは、例えば「A1」ならば「R[1]C[1]」といった形のテキストになります。
《Range》.setFormulasR1C1( 値 );
○枠線(ボーダー)の設定
《Range》.setBorder( 上, 左, 下, 右, 垂直, 水平 );
実際の利用例を下のリスト欄にあげておきましょう。B2~B6の合計をB7に、平均をB8に書きだすサンプルです。まず、getRnd関数を呼び出して、乱数の配列を用意し、range.setValuesで指定した範囲のセルに値を設定します。そしてその下のセルに、"=SUM(B2:B6)"という式を、更にその下に"=B7 / 5"という式をsetFormulaで指定します。
合計と平均のセルには、setNumberFormatでフォーマットを指定し、小数点以下2桁まで表示するようにしておきます。またsetBorderを使い、2つのセルにアンダーラインを表示させています。
――このあたりまでくると、スプレッドシートのセルについては、かなり自由にスクリプトで操作できるようになってきたことでしょう。少しずつ実用的なスクリプトも書けるようになってきたはずですよ。