Googleスプレッドシート:ワンボタンで最終行にデータを追加するスクリプト

2019-01-23

当ラボのツールは、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行のスクリプトを書くだけで、転記ボタンを作成することができました。

今回の例は単純な転記ですが、
・通し番号の追加
・登録日時の追加
・計算をして追加(前回との差分など)
様々なデータを追加することができます。

いろいろチャレンジしてみて下さい。

Copyright(c) 2016 e-Shikumi-Labo All Rights Reserved.