開発部のおいぬです(▽・x・▽)
今回は初めてGoogle Apps Script というものを使ってみました!
前回は、条件付き書式を書きまくって、四則演算の答え合わせがすぐできる100マス計算表を作成しました。
ここで100マス計算表についてはおわりにしよう…と、思ったその矢先、私はGoogle Apps Script というものを見つけました。
Google Apps Scriptとは?
Google Apps Script(通称GAS)は、Googleが提供する11のサービスをクラウド上でスクリプトを実行することで操作できるサービスです。スクリプトの言語は、JavaScriptをベースとしています。
(http://uxmilk.jp/25775より引用)
なにこれ知らなかった。
使えるようになったらきっと作れるものの幅が広がりますね!
というわけで今回はGASを使って、セルの値をクリアにするボタンを追加しようと思います。
クリアボタンの作り方
1.まずボタンを描きます。メニューの「挿入」→「図形描画」を選択します。図形描画画面が出てきたら、好きなようにボタンを描いてください。
こんな感じです。
2.メニュー「ツール」→「スクリプトエディタ」を開きます。
すると、このような画面が出てきます。ここにスクリプトを書いていきます。
3.スクリプトを書きます。デフォルトで書かれている「function myFunction(){ }」の中括弧{ }の中に以下のスクリプトを追加し、メニュー「ファイル」→「保存」をします。
try{
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(‘B2:K11’).clearContent();
}catch(e){
Browser.msgBox(e);
}
try〜catch文は、エラーの発生をキャッチするものです。try{ }の中にエラーをキャッチしたい処理を書いて、エラーを検出するとcatch{ }内の処理が実行されます。エラーが無ければcatch{ }内の処理は無視されます。
(参考:http://tonari-it.com/gas-error-try-catch/#trycatch)
Browser.msgBox()は、( )内のメッセージをアラートとして表示させるものです。「Browser」というオブジェクトの「msgBox」というメソッドというらしいですが…後々勉強します(> <)
(参考:http://libro.tuyano.com/index3?id=623009&page=4)
[Sheetオブジェクト].getRange(‘セルの範囲’).clearContent();は、指定した範囲のセルの値をクリアするものです。
clearContent()は値と関数はクリアされ、書式は保持しますが、
clear()の方は書式もクリアしてしまうみたいで、こっちを使うと元々ひいていた罫線まで消えてしまうので注意してください。
(参考:http://www.bmoo.net/archives/2012/03/313092.html)
これで「B2~K11セルの値をクリアにする(エラーが出ればエラーをアラートで表示する)」処理が書けました。
この処理を、「クリア」ボタンが押されたときに実行するようにします。
4.「クリア」ボタンに③で書いたスクリプトを割り当てます。ボタンに上にある[▼]をクリック→「スクリプトの割り当て」を選択します。
割り当てるfunction名を入力して[OK]をクリックします。今回はデフォルトで書かれていたものに追加したのでmyFunctionと入力します。
さいごに、「クリア」ボタンをクリックすると、無題のプロジェクトが「Google ドライブのスプレッドシートの表示と管理」について許可をリクエストしてくるので許可をしてください。
これでGASを使用した、セルの値をクリアにするボタンの完成です!
使えたらすごく便利!
今はこんな簡単なものしか作れないですが、使いこなせるようにこれからもたくさん触ってみようと思います!