earthpg:GAS専門のプログラミングスクール

GASを使って簡単にセルを塗りつぶす方法と応用例

GASを使ってセルを塗りつぶす方法を知りたい。脱手動…!
猫男
猫男
catman
catman
心配するな、catmanが手伝おう。GASなら、セルの塗りつぶしも簡単にできるさ。

GASでセルを塗りつぶす基本

GAS(Google Apps Script)を使えば、スプレッドシート内のセルを簡単に塗りつぶせます。

まずは基本的なコードから始めましょう。

セルを塗りつぶす初歩的なコード

以下のコードで、特定のセルを特定の色で塗りつぶすことができます。


function fillCell() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange("A1");
  range.setBackground("yellow");
}

SpreadsheetApp.getActiveSpreadsheet(): 現在のスプレッドシートを取得します。
getActiveSheet(): アクティブなシートを指定します。
getRange(“A1”): セルA1を取得します。
setBackground(“yellow”): 背景色を黄色に設定します。

こんな簡単なコードでセルを黄色にできるんだね。すごく便利そう!他の応用例も教えてもらえる?
猫男
猫男
catman
catman
いいだろう。次は、もっと応用的な使い方でセルを塗りつぶしていこう。

GAS塗りつぶしの応用例

特定の条件で色を変える

データに基づいてセルの色を変更する方法を見てみましょう。


function conditionalFill() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange("A1:A10");
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) { if (values[i][0] > 50) {
      range.getCell(i + 1, 1).setBackground("green");
    } else {
      range.getCell(i + 1, 1).setBackground("red");
    }
  }
}

getRange(“A1:A10”): A1からA10の範囲を取得します。
getValues(): 範囲内の値をすべて取得します。
getCell(i + 1, 1): 各セルを個別にアクセスします。
– 条件に基づいて背景色を緑または赤にします。

条件をつけた塗りつぶしもできるんだ!これなら、データが多いときも一発で見やすくできるね。
猫男
猫男

列全体を特定の色で塗りつぶす

特定の列全体を同じ色で塗りつぶす方法です。


function fillEntireColumn() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange(1, 2, lastRow, 1); // B列
  range.setBackground("lightgray");
}

getLastRow(): データのある最後の行を取得します。
getRange(1, 2, lastRow, 1): B列のすべての行を取得します。
setBackground(“lightgray”): 背景色をライトグレーに設定します。

catman
catman
データの視覚的整理には塗りつぶしが有効だろう。こうしたスクリプトを活用して自分の作業を効率化しよう。

練習問題

ここで、学んだことを確認できる練習問題を試してみましょう。

  1. GASを使用して、特定の列で50より小さい値を含むセルを青色で塗りつぶしてください。

解答・解説


function practiceFill() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange("B1:B10");
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) {
    if (values[i][0] < 50) {
      range.getCell(i + 1, 1).setBackground("blue");
    }
  }
}

getRange(“B1:B10”): B1からB10のセル範囲を指定します。
for ループ: 各セルの値をチェックします。
– 値が50未満のセルに対して、背景色を青色に変更します。

これなら僕でもできる気がしてきた!GASでセルを塗りつぶすのは、かなり使えるテクニックだね。
猫男
猫男
catman
catman
その通りさ。不安なときは、いつでもcatmanを呼んでくれ。