Googleスプレッドシート:ワンボタンでDBのデータを所定位置に貼り付ける

2019-01-25

当ラボのツールは、GoogleスプレッドシートやExcelで作成されているため、利用者がご自身で機能を追加することも可能です。

前回は、ワンボタンで最終行にデータを追加するスクリプト(GAS:Google Apps Script)を考えました。

当ラボのツールは、GoogleスプレッドシートやExcelで作成されているため、利用者が機能を追加(カスタマイズ)することも可能です。今回は、横断検索ツールe-Cross-Searchのセラー分析機能の結果をデータベースに登録するなど、Googleスプレッドシートで作成した計算シートの結果をデータベース(履歴)シートを用意して結果を残すGoogle Apps Scprit(以下、スクリプト)を作成する流れを紹介します。 スクリプト全体の流れここでは、単純にデータベースシートを新規に作成し、その最終行に必要なデータを転記することとします。(1)保...

今回は、ワンボタンでデータベースシートの所定の行のデータを所定の位置に貼り付けるスクリプトを考えてみます。

ポイント スクリプト全体の流れ

(1)貼り付け場所の整理

前回と同じく、どのデータをどこに貼り付けるかを整理します。
・張り付け元:列は固定、行は変化(シート名+列名)
・張り付け先:セル固定(シート名+セル名)

(2)スクリプト作成

今回作成するスクリプトは、
・貼り付けるデータベースの行を手入力
・指定したアドレスにデータを貼り付け
の2ステップです。

(3)実行ボタンの設置

前回と同じく、実行しやすいように、スプレッドシート上に「実行」ボタンを設置します。

ポイント 作成手順

では、実際に作成していきましょう。スプレッドシートにスクリプトを記載していきます。

(1)貼り付け位置の整理

どのデータをどのどのセルに貼り付けるかを整理します。貼り付け元・貼り付け先は、スプレッドシート名とセルアドレスを使って指定します。

前回は
(行,列)(例:セル(2,2)→(2行目,2列目))
を使いましたが、今回は、
(アルファベット列番号+行番号)(例:セル(“B2”)→B列の2行目)
使って指定してみました。
どちらでも良いです。

項目 貼り付け元 貼り付け先
仕入元URL 「データベース」シート セル(指定行,3) 「計算」シート セル(D2)
参考URL 「データベース」シート セル(指定行,4) 「計算」シート セル(D3)

(2)スクリプト作成

スクリプトエディタを開き、以下コードを記入します。

function cpaste() {
  //計算シートとデータベースシートを設定
  var calcsheet = SpreadsheetApp.getActive().getSheetByName("計算");
  var dbsheet = SpreadsheetApp.getActive().getSheetByName("データベース");
  
  //データベースシートの最終行を取得
  var dbrow=Browser.inputBox('貼り付けの行番号を入力して下さい');
  
  //データベースシートの最終行に各データを貼り付け
  calcsheet.getRange("D2").setValue(dbsheet.getRange(dbrow,3).getValue())
  calcsheet.getRange("D3").setValue(dbsheet.getRange(dbrow,4).getValue())

}

ポイントは、「inputbox」という関数です。このスクリプトを実行すると、このように入力画面が出てきます。

ここで入力した値を行番号として、その後の処理を行っています。
あとは、前回と同じように貼り付けているだけです。

(3)実行ボタンの設置

前回と同じく、実行しやすいように、スプレッドシート上に「実行」ボタンを設置します。

ポイント 最後に

こちらも、コメント付きでわずか10行のスクリプトを書くだけで、転記ボタンを作成することができました。

行の指定方法として、
・選択されているセルを含む行
・データベースの上から順番に処理
などとすると、手入力不要でワンボタンで値を入力することができます。
また、同時にデータベースシートに貼り付け完了の文字やチェックを入力することで、重複の入力を避けることができます。

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

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