Office Scriptsで条件付き書式を自動化!閾値・ルールによる色分け処理をやさしく解説
生徒
「Excelで売上が高いときは赤色、低いときは青色にする条件付き書式を、Office Scriptsで自動化できますか?」
先生
「できますよ。Office Scriptsを使えば、閾値(しきいち)を決めて色分けする処理を自動化できます。」
生徒
「閾値ってなんですか?」
先生
「ある数値を境目にして、条件を分ける基準のことです。たとえば80点以上なら赤色、というようなルールですね。それでは一緒に学びましょう!」
1. Office Scriptsとは?Excel自動化の基本
Office Scriptsとは、Excel Onlineで使えるExcel自動化ツールです。マウスで行っている操作をコードに書き換えることで、繰り返し作業をボタンひとつで実行できます。Excelの自動化、業務効率化、データ処理の自動実行などを実現できる便利な仕組みです。
特に、条件付き書式の自動化は人気があります。売上管理表、成績一覧表、在庫管理表などで、特定の数値を超えたら色を変えるといった処理を自動で行えます。
2. 条件付き書式と閾値の考え方
条件付き書式とは、セルの値に応じて色や文字の装飾を変える機能です。たとえば「100以上なら緑色」「50未満なら赤色」のように設定できます。
ここで重要なのが閾値です。閾値とは「ここから上か下かを分ける境界線」のことです。テストの合格ラインや、売上目標の基準と同じ考え方です。
Office Scriptsでは、この閾値をコードで指定してルールを自動設定できます。
3. 80以上を赤色にするシンプルな例
まずは基本的な例です。A1からA10の範囲で、80以上の数値を赤色にします。これは成績表などでよく使われるパターンです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:A10");
const conditionalFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue);
conditionalFormat.getCellValue().setRule({
operator: ExcelScript.ConditionalCellValueOperator.greaterThanOrEqual,
formula1: "80"
});
conditionalFormat.getFormat().getFill().setColor("red");
}
このコードでは「80以上」という閾値を設定しています。greaterThanOrEqualは「以上」という意味です。英語ですが、意味を覚えると理解しやすくなります。
4. 50未満を青色にするルール
次は、50未満なら青色にする例です。低い数値を目立たせたいときに便利です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("B1:B10");
const conditionalFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue);
conditionalFormat.getCellValue().setRule({
operator: ExcelScript.ConditionalCellValueOperator.lessThan,
formula1: "50"
});
conditionalFormat.getFormat().getFill().setColor("blue");
}
lessThanは「未満」という意味です。このように閾値を変えるだけで、自由にルールを作れます。
5. 2段階ルールで色分けする方法
実務では、ひとつの条件だけでなく複数の条件で色分けすることが多いです。たとえば「90以上は緑」「70以上は黄色」といった段階評価です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("C1:C10");
// 90以上は緑
const highFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue);
highFormat.getCellValue().setRule({
operator: ExcelScript.ConditionalCellValueOperator.greaterThanOrEqual,
formula1: "90"
});
highFormat.getFormat().getFill().setColor("green");
// 70以上は黄色
const middleFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue);
middleFormat.getCellValue().setRule({
operator: ExcelScript.ConditionalCellValueOperator.greaterThanOrEqual,
formula1: "70"
});
middleFormat.getFormat().getFill().setColor("yellow");
}
このように複数の条件付き書式を追加することで、Excel自動化による段階的な色分け処理が実現できます。
6. 数式ルールでより柔軟に制御する
条件付き書式は数式でも設定できます。たとえば「平均より高い値を強調する」といった高度なルールも可能です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("D1:D10");
const conditionalFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.custom);
conditionalFormat.getCustom().setFormula("=D1>AVERAGE(D1:D10)");
conditionalFormat.getFormat().getFill().setColor("orange");
}
AVERAGEは平均を求める関数です。数式ルールを使うと、単純な閾値だけでなく、データ全体を基準にした色分けも自動化できます。
7. 条件付き書式自動化のメリット
Office Scriptsで条件付き書式を自動化する最大のメリットは、作業時間の短縮です。毎回手作業で設定する必要がありません。
さらに、ルールを統一できるため、チーム全体で同じ基準を保てます。Excel業務効率化、データ分析の見える化、売上管理の自動化など、多くの場面で活用できます。
プログラミング未経験の方でも、まずは数値を比較するルールから始めれば理解しやすいです。閾値という考え方を覚えれば、応用も簡単になります。
まとめ
今回は、Office Scriptsを使った条件付き書式の自動化について、閾値という考え方を中心にやさしく確認してきました。Excel Onlineでの自動化は、単なる作業短縮だけでなく、業務効率化やデータ分析の質を高める大切な手段です。特に売上管理表、成績一覧表、在庫管理表のように数値を扱う場面では、条件付き書式による色分け処理が視覚的な判断を大きく助けてくれます。
閾値とは、ある数値を境目にして条件を分ける基準のことでした。八十以上なら赤色、五十未満なら青色といったように、数値の比較によって表示形式を変える仕組みです。この閾値をOffice Scriptsのコードで指定することで、毎回手動で設定しなくても、ボタンひとつで同じルールを再現できるようになります。
また、単一の条件だけでなく、九十以上は緑、七十以上は黄色というような段階的な色分けも可能でした。これは評価表や売上ランク分け、目標達成度の可視化などに非常に役立ちます。Excel自動化と条件付き書式を組み合わせることで、データの見える化が一気に進みます。
さらに、数式ルールを活用することで、平均より高い値だけを強調するなど、より柔軟な制御も実現できます。単純な数値比較にとどまらず、データ全体を基準にした判断ができる点は、Office Scriptsの大きな魅力です。Excel業務効率化、データ処理自動化、繰り返し作業の削減という観点でも、条件付き書式の自動設定は非常に効果的です。
サンプルプログラムの振り返り
ここで、複数の閾値を使った色分け処理をもう一度整理してみましょう。下記は、八十以上を赤色、五十未満を青色に同時に設定する例です。条件付き書式を追加で設定するだけで、複数ルールを共存させることができます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("E1:E10");
// 80以上は赤
const highFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue);
highFormat.getCellValue().setRule({
operator: ExcelScript.ConditionalCellValueOperator.greaterThanOrEqual,
formula1: "80"
});
highFormat.getFormat().getFill().setColor("red");
// 50未満は青
const lowFormat = range.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue);
lowFormat.getCellValue().setRule({
operator: ExcelScript.ConditionalCellValueOperator.lessThan,
formula1: "50"
});
lowFormat.getFormat().getFill().setColor("blue");
}
このように、条件付き書式自動化では、範囲の取得、条件の指定、色の設定という三つの流れを理解することが重要です。Excel Onlineでのスクリプト作成に慣れてくると、売上分析や成績評価、在庫警告表示など、さまざまな業務に応用できます。
生徒
「Office Scriptsで条件付き書式を自動化すると、毎回同じ設定を手動でやらなくてよくなるんですね。」
先生
「その通りです。閾値をコードで定義しておけば、Excel自動化によって誰が実行しても同じルールが適用されます。」
生徒
「八十以上や五十未満のような数値比較だけでなく、平均より高いかどうかも判断できるのが便利だと思いました。」
先生
「数式ルールを使えば、データ全体を基準にした色分け処理も可能です。これができると、データ分析や業務効率化の幅が広がります。」
生徒
「条件付き書式と閾値の考え方を理解できたので、売上管理表や成績一覧表でも応用できそうです。」
先生
「とても良い理解です。Office ScriptsとExcel Onlineを活用すれば、色分け処理の自動化、データの見える化、作業時間短縮を同時に実現できます。まずはシンプルな閾値から始めて、少しずつ複雑なルールに挑戦していきましょう。」