【Office Scripts】セルのフォント・背景の操作

初めまして「ほしコラム」管理人のほしです。
今回は、「OfficeScripts」で、罫線・背景などの操作についての記事になります。
「記入したセルに塗りつぶしたいな」
「特定のセルは、目立つように太字にしたい!」
などOfficeScriptsで、セルの書式を変更する方法を知りたい方は読んでみてください!
はじめに
今回は、セルの書式に関する操作方法を説明していきますので、
セルの書式を取得するために、下記のメソッドは抑えておきましょう!
本記事では以下の内容に関して紹介していきたいと思います。
今回紹介するのは、セルの書式に関するメソッドは代表的なものを紹介していきます。
- <<RangeFill>> : 背景の設定
- <<RangeFill>>.getClolor() :背景色の取得
- <<RangeFill>>.setClolor(‘色’) :背景色の設定
- <<RangeFill>>.getPattern() :背景パターンの取得
- <<RangeFill>>.setPattern(‘種類’) :背景パターンの設定
- <<RangeFill>>.getPatternColor() :背景パターン色の取得
- <<RangeFill>>.setPatternColor(‘色’) :背景パターン色の取得
- <<RangeFont>> : セルのフォント
- <<RangeFont>>.getSize() : フォントサイズの取得
- <<RangeFont>>.setSize(数値) : フォントサイズの設定
- <<RangeFont>>.getBold() : 太字(ボールド)の取得
- <<RangeFont>>.setBold(真偽) : 太字(ボールド)の設定
- <<RangeFont>>.getColor() : テキストカラーの取得
- <<RangeFont>>.setColor(‘色’) : テキストカラーの設定
OfficeScriptsソースコード
これから、実際にOfficeScritpのソースコードを使用して解説していきます。
OfficeScripts <<RangeFill>> : 背景の設定
ここでは、セルの背景についてOfficeScriptsで変更を加えていきたいと思います。
- <<RangeFill>> : 背景の設定
- <<RangeFill>>.getClolor() :背景色の取得
- <<RangeFill>>.setClolor(‘色’) :背景色の設定
- <<RangeFill>>.getPattern() :背景パターンの取得
- <<RangeFill>>.setPattern(‘種類’) :背景パターンの設定
- <<RangeFill>>.getPatternColor() :背景パターン色の取得
- <<RangeFill>>.setPatternColor(‘色’) :背景パターン色の取得
サンプルコードでは、背景色の変更と背景パターンを変更していきたいと思います。
OfficeScripts 背景色の変更
まず背景色を変更していきます。
実行前は白ですが、実行後は入力文字に合わせて背景色を変更されています。
Office Script実行前

Office Script実行後

コードでは、セルの書式を取得 → 背景クラスの取得→ 背景色の取得 という流れになっています。
セルの書式からすぐに背景色を取得することができないので、<<RangeFormat>>.getFill が必要になります。
function main(workbook: ExcelScript.Workbook) {
//アクティブシートを選択
let sheet = workbook.getActiveWorksheet()
// 各行に設定する色を配列に設定
let colors= ['red','blue','green','yellow']
//B列の2行目から5行目まで繰り返す
for (let i = 0; i < 4 ; i++){
// セルの選択
let cell = sheet.getRangeByIndexes(1+i,1,1,1)
// セルの書式の取得
let format = cell.getFormat()
// 書式から背景色を取得
let color = format.getFill().getColor()
// 背景が白の場合
if (color = '#FFFFFF'){
// 色の設定
format.getFill().setColor(colors[i])
}
}
}
OfficeScripts 背景パターンの変更
次に、背景パターンを設定していきます。
背景パターン設定していないものに対して、グレーアウトしていきたいと思います。
Excel(Web版)では、背景パターンを変更は確認できないので、デスクトップアプリで確認してみてください。
背景パターンは、多種類の中から設定することができるので、試してみてください。
Office Script実行前

Office Script実行後

function main(workbook: ExcelScript.Workbook) {
//アクティブシートを選択
let sheet = workbook.getActiveWorksheet()
// 各行に設定する色を配列に設定
let colors= ['red','blue','green','yellow']
//B列の2行目から5行目まで繰り返す
for (let i = 0; i < 4 ; i++){
// セルの選択
let cell = sheet.getRangeByIndexes(1+i,1,1,1)
// セルの書式の取得
let format = cell.getFormat()
// 書式から背景パターンの取得
let pattern = format.getFill().getPattern()
// 背景パターンをグレーに変更
format.getFill().setPattern(ExcelScript.FillPattern.gray50)
}
}
上記では、セルの背景パターンをグレーアウトしましたが、
背景パターンを設定したものに対して、色も設定するようにしたいと思います。
今回も文字と同じ背景色になるように設定しています。
Office Script実行前

Office Script実行後

function main(workbook: ExcelScript.Workbook) {
//アクティブシートを選択
let sheet = workbook.getActiveWorksheet()
// 各行に設定する色を配列に設定
let colors= ['red','blue','green','yellow']
//B列の2行目から5行目まで繰り返す
for (let i = 0; i < 4 ; i++){
// セルの選択
let cell = sheet.getRangeByIndexes(1+i,1,1,1)
// セルの書式の取得
let format = cell.getFormat()
// 書式から背景パターンの設定
format.getFill().setPattern(ExcelScript.FillPattern.horizontal)
// 背景パターンに、入力と同じ色に変更
format.getFill().setPatternColor(colors[i])
}
}
OfficeScripts <<RangeFont>> : セルのフォント
ここでは、セルのフォントについてOfficeScriptsで変更を加えていきたいと思います。
- <<RangeFont>> : セルのフォント
- <<RangeFont>>.getSize() : フォントサイズの取得
- <<RangeFont>>.setSize(数値) : フォントサイズの設定
- <<RangeFont>>.getBold() : 太字(ボールド)の取得
- <<RangeFont>>.setBold(真偽) : 太字(ボールド)の設定
- <<RangeFont>>.getColor() : テキストカラーの取得
- <<RangeFont>>.setColor(‘色’) : テキストカラーの設定
サンプルコードでは、セル内のポイント数にフォントサイズを変更して
A列に太字と記載されている行(3行目・5行目)を太字にしていきたいと思います。
コードでは、セルの書式を取得 → フォントクラスの取得→ フォントの変更 という流れになっています。
セルの書式からすぐに背景色を取得することができないので、<<RangeFormat>>.getFont が必要になります。
Office Script実行前

Office Script実行後

黄色の太字にした際に、見えにくかったので背景色をグレーに変更しています。
function main(workbook: ExcelScript.Workbook) {
//アクティブシートを選択
let sheet = workbook.getActiveWorksheet()
// 各行に設定する色を配列に設定
let colors= ['red','blue','green','yellow']
//B列の2行目から5行目まで繰り返す
for (let i = 0; i < 20 ; i++){
// セルの選択
let cell = sheet.getRangeByIndexes(1+i,1,1,1)
// セルの書式の取得
let format = cell.getFormat()
// 行番号を取得する
let columns = cell.getColumnCount()
// フォントサイズを変更する
format.getFont().setSize(10+columns*2)
// フォントカラーを変更する
format.getFont().setColor(colors[i])
if(i%2!=0){
// 3・5行目で太字にする
format.getFont().setBold(true)
}
}
}
最後に
ここまで、読んでいただきありがとうございました。
OfficeScriptsで背景色の変更。フォントの変更について紹介してきました。
PowerAutomateからOfficeScriptsを実行する方法なども紹介していますので
マクロを動かすことすら自動化したいと考えている方は是非読んでみてください!
