【GASの始め方】getValueで値を取得してsetValueで入力しよう | GASおじさんのブログ
GASの基本

【GASの始め方】getValueで値を取得してsetValueで入力しよう

getValueしてsetValueする GASの基本

みなさんこんにちは!GASおじさんです。

GASでスプレッドシートを自由自在に操るためのスキル習得講座の第3回です。

前回の記事はこちら。

前回まででスプレッドシートのセルに値を入力するsetValueメソッドとsetValuesメソッドについて学びました。

今回からは、そんなsetValuesetValuesと対をなす存在、getValueメソッドとgetValuesメソッドについて学習していきます!

2つの違いを簡単に説明すると、以下のようなかんじです。

  • セルに値を入力するためのメソッド・・・setValue, setValues
  • セルの値を取得するためのメソッド・・・getValue, getValues

今回と次回にかけて、getValue(単数形)とgetValues(複数形)について解説していきます。

今回は単数形のgetValueメソッドについてやっていきましょう!

セルの値を取得するgetValueメソッド

まずは下準備として以下のようなシートを用意してみてください。

  • A1セルに「あいうえお」
  • A2セルに「かきくけこ」
  • A3セルに「さしすせそ」

という文字を入力しています。

では、この状態で次のコードをエディタにコピペして実行してみてください。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  const value = sheet.getRange('A1').getValue();
  console.log(value);
}

すると、以下のような画面になりました。

画面右下に「実行ログ」という画面が出てきましたね。

この実行ログ画面で、console.logのカッコの中に入力されたデータについて教えてくれます。

console.log(value)とすると、「変数valueには今どういうデータが入ってますか?」ということを教えてくれるのです。

今回の場合、実行ログに「あいうえお」と出ているので、変数valueには「あいうえお」という文字が入っていることが確認できます。

しつこいようですが、変数とは「箱」みたいなものでしたね。その箱の中に何が入っているのかを教えてくれるのがconsole.logです。

console.logのイメージ図

ではなぜ、変数valueは「あいうえお」なのか。変数valueは以下の4行目で定義されています。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  const value = sheet.getRange('A1').getValue();
  console.log(value);
}

ここで今回の主題であるgetValueメソッドが使われています。

sheet.getRange('A1').getValue();とすることで、「A1セルの値を取得してください」という意味になります。

では、A1セルは何が入力されていたかというと、「あいうえお」という文字でしたよね。

この文字が取得された結果、ログ出力に「あいうえお」と出てきた、というわけです。

したがって、以下のようにA2セルの値をgetValueすると、

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  const value = sheet.getRange('A2').getValue();
  console.log(value);
}

以下のように、「かきくけこ」という値を取得できます。

また、getRangeメソッドの範囲指定は、番地で指定することも可能です。

getRangeメソッドの範囲指定では、

  • getRange('A1')のように、「A1記法」で範囲を指定する方法
  • getRange(1, 1)のように、「何行何列目」という番地で範囲を指定する方法

の2つがあるんでしたね。

getValueで値を取得してsetValueで値を入力してみよう

それでは、これを利用して、「getValueで値を取得して、setValueで別のセルに値を入力する」ということをやってみましょう。

以下のコードをエディタにコピペして実行してみてください。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  const value = sheet.getRange('A1').getValue();
  sheet.getRange('C1').setValue(value);
}

実行後スプレッドシートを確認すると…

C1セルに「あいうえお」と入力されているのが確認できました。

この動きは、以下の2ステップで成り立っています。

  1. const value = sheet.getRange('A1').getValue();A1セルから値を取得し、valueという変数に代入する
  2. sheet.getRange('C1').setValue(value);C1セルに変数valueの値を入力する

つまり、コピー&ペーストです。

A1セルの値をコピーして、C1セルにペーストする。

この動きをGASで実行した、ということですね。

では、以下のプログラムも実行してみましょう。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  const value = sheet.getRange(2, 1).getValue();
  sheet.getRange(2, 3).setValue(value);
}

これは、「2行1列目(つまりA2セル)の値を取得して、2行3列目(つまりC2セル)に入力する」という意味のコードですね。

なので実行した結果、C2セルに「かきくけこ」と入力されます。

やってることは、「A2セルをコピーして、C2セルにペーストする」という至極単純な内容ですね。

まとめ

以上、「getValueで値を取得して、setValueで値を入力する」方法について解説しました。

今回は比較的簡単な内容だったのではないでしょうか?

やってることは単純な「コピー&ペースト」なので、「わざわざプログラム化してやることか?」と思うかもしれませんが、これが基礎的な知識となってくるので、意外と重要です。

甘く見ることなく、しっかり理解に努めましょう。

次回はより難しい複数形のgetValuesメソッドについて学習していきます。

以下をクリックして次に進みましょう!

連載目次: GASでスプレッドシートを自由自在に操るためのスキル習得講座

  1. 【GASの始め方】まずはスプレッドシートの操作から始めてみよう
  2. 【GASの始め方】setValuesで複数のセルに値を入力しよう
  3. 【GASの始め方】getValueで値を取得してsetValueで入力しよう
  4. 【GASの始め方】getValuesで複数のセルの値を取得しよう
  5. 【GASの始め方】getValuesして別のシートにsetValuesしよう
  6. 【GASの始め方】応用問題で関数について学ぼう
  7. 【GASの始め方】繰り返し処理の「for文」を習得しよう
  8. 【GASの始め方】flat()でループさせる配列を自動生成しよう
  9. 【GASの始め方】for文とif文でデータ抽出して配列を生成しよう
  10. 【GASの始め方】TextFinderで行と列を特定しよう
  11. 【GASの始め方】オブジェクトとメソッドについて学ぼう
  12. 【GASの始め方】リファクタリングで生成AIを活用しよう

Udemy動画解説

当シリーズはUdemyで動画解説をしています。

動画で学びたい方は以下からご購読ください。Udemyでは月2〜3回セールが開かれますので、セール期間中にご購入いただくのがオススメです。

GASでスプレッドシートを自由自在に操るためのスキル習得講座【Google Apps Script入門】
GoogleAppsScriptの専門ブログ・Youtubeを運営するGASおじさんが、日本一わかりやすいGASの授業をお届けします!スプレッドシートの各シートから売上を自動集計するプログラムを作成し、プログラミングの基礎知識を習得しよう!

コメント

タイトルとURLをコピーしました