本稿はWeb版Googleスプレッドシートの練習表で、操作と結果を確かめる手順を説明します。
A1の値は getRange("A1").getValue() で取得します。
ファイル、シート名、セルの3つを明示すると、違うシートの値を読んでしまう問題を避けられます。
同じファイルのA1を読み取る練習
シート名を「読み取り」にし、A1へこんにちは、A2へ1200、B1へ =2+3、D1へ日付2024-01-01を入力します。
A2は桁区切り、D1は日付の表示形式に設定します。
「拡張機能」→「Apps Script」で次の2関数を保存します。
function readPracticeA1(sheetName) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
if (!sheet) throw new Error('対象シートがありません: ' + sheetName);
return sheet.getRange('A1').getValue();
}
function inspectPracticeCell(rangeA1Notation) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const cell = ss.getRange(rangeA1Notation);
if (cell.getNumRows() !== 1 || cell.getNumColumns() !== 1) {
throw new Error('1セルだけを指定してください');
}
const value = cell.getValue();
const type = value instanceof Date ? 'date' : typeof value;
const printable = value instanceof Date ? Utilities.formatDate(value, ss.getSpreadsheetTimeZone(), 'yyyy-MM-dd') : value;
return [['値', printable], ['表示文字列', cell.getDisplayValue()], ['数式', cell.getFormula()], ['型', type]];
}シートのE1へ =readPracticeA1("読み取り") と入力すると、こんにちはが返ります。
この関数は現在のファイルを読むカスタム関数で、他のファイルへ書き込んだり、Driveを操作したりしません。
通常の承認付き関数をエディタから実行する手順とは異なります。
値・表示文字列・数式の違いを確認する
E3へ =inspectPracticeCell("読み取り!A2") と入力します。
4行2列の結果が出るので、E3:F6を空けておきます。
E8へ =inspectPracticeCell("読み取り!B1")、C3へ =inspectPracticeCell("読み取り!D1") を入力します。
| 入力 | 読み取る内容 |
|---|---|
| 1200を桁区切りで表示 | getValueは数値1200/getDisplayValueは文字列1,200 |
| 数式=2+3 | getValueは数値5/getFormulaは文字列=2+3 |
| 日付2024-01-01 | getValueはDate型/表示文字列はセルの表示形式による |
| 空欄とFALSE | 空欄は空文字、FALSEはbooleanのfalse |

画面のA8:A10は、別記事のエラー練習用セルです。
getDisplayValueで取得した値を計算へ戻すと、桁区切りや通貨記号を含む文字列になります。
計算用にはgetValue、画面に近い文字が必要ならgetDisplayValue、数式の内容が必要ならgetFormulaを選びます。
日付の出力例はシートのタイムゾーンで整形しています。
シートが見つからない・結果が変わらないとき
=readPracticeA1("存在しない練習シート") を入れると、「対象シートがありません」というエラーになります。
名前の全角・半角や末尾の空白を見直します。
シートの並べ替えで対象が変わる getSheets()[0] を、シート名指定の代わりに使わないようにします。
文字列で指定したセルやシート名だけでは、参照先を編集してもカスタム関数が期待どおり再計算されるとは限りません。
練習では式を削除して再入力し、結果を確認します。
結果を消すには、式を置いた左上のセルを削除します。
Apps Scriptの練習関数も不要なら削除できます。
別ファイルのA1を読む場合
別ファイルでは SpreadsheetApp.openById(対象ファイルID) で開き、その後 getSheetByName(対象シート名) を使います。
権限が必要な別ファイルへの読み取りは、ここで使ったセル内カスタム関数では実行できません。
エディタ実行など承認できる方式へ分け、対象IDと権限を確認します。
本稿で実機確認した範囲は、同じファイルの読み取りとエラーです。
Google公式:カスタム関数の制約、GAS│エラーの意味と対処法|6分制限・承認・回数上限・トリガーも参照できます。
操作・GAS・claspの練習ZIPをダウンロードできます。
関連記事と既存の案内
関連する操作は各記事へのリンクから確認できます。
練習ZIPと本文の検証範囲を優先し、旧実装や外部の例をそのまま業務ファイルへ適用しないようにします。





よくある質問:GASでA1セルの値を取得するときのチェックリスト
A1セルの値を、GASで取得するには?
シートのA1の値は、getRangeでA1を指定し、getValueで取得します。ファイル、シート名、セルの3つを明示すると、違うシートの値を読んでしまう問題を避けられます。
getValue、getDisplayValue、getFormulaは、どう使い分けますか?
計算用にはgetValue、画面に近い文字が必要ならgetDisplayValue、数式の内容が必要ならgetFormulaを選びます。たとえば、桁区切りの1200は、getValueが数値、getDisplayValueが文字列「1,200」です。getDisplayValueで取得した値を計算へ戻すと、桁区切りや通貨記号を含む文字列になります。
数式や日付のセルは、どう取得されますか?
数式のセルは、getValueが計算結果の数値、getFormulaが数式の文字列です。日付のセルは、getValueがDate型で、表示文字列はセルの表示形式によります。空欄は空文字、FALSEはbooleanのfalseです。
「対象シートがありません」というエラーが出ました。
シート名が見つからないときのエラーです。名前の全角・半角や末尾の空白を見直してください。シートの並べ替えで対象が変わるgetSheetsの先頭を、シート名指定の代わりに使わないようにします。
参照先を編集したのに、結果が変わりません。
文字列で指定したセルやシート名だけでは、参照先を編集しても、カスタム関数が期待どおりに再計算されるとは限りません。練習では、式を削除して再入力し、結果を確認します。
別のファイルのA1も、読めますか?
別のファイルは、openByIdで開き、その後getSheetByNameを使います。ただし、権限が必要な別ファイルへの読み取りは、ここで使ったセル内のカスタム関数では実行できません。エディタ実行など、承認できる方式へ分け、対象のIDと権限を確認してください。
この記事の手順は、どこまで確認済みですか?
Web版Google Sheetsの練習表で、同じファイルの読み取りとエラーを確認しました。別ファイルの読み取りは、実機確認の範囲に含まれていません。カスタム関数の制約は、Googleの公式ヘルプで最新を確認してください。
練習を元に戻すには?
結果を消すには、式を置いた左上のセルを削除します。Apps Scriptの練習関数も、不要なら削除できます。実務のファイルに使う前に、コピーで試してください。
