#21 画面の下にメッセージを表示する(Google スプレッドシート)
Microsoft Excel の VBA では、いわゆるステータスバーに文字列が表示できました。VBA で作ったプログラムの進捗状況を表示できたりして便利だったのですが、同じようなことが GAS でもできないのか調べてみました。
こんなの見つけました!
いろいろと調べてみたら、Class Spreadsheet で用意されている関数の中に、次のようなものがありました。
toast(msg)
指定されたメッセージを含むポップアップウィンドウを表示toast(msg, title)
指定されたメッセージとタイトルを含むポップアップウィンドウを表示toast(msg, title, timeoutSeconds)
指定されたタイトルとメッセージを含むポップアップウィンドウを表示(表示時間を指定)
3種類用意されているものの、どれも同じようなもので「メッセージだけ」「タイトル付き」「タイトル付きで時間指定」という感じです。
必要なプログラムは簡単で、以下のようなプログラムで簡単にメッセージが表示できます。
function displayNowCell( ) {
var sheet = SpreadsheetApp.getActive( ); // スプレッドシート
var cellNow = sheet.getCurrentCell( ).getA1Notation( );
sheet.toast( '現在のセルは ' + cellNow + ' です。', 'セルの現在位置', 5 );
}
関数内で行っている 3行の処理のうち…
1行目の SpreadsheetApp.getActive( ); は、Google スプレッドシートの GAS ではよく見かける処理です。
2行目は、表示するメッセージとして、現在のアクティブセルの名前を素得するために getA1Notation() を使用しています。今回の目的のメッセージ表示には直接関係がありません。
3行目が、今回の目的であるメッセージを表示している部分です。「メッセージ」「タイトル」「表示時間」の順にパラメータを指定しています。
「表示時間」を指定しない他の 2つの関数の場合、メッセージが表示される時間は 5秒になります。
まとめ
Google スプレッドシートで動作する GAS であれば、toast() を利用すると簡単に画面が部にメッセージが表示できます。表示し続ける用途には向きませんが、ちょっとしたメッセージを表示し、入力待ちを求めない場合には便利に使えます。