Google Spreadsheetsで文字を点滅させる!?

職場の非エンジニアの方から、ちらと質問を受けたのでそれについて少し書きます。なんでも、Google Spreadsheets(以下、GS)に記載した文字を点滅させたいのだとか。ExcelとかGSとか、一般の表計算ソフトについては比較的ヘビーユーザ側の人間だと自認している私ですが、文字の点滅は見たことがない!というわけでやってみました。

そもそも表計算ソフトって、、

ドキュメントです。ドキュメントは静的なので、そのままだと動きません(点滅しません)。ということでプログラムを書きます。Excelだとマクロ(VBA)と呼ばれるものですね。今回はGSなので、スクリプトエディタを開いてGoogle Apps Scriptで書きます。

何はさておき、動かしてみよう!

プログラムというのは動かさないと何がなんだかわかりません。ということで、以下の手順で実際に動かしてみましょう。

  1. 新規のGSを作成し、セルB2に任意の文字を入力する。
  2. スクリプトエディタを開く。(メニューバーの[ツール]にあります)
  3. コード.gsに、下のコードをコピペする。
    (元々あるmyFunctionは消していいです)
  4. 保存!(プロジェクト名はデフォルトでいいです)
  5. 実行ボタン押下!(実行ボタンは虫マークの左の再生マークのボタン)
    承認&許可はOKしてあげてくださいね。

さて、スプレッドシートに戻ってみましょう。下の画像のように、最初に入力した文字が赤色で点滅しているでしょう!?

プログラムの解説を少し

プログラムを書くということは、入社直後の新人くんに、どういった手順で作業してほしいか、事細かに説明してあげることと似ています。今回は点滅させたいので、パソコンくんにはこんな感じで説明をしてます。

お前は永遠に、セルB2の文字の色を、赤と白、交互に塗り替えろ!いいな、永遠にだ!

前半のvarから始まる行は、どのシートのどのセルを、何色に点滅させるかを書いています。intervalは点滅の間隔(ミリ秒)ですね。また、i”交互に”を実現するためのものです。最初は0で、色を塗り替える度にカウントアップしていきますが、このiが偶数なら赤、奇数なら白に塗り替えろ、ということです。そしてwhile (true)が、まさに”永遠に”を表します。ただ、大変残念なのですが、GSのプログラムは5分以上動いていると強制終了するようなので、永遠には動けません。可哀想ですね。これらの処理にblinkCellという名前を付けて、「実行!」したわけです。

実行ボタンなんて押したくないよね

今回、実行ボタンを押すなんてことをしましたが、毎回こんなことするのは嫌!という人は、トリガーの追加をしましょう。実行ボタンの横にある時計マークのボタンを押し、blingCellをスプレッドシートが起動したタイミングで動くように設定すれば、次回からはファイルを開くだけで点滅します。

最後に

ここまでやらせておいてなんですが、このやり方は、裏でずっとプログラムが動き続けている(パソコンくんがせっせと働いている)ことになるので、あまりお勧めしません。目的が文字を目立たせたいだけなのであれば、大きさや色、配置でどうとでもなりますし。あくまで、ちょっとしたプログラミング入門として読んでくださいね!