Googleスプレッドシート:ワンボタンで最終行にデータを追加するスクリプト
当ラボのツールは、GoogleスプレッドシートやExcelで作成されているため、利用者が機能を追加(カスタマイズ)することも可能です。
今回は、横断検索ツールe-Cross-Searchのセラー分析機能の結果をデータベースに登録するなど、Googleスプレッドシートで作成した計算シートの結果をデータベース(履歴)シートを用意して結果を残すGoogle Apps Scprit(以下、スクリプト)を作成する流れを紹介します。
スクリプト全体の流れ
ここでは、単純にデータベースシートを新規に作成し、その最終行に必要なデータを転記することとします。
(1)保存場所の作成
新規にシートを作ります。
(2)保存する項目の整理
保存用のシートの1行目はタイトルとして保存したい項目の項目名を記入します。そして、どのデータをどのセルに貼り付けるかを整理します。
・張り付け元:セル固定(シート名+セル名)
・張り付け先:列は固定、行は変化(シート名+列名)
(3)スクリプト作成
今回作成するスクリプトは、
・データベースシートの最終行の行番号を取得
・指定したアドレスにデータを貼り付け
の2ステップです。
(4)実行ボタンの設置
実行しやすいように、スプレッドシート上に「実行」ボタンを設置します。
作成手順
では、実際に作成していきましょう。データベースを作成したいスプレッドシートを開き、そのシートにスクリプトを記載していきます。
(1)保存場所の作成
今回の例では、「データベース」という名前のシートを作成します。
(2)保存する項目の整理
保存用のシートの1行目はタイトルとして保存したい項目の項目名を記入します。そして、どのデータをどのどのセルに貼り付けるかを整理します。貼り付け元・貼り付け先は、スプレッドシート名とセルアドレス(行,列)(例:セル(2,2)→(2行目,2列目))を使って指定します。
項目 | 貼り付け元 | 貼り付け先 |
日付 | 「計算」シート セル(2,2) | 「データベース」シート セル(最終行,1) |
ドル円 | 「計算」シート セル(3,2) | 「データベース」シート セル(最終行,2) |
ユーロ円 | 「計算」シート セル(4,2) | 「データベース」シート セル(最終行,3) |
(3)スクリプト作成
・作成
スクリプトエディタを開き、以下コードを記入します。
function cpaste() { //計算シートとデータベースシートを設定 var calcsheet = SpreadsheetApp.getActive().getSheetByName("計算"); var dbsheet = SpreadsheetApp.getActive().getSheetByName("データベース"); //データベースシートの最終行を取得 var dblastrow=dbsheet.getLastRow()+1 //データベースシートの最終行に各データを貼り付け dbsheet.getRange(dblastrow,1).setValue(calcsheet.getRange(2,2).getValue()) dbsheet.getRange(dblastrow,2).setValue(calcsheet.getRange(3,2).getValue()) dbsheet.getRange(dblastrow,3).setValue(calcsheet.getRange(4,2).getValue()) }
・保存
貼り付けたら保存ボタンを押します。
・選択
実行するスクリプト名を選択します。一つしかない場合には、選択不要です。
・実行
実行します。初回実行時には、スクリプトの確認画面が出る場合がありますが、下記の図を参考に実行を承認します。
終了後、正しく実行されていることを確認します。
(3)実行ボタンの設置
スプレッドシート上に実行ボタン(転記ボタン)を作成します。
図形描画でボタンを作成後、そのボタンに作成したスクリプトを割り当てます。
最後に
コメント付きでわずか10行のスクリプトを書くだけで、転記ボタンを作成することができました。
今回の例は単純な転記ですが、
・通し番号の追加
・登録日時の追加
・計算をして追加(前回との差分など)
様々なデータを追加することができます。
いろいろチャレンジしてみて下さい。