【GAS】スプレッドシートのフィルター条件を作成するnewRichTextValueメソッドをマスター

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

スプレッドシートでデータ入力や資料などを作成していく中で、URLリンクを貼り付けすることもあるかと思います。

また見た目にインパクトをつけるために特定の文章の一部を太字にするなどするなどの装飾加工をするときもあります。

一度しか使わない資料や同じURLリンクを貼り付けるだけであれば手動で入力することも可能です。

しかしながら大量のデータを扱ったり、都度内容を変える資料を手動で変更することは大変ですね。

そこで今回は作成者によってURLデータを変更したりする際に使用できるnewRichTextValueメソッドをサンプルスクリプトを使ってご紹介します。


newRichTextValue() :リッチテキスト作成

スプレッドシート内にリッチテキスト(リンクの設定や一部文字のテキストスタイルの変更など)を作成できます。

このメソッドに続けて設定条件、設定する内容を設定することができます。

スプレッドシートの機能作成メソッドは他にも

newConditionalFormatRuleメソッド(条件付き書式)

newDataValidation()メソッド(入力規則)

newFilterCriteria()メソッド(フィルタ作成)

newRichTextValue() メソッド(リッチテキスト)このブログ

newTextStyle()メソッド(テキストスタイル)

などがあります。(各リンクに詳しい説明があるのでご覧ください。)

クラス:SpreadsheetApp

注意:初めてコードを実行する際にアクセス権限の許可を求められますが許可をしてください。アクセス権限についての詳細は以下の記事に詳しく載っています。

無料アカウントでGoogleサービスへのスコープを設定する方法

構造

  SpreadsheetApp.newRichTextValue().設定文字.設定環境.build()

こちらがリッチテキストビルダーを作成するための基本メソッドです。

newRichTextValue()の後に条件となるトリガーをスクリプトで記入をし最後にbuild()でビルダーを構築させます。

サンプルスクリプト1(リンクの設定)

スプレッドシート内のスクリプトで作成してください。

function newRichTextValue1(){
  var cell = SpreadsheetApp.getActive().getRange('A1');
  var value = SpreadsheetApp.newRichTextValue()
      .setText("HPリンク")
      .setLinkUrl("https://google-apps-script.net/instructions/")
      .build();
  cell.setRichTextValue(value);
}

newRichTextValueメソッド以降のビルダー作成では以下のメソッドを使用しています。

.setText("テキスト")メソッド :挿入するテキストを設定する(今回はHPリンク)
.setLinkUrl("URL")メソッド :URLを設定する(今回はこのブログのURL)
.build() :ビルダーを実行する際に必要

このメソッドでは

HPリンクというテキストにこのブログのHPをリンクとして設定

変数valueに格納を行う

そしてsetRichTextValueメソッドでリッチテキストを設定しています。

このスクリプトを実行するとスプレッドシートのA1セルにHPリンクというリンクが挿入されます。

 

サンプルスクリプト2(文字の装飾の設定)

では次に文の一部に太字などの装飾ができるスクリプトをご紹介します。

function newRichTextValue2(){
  var cell = SpreadsheetApp.getActive().getRange('B1');
  var bold = SpreadsheetApp.newTextStyle().setBold(true).build();
  var italic = SpreadsheetApp.newTextStyle().setItalic(true).build();
  var value = SpreadsheetApp.newRichTextValue()
    .setText("HelloWorld")
    .setTextStyle(0, 5, bold)
    .setTextStyle(5, 10, italic)
    .build();
  cell.setRichTextValue(value);
}

3行目と4行目のnewTextStyleメソッドについては後日紹介するこちらの記事で詳しく説明していきます。
今回は太字とイタリックのテキストスタイルを設定するためのビルダーを作成しています。

newRichTextValueメソッド以降のビルダー作成では以下のメソッドを使用しています。

.setText("HelloWorld") :挿入するテキストを設定する(今回はHPリンク)
.setTextStyle(開始文字,終了文字,テキストスタイル) :対象のテキストスタイルを適用する文字数を設定

*開始文字は0からスタートします。(0が1文字目となります。) 
そして終了文字は文字数を使用してカウントされるので注意が必要です。

例:
今回の HelloWorldという文字のHelloの部分のみ設定を変更したい場合 
setTextSylte(0,5,bold)
開始のHは1文字目なので開始文字は0になります
終了文字はHelloのoまでなので5文字分ですので5となります。
.build() :ビルダーを実行する際に必要

先ほどはsetLinkUrlというメソッドを使用しましたが、今回はsetTextStyleを使用してテキストスタイルを適用させています。

そしてこの2つを用いることによって一つのテキストの中で複数のテキストスタイルを適用させています。

スクリプトを実行すると以下のように表示されます。

var cell = SpreadsheetApp.getActive().getRange(‘B1’);

こちらでB1セルと設定していますのでB1セルに

Helloが太字

Worldがイタリックの文字

が挿入されていることが分かります。

ですので

文字の途中でテキストスタイルを変更することによって見た目のアレンジが可能になる

文字の一部にURLリンクを設定することによってURLがどの部分の箇所のURLなのか分かりやすくなる

といったような装飾がこのメソッドでは可能になります。

この他の詳しいリッチテキストメソッドについては

Class newRichTextValue(公開予定)で紹介します。

 

まとめ

今回はフィルター条件を作成できるnewFilterCriteriaメソッドを紹介しました。

フィルターを設定することで大量のデータが見やすくなりますが、この機能をスクリプトで実行することによって、

ボタンクリック一つで担当者専用のフィルター設定を作成

担当者がスプレッドシートを起動すると、フィルターが自動でかけられる

担当者によって不要な行を非表示に設定することが可能になる

といった設定もできますので作業ミスを減らしたり、間違った箇所に入力をすることを防ぐことができますね。

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

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*