どもども、平社員の龍ちゃんです!今回は、前回の「Google Apps Script導入」に引き続きGASのお話です。以下の図は、GASを用いてやっていることで使用した図です。3つの真ん中に鎮座している、スプレッドシートを使用したデータベース構築の基本部分について紹介していきます。
まずは、ソースコードと結果だけお話していこうと思います。ソースとしてはあまり意味がないですけど、ソースコードだけをコピーして使ってみてください。公式リファレンスも置いておきます。
ソースコード結果
今回用意するものは、Googleアカウント・適当なスプレッドシート・GASのファイルの3つです。スプレッドシートには適当に書き込んでおきましょう。GASのソースコードは以下です。注意点です!コピーをする際は「const file = SpreadsheetApp.openById(“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”)」のx部分を対象とするスプレッドシートのものに書き換えてください。
function myFunction() {
// ファイル取得
const file = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
const sheet = file.getSheetByName("シート1")
// 値の取得 最終行・列
const lastRow = sheet.getLastRow();
const lastCol = sheet.getLastColumn();
Logger.log(lastRow, lastCol)
// 値の操作
// 一個取得
const A1 = sheet.getRange(1,1).getValue()
Logger.log(A1)
// 複数取得
const allData = sheet.getRange(1,1,lastRow, 1).getValues()
Logger.log(allData)
// 値の書き込み
sheet.getRange(lastRow+1,1).setValue("書き込み")
// 値の複数書き込み
sheet.getRange(1,lastCol+1,lastRow,1).setValues(allData)
// ちょっとした遊び
const sentence = [... new Set(allData)].join("")
Logger.log(sentence)
}
ソースコード説明
まず処理の流れを追っていきましょう。対象となるファイルとシートを指定して指令を出すという簡単な流れです。やっていることは単純ですが、ファイルを指定しないと、シートの指定はできません。同様に指令は、ちゃんとターゲットを補足しないと出すことができません。
ファイル取得
ここで説明をするのは、2つのコマンドです。このフェーズでは、指定するファイルといじるシートを選定します。「ID」「name」は変動する値になっています。
const file = SpreadsheetApp.openById("<ID>")
const sheet = file.getSheetByName("<シート名>")
IDの検索方法は、対象とするスプレッドシートを開いているページに行きURLを見ることです。以下の図の赤枠で囲っている部分の文字列をコピーして、文字列として代入することで機能します。
nameの検索方法は、対象とするスプレッドシートのタブ名を見ることです。タブは図のように下側にあります。ここは自由に変更できますが、日本語でも大丈夫ですので安心して代入してください。
値の操作
ここで説明するのは、値を操作する7つのコマンドです。
最終行・列の取得
まずは、データベースとして使用する場合でよく使用するコマンドです。以下の2つは、それぞれ最終行と列を取得することができます。「Sheet」の部分は、前章で説明したシートの取得を変数として引っ張っています。
const lastRow = sheet.getLastRow();
const lastCol = sheet.getLastColumn();
Logger.log(lastRow, lastCol)
値の入力・読み込み
次に説明をするのは、値を書き込んだり読み込んだりするコマンドです。いきなりセルの指定といわれてもわからないと思うので図を出します。本章の一番最初で説明したとおりに、指示を出す順番は重要です。指令を出すためには、範囲指定が重要となります。その範囲指定のために使用するコマンドが「Sheet.getRange(x,y)」です。一応、「x,y」と書いていますが最大4つの引数を登録することができます。ここの詳細な説目は、使ってみることで実感できます。リファレンスのページを置いておきますね。
読み込みの場合も書き込みの場合もセルの指定から始めます。ここで注意点「セルの指定はよく確認しよう」です。スプレッドシートの操作がうまくいかない場合、原因の8割がセルの指定ミスです。
// 値の操作
// 一個取得
const A1 = sheet.getRange(1,1).getValue()
Logger.log(A1)
// 複数取得
const allData = sheet.getRange(1,1,lastRow, 1).getValues()
Logger.log(allData)
// 値の書き込み
sheet.getRange(lastRow+1,1).setValue("書き込み")
// 値の複数書き込み
sheet.getRange(1,lastCol+1,lastRow,1).setValues(allData)
基本操作なので、忘れないように画像を保存しておくといいことあるかもしれません。
終わりに
さて今回は、「GASを利用したスプレッドシート操作」について話を進めていきました。この説明は、今後の開発に必要となるのでログとして残しました。これで、データベースとしてスプレッドシートを利用することができますね。開発の具体的な流れは、こちらのライトブログでも合わせて報告を入れていきますので、ぜひご一読ください。
いかにシリーズをまとめています。
- Google Apps Script 導入 初心者向け
- Google Apps Script スプレッドシート編 初心者向け
- Google Apps Script 簡易データベース編 初心者向け
- Google Apps Script 簡易API編 初心者向け
ではでは!またよろしくお願いします( *´艸`)。