スプレッドシートには条件付き書式の設定があります。
この機能を設定することによって、
セルに特定の文字が入っている場合に書式を変更する
特定の日付が入っているとその文字に色をつける設定をする
などといった条件によって書式を変更することが可能になります。
手動で行う際には、
タブの中にある表示形式から条件付き書式をクリック
といった方法でも設定することが可能です。
しかしながら都度設定することは作業効率も悪いですし、誤った設定方法を行う可能性もあります。
条件付き書式の設定をスクリプトで作成していく際には所定の条件を入れる必要があるのですが、条件付き書式の作成方法は スプレッドシートのビルダー作成メソッド
にて説明していますので、こちらの基本的なメソッドが知りたい方はそちらもご覧ください。
今回はその中の条件設定の一つ、セルが空白かどうかを判定するためのメソッド
whenCellEmpty
whenCellNotEmpty
をご紹介します。
このメソッドを使用することによって作業者が、
入力してはいけない箇所で入力をした際
大量のデータ入力の中で入力し忘れてしまった際
にセルの色が変わって気づくことができるなどのミスを防ぐことが可能になります。
スプレッドシートのセルが空白かどうかで起動する条件付き書式メソッド
クラス:ConditionalFormatRuleBuilder
スプレッドシート内の条件付き書式を設定させるためのクラスです。
SpreadsheetApp.newConditionalFormatRule()
と記入し、条件を設定した後に.build()を追加することによって、ビルダーを起動させることが可能になります。
注意:初めてコードを実行する際にアクセス権限の許可を求められますが許可をしてください。アクセス権限についての詳細は以下の記事に詳しく載っています。
無料のGmailアカウントでGASに初回の実行許可を与える方法
whenCellEmpty():条件(セルが空白の時)
条件付き書式ルールの作成をするために必要な条件の一つのメソッドです。
このメソッドはSpreadsheetApp.newConditionalFormatRule()の後に続けることにより、
セルが空白の場合に発生する条件を設定することが可能になります。
このメソッドwhenCellEmptyの後に条件付き書式メソッドを付け加えていくことによって、オリジナルのスプレッドシート条件書式を作成する事ができます。
今回はこのメソッドをGoogleリファレンスの例を元に説明します。A1からB3の範囲に値が何も入っていない場合にそのセルの背景が赤色になるスクリプトを作成しています。以下がスクリプトです。
function whenCellEmpty(){ var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange("A1:B3"); var rule = SpreadsheetApp.newConditionalFormatRule() .whenCellEmpty() .setBackground("#FF0000") .setRanges([range]) .build(); var rules = sheet.getConditionalFormatRules(); rules.push(rule); sheet.setConditionalFormatRules(rules); }
*Googleリファレンスでは6行目がsetBackgroundColorとありますがsetBackgroundを使用してください。
(リファレンスのままだとエラーが出てしまいます。)
4行目からのSpreadsheetApp.newConditionalFormatRule()以降の条件説明
5行目:whenCellEmpty セルが空白の時
6行目:.setBackground(“#FF0000”) 背景を赤に設定
7行目:.setRanges([range]):範囲を設定(今回は3行目のA1:B3を設定)
8行目:.build():ビルダーを実行する際に必要
この他の条件付き書式の内容は
Class ConditionalFormatRuleBuilder(公開予定)で詳しく紹介していきますのでご覧ください。
今回のスクリプトを起動することによって以下の画像のようにA1:B3の範囲にが空白の場合セル背景が赤くなります。
設定がきちんと行われているか確認するためA4にもは対象外のため1と入力しても変化はありません。
表示形式タブの条件付き書式をクリックすると右のように条件付き書式が設定されているのがわかりますね。
このように条件書式を作成するためにnewConditionalFormatRule()メソッドが使用されます。
whenCellNotEmpty():条件(セルが空白ではない時)
条件付き書式ルールの作成をするために必要な条件の一つのメソッドです。
先ほどのwhenCellEmptyとは逆に、このメソッドはセルが空白ではない(何か記載されている)場合に起動が行われるという条件になります。
この条件の後に条件付き書式メソッドを付け加えていくことによって、オリジナルのスプレッドシート条件書式を作成する事ができます。
ではサンプルを見ていきましょう。
function whenCellNotEmpty(){ var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange("A1:B3"); var rule = SpreadsheetApp.newConditionalFormatRule() .whenCellNotEmpty() .setBackground("#FF0000") .setRanges([range]) .build(); var rules = sheet.getConditionalFormatRules(); rules.push(rule); sheet.setConditionalFormatRules(rules); }応用
まとめ
今回はスプレッドシートの様々な設定を作成するためのビルダーメソッドを紹介しました。このメソッドだけでは活用することはできませんが、条件付き書式などを作成するためには必要ですのでしっかりと理解することが重要です。
これらの機能が使えるようになるとスプレッドシートに制限をかけることにより作業の効率化やミスの低下も防ぐことができます。
またテキストスタイルの統一も簡単に設定できるので、
作業する人によって
フォントサイズが変わってしまう
文字の大きさが変わってしまう
といった事もなくなるため、チェックする時間も大幅に短縮することが可能になります。
ですのでぜひこのConditionalFormatRuleBuilderメソッド条件の使い方をしっかり覚えて活用できるといいですね。
ここまでご覧いただきありがとうございました。