![見出し画像](https://assets.st-note.com/production/uploads/images/91051846/rectangle_large_type_2_214a9d3e205b0f6a42a1b4be340a9a38.jpeg?width=800)
【GAS】Google Apps Script 活用事例 条件付き書式を挿入するスクリプト
重複を判定する条件付き書式
=COUNTIF(A:A,A:A)>1
![](https://assets.st-note.com/img/1668257096132-T1U78WvrCv.png?width=800)
スクリプト全体
function onOpen(){
SpreadsheetApp.getUi()
.createMenu('追加メニュー')
.addItem('重複しているIDに色をつける条件付き書式を追加する', 'showDouble')
.addItem('closeになったら灰色にする条件付き書式を追加する', 'setBackColorsWhenClose')
.addToUi();
}
function showDouble(){
const format = '=COUNTIF(A:A,A:A)>1';
insertFormula_(format);
}
function setBackColorsWhenClose(){
const format = '=$A2="close"';
insertFormula_(format);
}
/**
* 選択している範囲に、上限付き書式を挿入する
* @param {string} 条件付き書式
*
*/
function insertFormula_(format) {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const activeRange = sheet.getActiveRange();
console.log(`アクティブなシート:${sheet.getName()}`);
console.log(`アクティブな範囲:${activeRange.getA1Notation()}`);
let rule;
switch(true){
case /.*COUNTIF.*/.test(format):
rule = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied(format)
.setBackground('#CFE2F3')//背景色を水色にする
.setRanges([activeRange])//範囲は現在使われている範囲
.build(); //条件を確定
break
case /.*close.*/.test(format):
rule = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied(format)
.setBackground('#999999')
.setRanges([sheet.getRange('A2:Z1000')])
.build();
break
default:
}
const rules = [];
rules.push(rule);
sheet.setConditionalFormatRules(rules);
}
特定の単語があったら行全体を灰色に着色する
=$A2="close"
![](https://assets.st-note.com/img/1668257549921-EfOVYO8Irb.png?width=800)
2つの単語のうち、いずれかのキーワードを含む単語があったら着色する
=OR(REGEXMATCH($C2,"内定.*"),REGEXMATCH($C2,"オファー.*"))
![](https://assets.st-note.com/img/1668258679045-yV2LXcFrQP.png?width=800)
この記事が気に入ったらサポートをしてみませんか?