MENU
IT
PR

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

OfficeScript フォント変更 背景変更
ほし
記事内に商品プロモーションを含む場合があります

初めまして「ほしコラム」管理人のほしです。

今回は、「OfficeScripts」で、罫線・背景などの操作についての記事になります。

「記入したセルに塗りつぶしたいな」

「特定のセルは、目立つように太字にしたい!」

などOfficeScriptsで、セルの書式を変更する方法を知りたい方は読んでみてください!

はじめに

今回は、セルの書式に関する操作方法を説明していきますので、

セルの書式を取得するために、下記のメソッドは抑えておきましょう!

<<Range>>.getFormat : セルの書式の取得

本記事では以下の内容に関して紹介していきたいと思います。

今回紹介するのは、セルの書式に関するメソッドは代表的なものを紹介していきます。

本記事で紹介するコマンド
  • <<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スクリプト Excel 背景色変更
背景色の変更前

Office Script実行後

Officeスクリプト Excel 背景色変更
getFill()
背景色の変更後

コードでは、セルの書式を取得 → 背景クラスの取得→ 背景色の取得 という流れになっています。

セルの書式からすぐに背景色を取得することができないので、<<RangeFormat>>.getFill が必要になります。

1function main(workbook: ExcelScript.Workbook) {
2  //アクティブシートを選択
3  let sheet = workbook.getActiveWorksheet()
4  // 各行に設定する色を配列に設定
5  let colors= ['red','blue','green','yellow']
6   //B列の2行目から5行目まで繰り返す
7  for (let i = 0; i < 4 ; i++){
8    // セルの選択
9    let cell = sheet.getRangeByIndexes(1+i,1,1,1)
10    // セルの書式の取得
11    let format = cell.getFormat()
12    // 書式から背景色を取得
13    let color = format.getFill().getColor()
14    // 背景が白の場合
15    if (color = '#FFFFFF'){
16      // 色の設定
17      format.getFill().setColor(colors[i])
18    }
19  }
20}

OfficeScripts 背景パターンの変更

次に、背景パターンを設定していきます。

背景パターン設定していないものに対して、グレーアウトしていきたいと思います。

Excel(Web版)では、背景パターンを変更は確認できないので、デスクトップアプリで確認してみてください。

背景パターンは、多種類の中から設定することができるので、試してみてください。

Office Script実行前

Officeスクリプト Excel 背景色変更
背景色の変更前

Office Script実行後

Officeスクリプト Excel 背景パターン変更
背景色の変更後
1function main(workbook: ExcelScript.Workbook) {
2
3  //アクティブシートを選択
4  let sheet = workbook.getActiveWorksheet()
5  // 各行に設定する色を配列に設定
6  let colors= ['red','blue','green','yellow']
7   //B列の2行目から5行目まで繰り返す
8  for (let i = 0; i < 4 ; i++){
9    // セルの選択
10    let cell = sheet.getRangeByIndexes(1+i,1,1,1)
11    // セルの書式の取得
12    let format = cell.getFormat()
13    // 書式から背景パターンの取得
14    let pattern = format.getFill().getPattern()
15    // 背景パターンをグレーに変更
16    format.getFill().setPattern(ExcelScript.FillPattern.gray50)
17  }
18}

上記では、セルの背景パターンをグレーアウトしましたが、

背景パターンを設定したものに対して、色も設定するようにしたいと思います。

今回も文字と同じ背景色になるように設定しています。

Office Script実行前

Officeスクリプト Excel 背景色変更
背景パターンの変更前

Office Script実行後

Officeスクリプト Excel 背景パターン変更 背景色変更
背景パターンの変更後
1function main(workbook: ExcelScript.Workbook) {
2
3  //アクティブシートを選択
4  let sheet = workbook.getActiveWorksheet()
5  // 各行に設定する色を配列に設定
6  let colors= ['red','blue','green','yellow']
7   //B列の2行目から5行目まで繰り返す
8  for (let i = 0; i < 4 ; i++){
9    // セルの選択
10    let cell = sheet.getRangeByIndexes(1+i,1,1,1)
11    // セルの書式の取得
12    let format = cell.getFormat()
13    // 書式から背景パターンの設定
14    format.getFill().setPattern(ExcelScript.FillPattern.horizontal)
15    // 背景パターンに、入力と同じ色に変更
16    format.getFill().setPatternColor(colors[i])
17  }
18}

OfficeScripts <<RangeFont>> : セルのフォント

ここでは、セルのフォントについてOfficeScriptsで変更を加えていきたいと思います。

セルのフォントで紹介するコマンド
  • <<RangeFont>> : セルのフォント
    • <<RangeFont>>.getSize() : フォントサイズの取得
    • <<RangeFont>>.setSize(数値) : フォントサイズの設定
    • <<RangeFont>>.getBold() : 太字(ボールド)の取得
    • <<RangeFont>>.setBold(真偽) : 太字(ボールド)の設定
    • <<RangeFont>>.getColor() : テキストカラーの取得
    • <<RangeFont>>.setColor(‘色’) : テキストカラーの設定

サンプルコードでは、セル内のポイント数にフォントサイズを変更して

A列に太字と記載されている行(3行目・5行目)を太字にしていきたいと思います。

コードでは、セルの書式を取得 → フォントクラスの取得→ フォントの変更 という流れになっています。

セルの書式からすぐに背景色を取得することができないので、<<RangeFormat>>.getFont が必要になります。

Office Script実行前

Officeスクリプト Excel フォント変更
セルのフォントを変更前

Office Script実行後

Officeスクリプト Excel フォント変更
セルのフォントを変更後

黄色の太字にした際に、見えにくかったので背景色をグレーに変更しています。

1function main(workbook: ExcelScript.Workbook) {
2
3  //アクティブシートを選択
4  let sheet = workbook.getActiveWorksheet()
5  // 各行に設定する色を配列に設定
6  let colors= ['red','blue','green','yellow']
7   //B列の2行目から5行目まで繰り返す
8  for (let i = 0; i < 20 ; i++){
9    // セルの選択
10    let cell = sheet.getRangeByIndexes(1+i,1,1,1)
11    // セルの書式の取得
12    let format = cell.getFormat()
13
14    // 行番号を取得する
15    let columns = cell.getColumnCount()
16    // フォントサイズを変更する
17    format.getFont().setSize(10+columns*2)
18    // フォントカラーを変更する
19    format.getFont().setColor(colors[i])
20
21    if(i%2!=0){
22      // 3・5行目で太字にする
23      format.getFont().setBold(true)
24    }
25
26  }
27}

最後に

ここまで、読んでいただきありがとうございました。

OfficeScriptsで背景色の変更。フォントの変更について紹介してきました。

PowerAutomateからOfficeScriptsを実行する方法なども紹介していますので

マクロを動かすことすら自動化したいと考えている方は是非読んでみてください!

【VBA・OfficeScripts】PowerAutomateでExcelマクロ実行
【VBA・OfficeScripts】PowerAutomateでExcelマクロ実行
ABOUT ME
ほし
ほし
エンジニア
ほしコラム管理人のほしです。 20代のITエンジニアです。 PowerAutomateで業務効率化の方法を中心に紹介していきます! たまに日常生活についても記事にしていきます! ほしコラム - にほんブログ村
記事URLをコピーしました