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

GASで簡単に罫線を操作!取得から削除、条件付き書式まで解説

GASでスプレッドシートの罫線を操作するにはどうしたらいいんだろう?取得や削除なんてできるのかな…条件付き書式と組み合わせられるともっと便利なのに。
猫男
猫男
catman
catman
その疑問にcatmanが答えてやろう。GASを使えば、罫線の取得から削除、さらに条件付き書式と組み合わせた操作も楽にできるのさ。

GASでスプレッドシートの罫線を取得する

まずはGASでスプレッドシートの罫線を取得する方法について解説しよう。この操作は特定の範囲の罫線情報を取得したいときに便利だ。

罫線情報を取得する基本コード


function getBorders() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange('A1:C3');
  const borders = range.getBorder();
  Logger.log(borders);
}

このスクリプトでは、getActiveSpreadsheet()getRange()などを使い、指定したセル範囲の罫線情報を取得できる。

GASで罫線を削除する方法

次にGASを使って罫線を削除する方法を説明しよう。罫線を削除することで、シートのデザインをクリアにできる。

罫線を削除するコード


function clearBorders() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange('A1:C3');
  range.setBorder(false, false, false, false, false, false);
}

このスクリプトを使えば、指定したセル範囲の罫線を簡単に削除できる。強力な機能で、見た目をすっきりとさせることができる。

こういう操作もスクリプトで簡単にできるのはありがたいなぁ。罫線の状態をすぐに変えられるから便利だね。
猫男
猫男

GASと条件付き書式で罫線を操作する

最後に、GAS条件付き書式を使って罫線を制御する方法を紹介しよう。これはセルのデータにもとづいて自動で罫線を付けたり消したりできるので、非常に便利だ。

条件付き書式で罫線を付けるコード


function setConditionalBorders() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange('A1:A10');
  const rule = SpreadsheetApp.newConditionalFormatRule()
    .whenNumberGreaterThan(5)
    .setBorders(true, true, true, true, null, null, SpreadsheetApp.BorderStyle.SOLID)
    .setRanges([range])
    .build();
  const rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

このコードは、SpreadsheetApp.newConditionalFormatRule()を使って、特定の条件下で罫線を設定する。

練習問題:GASで罫線を操作

次のセル範囲 ‘B2:D4’ に、セルの内容が空である場合にだけ罫線を設定するスクリプトを書いてみてください。

解答・解説


function setEmptyCellBorders() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getRange('B2:D4');
  const rule = SpreadsheetApp.newConditionalFormatRule()
    .whenFormulaSatisfied('=ISBLANK(B2)')
    .setBorders(true, true, true, true, null, null, SpreadsheetApp.BorderStyle.DASHED)
    .setRanges([range])
    .build();
  const rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

whenFormulaSatisfied() は数式が満たされる場合に適用するルールを設定する。この場合、セルが空のときに、罫線を追加するようにルールを作成している。これにより、空のセルを簡単に見つけ出せる視覚的な手段が提供される。