スプレッドシートにデータを追加するとき、手動で行を挿入するのは時間がかかります。特に大量のデータを定期的に追加する場合、自動化したくなるでしょう。そこで役立つのが、Apps ScriptのappendRowメソッドです。この記事では、GoogleスプレッドシートでApps Scriptを使って末尾に行を追加する方法を詳しく解説します。初心者の方でも簡単に実践できるよう、基本的な使い方から応用例までご紹介します。
【要点】appendRowメソッドで行を追加する3つのポイント
- appendRow([value1, value2, …]) の基本構文: 配列を引数に渡すことで、シートの最終行の直後に新しい行を追加します。
- 複数のセルに一度にデータを設定: 配列の各要素が各列のセルに対応するため、一度の呼び出しで行全体を埋められます。
- エラーハンドリングと権限設定: スクリプト実行時に権限の承認が必要な場合があるため、事前に確認しておきます。
ADVERTISEMENT
目次
appendRowメソッドの仕組みと特徴
appendRowは、GoogleスプレッドシートのApps Scriptで利用できるメソッドです。指定したシートオブジェクトに対して、引数として渡された配列を新しい行として追加します。追加される位置は、アクティブなシートの最終行の直後です。このメソッドの大きな特徴は、既存のデータを書き換えることなく、末尾に新しい行を挿入できる点です。また、setValuesメソッドと異なり、追加する行数が1行に限定されるため、シンプルな操作に向いています。
appendRowの引数には、1次元配列を指定します。配列の要素数が多い場合は、スプレッドシートの列数に合わせて調整する必要があります。列数より多い要素を渡すと、はみ出た部分は無視されます。逆に少ない場合は、足りない部分は空欄になります。
appendRowで行を追加する具体的な手順
それでは、実際にスクリプトエディタを開いて、appendRowを使ったスクリプトを作成し、実行する手順を説明します。以下の手順を順番に進めてください。
スクリプトエディタを開く
- スプレッドシートを開く
Googleスプレッドシートで、行を追加したいシートを開きます。 - 拡張機能メニューからスクリプトエディタを起動
メニューバーの「拡張機能」をクリックし、「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。
スクリプトを記述する
- 関数を作成する
デフォルトで記述されているコードを削除し、以下のような関数を記述します。function addRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.appendRow(['データ1', 'データ2', 'データ3']);
} - シートを取得する
上記のコードでは、getActiveSheet()で現在アクティブなシートを取得しています。特定のシート名を指定したい場合はgetSheetByName('シート名')を使います。
スクリプトを実行する
- 実行する関数を選択
スクリプトエディタ上部の「実行」ボタンの左側にあるプルダウンから、先ほど作成した関数(例:addRow)を選択します。 - 権限を承認する
初回実行時には、スプレッドシートへのアクセス権限を承認するダイアログが表示されます。「許可を確認」をクリックし、自分のGoogleアカウントを選択して許可します。問題なければ「許可」をクリックしてください。 - 実行結果を確認する
スクリプトが正常に実行されると、シートの末尾に新しい行が追加され、指定したデータが入力されます。
複数の行をループで追加する
- ループ処理を記述する
複数行を一度に追加したい場合は、forループやwhileループの中でappendRowを呼び出します。以下は3行追加する例です。function addMultipleRows() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
for (var i = 0; i < 3; i++) {
sheet.appendRow(['行' + (i+1), 'データA', 'データB']);
}
} - パフォーマンスに注意
ループ内でappendRowを繰り返すと、実行時間が長くなることがあります。大量の行を追加する場合は、後述するsetValuesメソッドの使用を検討してください。
appendRow使用時の注意点とよくあるエラー
appendRowは便利なメソッドですが、使い方を誤るとエラーが発生する場合があります。ここでは、よくある問題とその対処方法を解説します。
引数に配列を渡さずにエラーになる
appendRowに渡す引数は必ず配列でなければなりません。文字列や数値を直接渡すとエラーになります。例えば、sheet.appendRow('文字列')と書くと、「Argument is not a valid array」というエラーが発生します。必ず[]で囲んで配列にしてください。
権限の承認が必要な場合がある
スクリプトを初めて実行するときは、スプレッドシートへのアクセス権限を承認する必要があります。承認を忘れると、実行時にエラーダイアログが表示されます。承認手順は、画面の指示に従って進めてください。また、トリガーや他のユーザーと共有する場合は、適切な権限設定が必要です。
大量データ追加時のパフォーマンス低下
appendRowは1回の呼び出しで1行しか追加できません。そのため、100行以上のデータをループで追加すると、処理に時間がかかることがあります。このような場合は、setValuesメソッドを使って配列全体を一度に書き込む方が効率的です。setValuesでは複数行を一括で追加できます。
ADVERTISEMENT
appendRowと他のメソッドの比較
行を追加する方法はappendRow以外にもあります。それぞれの特徴を理解して、目的に合った方法を選びましょう。
| メソッド | 特徴 | 使用シーン |
|---|---|---|
| appendRow | 1行ずつ末尾に追加。シンプルで扱いやすい | 少量のデータ追加やボタン操作のトリガー |
| setValues | 2次元配列を指定範囲に一括書き込み。高速 | 大量データの一括追加や更新 |
| insertRowAfter | 指定した行の直後に新しい空行を挿入 | 特定の位置に行を追加したい場合 |
まとめ
この記事では、GoogleスプレッドシートのApps Scriptで appendRow メソッドを使い、シートの末尾に行を追加する方法を解説しました。基本的な構文は配列を渡すだけで非常に簡単です。少量のデータ追加や定期的な自動化には非常に便利なメソッドです。ただし、大量のデータを扱う場合やパフォーマンスが気になる場合は、setValues メソッドとの使い分けを検討してください。次は、トリガーと組み合わせて毎日自動でデータを追加するスクリプトに挑戦してみてはいかがでしょうか。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
