GASでスプレッドシートのセル情報を自在に取得する方法:基礎から応用まで!
GASでスプレッドシートのセル情報を取得する方法を教えてもらえませんか?僕、いまいち理解できなくて…

猫男

catman
わかった、catmanがしっかり解説しよう。今回はGASでセル情報を自在に取得する方法を基礎から応用まで説明するぞ。
GASでスプレッドシートのセル情報を取得する基本
まずは基本的なセル情報の取得から始めようか。GASでは、スプレッドシートのセル情報を操作するために、いくつかのメソッドを使用する。
セルのデータを取得する
セルのデータを取得するのは、これが基本だ。
function getCellData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange("A1");
var value = cell.getValue();
Logger.log(value);
}
このコードでは、アクティブなシートの「A1」セルからデータを取得している。
セル番地を使ってデータを取得するには
ワイルドな方法で、セルの番地を指定してデータを取得することもできる。
function getCellByAddress(row, col) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var value = sheet.getRange(row, col).getValue();
Logger.log(value);
}
これは行番号と列番号を入力する例だ。
結合セルのデータを取得する
結合セルも同様にデータを取得できる。対象が結合セルであっても、基本的には同じ作業だ。
function getMergedCellData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange("B2");
var value = cell.getValue();
Logger.log(value);
}
結合セルの左上のセクションのセルで操作するようにするとよい。
応用:GASでセル内容を多角的に取得する
次に、より応用的な情報の取得方法に移ろう。
セル内の画像を取得する
セル内に画像がある場合でも取得は可能だ。画像URLなどの情報を抽出することができる。
セルの日付を取得する
セルに日付形式で入力された情報も取り出すことができる。
複数セルのデータをまとめて取得する
指定したセル範囲のデータを一度に取得する方法だ。
セルのURLやリンクの取得について
URLやリンクを含むセル情報を取得し、それを活用することも可能だ。
いろんな方法でセル情報を操作できるんですね!僕にもできそうです!

猫男

catman
そうだろう。スプレッドシートをより深くマスターすれば、業務効率も格段にアップする。頑張るんだ。
練習問題
- GASを使って、シートの「C3」から「E7」範囲のデータを取得してみよう。
- 指定したセルにURLがあった場合、URLをログに表示するスクリプトを作成せよ。
解答・解説
問題1の解答
function getRangeData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange("C3:E7");
var values = range.getValues();
Logger.log(values);
}
このスクリプトは指定した範囲「C3:E7」からデータを取得し、Loggerに表示する。
問題2の解答
function logCellURL() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange("A1");
var formula = cell.getFormula();
if (formula.includes("HYPERLINK")) {
Logger.log(formula);
} else {
Logger.log("No URL found.");
}
}
このスクリプトは、セルのフォーミュラに「HYPERLINK」関数が含まれているかをチェックし、含まれていればそれをログに表示する。
ありがとうございました!これでGASを使ってセル操作ができそうです!

猫男

catman
いえいえ、もっと学びたいときはいつでも呼んでくれ。さらなる高度な技術も伝授していくぞ!