スプレッドシートを作成する際に、文字の大きさや条件書式などを設定することがあります。
そのためテキストスタイルを変更する際に、
毎回同じ書式を使う場合でも同じ設定をするために時間がかかる
同じ報告書なのに他の人のスプレッドシートの文字の大きさや記載方法が違う
などの手間がかかってしまうことで効率が下がってしまうことがあります。
そのように手動で毎回設定するのではなく、スクリプトで書式などをあらかじめ設定することによって、
作業効率・ミスの低下・確認の簡素化
が出来るテキストスタイルの設定方法newTextStyleメソッドについて今回はご紹介します。
newTextStyle() :テキストスタイル作成
スプレッドシート内にテキストスタイルビルダー(太字や文字の大きさなど)を作成できます。
このメソッドに続けて設定条件、設定する内容を指定することにより自動的にテキストスタイルを設定することができます。
スプレッドシートの機能作成メソッドは他にも
newConditionalFormatRuleメソッド(条件付き書式)
newDataValidation()メソッド(入力規則)
newFilterCriteria()メソッド(フィルタ作成)
newRichTextValue() メソッド(リッチテキスト)
newTextStyle()メソッド(テキストスタイル)このブログ
などがあります。(各リンクに詳しい説明があるのでご覧ください。)
クラス:SpreadsheetApp
注意:初めてコードを実行する際にアクセス権限の許可を求められますが許可をしてください。アクセス権限についての詳細は以下の記事に詳しく載っています。
無料のGmailアカウントでGASに初回の実行許可を与える方法
構造
SpreadsheetApp.newTextStyle().設定環境.build()
こちらがテキストスタイルビルダーを作成するための基本メソッドです。
newTextStyle()の後に条件となるトリガーをスクリプトで記入をし最後にbuild()でビルダーを構築させます。
サンプルスクリプト1(フォントカラーの変更)
それではサンプルを作成していきましょう。
初めは特定のセルに文字を入れるとテキストカラーが変わるスクリプトを作成してみます。
以下のスクリプトをスプレッドシート内のツールタブのスクリプトエディタ内に記入してみてください。
function newTextStyle1(){
var range = SpreadsheetApp.getActive().getRange('A1:B3');
var style = SpreadsheetApp.newTextStyle()
.setForegroundColor("red")
.build();
range.setTextStyle(style);
}
3行目位のnewTextStyleメソッド以降のビルダー作成では以下のclass TextStyleBuilderを使用しています。
.setForegroundColor(色名) :テキストカラーの設定(赤なら"red" もしくは"#FF0000") .build() :ビルダーを実行する際に必要
setTextStyleに作成したビルダーを入れて、スクリプトを実行します。
実行した後に以下のように文字をいれてみます。
2行目で
var range = SpreadsheetApp.getActive().getRange(‘A1:B3’);
と設定しているのでA1からB3までに文字を入れるとテキストカラーが赤色になっていることがわかります。
サンプルスクリプト2(フォントサイズの変更)
では次にフォントサイズを変更してみます。
function newTextStyle2(){ var range = SpreadsheetApp.getActive().getRange('C1:D3'); var style = SpreadsheetApp.newTextStyle() .setFontSize(22) .build(); range.setTextStyle(style); }
newTextStyleメソッド以降のビルダー作成では以下のclass TextStyleBuilderを使用しています。
.setFontSize(フォントサイズ数値) :フォントサイズの設定(数字) .build() :ビルダーを実行する際に必要 先ほどのサンプル1と同じようにスクリプト実行をした後、文字をいれてみると以下の画像のようになります。
C1からD3までが範囲がフォントサイズ22になっています。
サンプルスクリプト3(様々なテキストスタイルの設定 Googleリファレンスから)
最後はGoogleリファレンスを使用して解説します。複数のテキストスタイルを使用して設定します。
スプレッドシート内のスクリプトで作成してください。
function newTextStyle3(){ var range = SpreadsheetApp.getActive().getRange('E1:F3'); var style = SpreadsheetApp.newTextStyle() .setForegroundColor("red") .setFontSize(22) .setBold(true) .setUnderline(true) .build(); range.setTextStyle(style); }
newTextStyleメソッド以降のビルダー作成では以下のclass TextStyleBuilderを使用しています。
.setForegroundColor(色名) :テキストカラーの設定(赤なら"red" もしくは"#FF0000") .setFontSize(フォントサイズ数値) :フォントサイズの設定(数字) .setBold(真偽値) :太字にする設定(設定するならtrue) .setUnderline(真偽値) :テキスト下線を引く設定(設定するならtrue) .build() :ビルダーを実行する際に必要
そして、setTextStyleに作成したビルダーを入れて、スクリプトを実行します。
そうするとE1:F3の範囲内でテキスト入力をすると以下のようになります。
E1からF3までの範囲が赤文字 フォントサイズ22 太字 下線が付いているのがわかります。
そのほかのClass TextStyleBuilder
先ほど紹介した以外にもいくつかメソッドがありますのでご紹介します。
setFontFamily(フォントファミリー名) :”Arial”などのフォントを設定できるメソッドです。
setItalic(真偽値) :テキストをイタリックに設定できるメソッドです。設定する場合はtrueを指定します。
setStrikethrough(真偽値) : テキストに取り消し線を設定できるメソッドです。設定する場合はtrueを指定します。
まとめ
今回はスプレッドシートの様々なテキストスタイルを作成するためのnewTextStyleメソッドを紹介しました。
このメソッドを使用することによって見た目の変更を毎回設定することが無いので
商品の値段列だけを赤文字にして目立つようにする
1行目だけフォントサイズを変えることによって品目行を分かりやすくする
などといったことが自動で設定できるようになります。ですのでぜひこの使い方をマスターしてみてください。
ここまでご覧いただきありがとうございました。