ADVERTISEMENT

【Googleスプレッドシート】Apps Scriptで行を追加!appendRowによる末尾追加

【Googleスプレッドシート】Apps Scriptで行を追加!appendRowによる末尾追加
🛡️ 超解決

スプレッドシートにデータを追加するとき、手動で行を挿入するのは時間がかかります。特に大量のデータを定期的に追加する場合、自動化したくなるでしょう。そこで役立つのが、Apps ScriptのappendRowメソッドです。この記事では、GoogleスプレッドシートでApps Scriptを使って末尾に行を追加する方法を詳しく解説します。初心者の方でも簡単に実践できるよう、基本的な使い方から応用例までご紹介します。

【要点】appendRowメソッドで行を追加する3つのポイント

  • appendRow([value1, value2, …]) の基本構文: 配列を引数に渡すことで、シートの最終行の直後に新しい行を追加します。
  • 複数のセルに一度にデータを設定: 配列の各要素が各列のセルに対応するため、一度の呼び出しで行全体を埋められます。
  • エラーハンドリングと権限設定: スクリプト実行時に権限の承認が必要な場合があるため、事前に確認しておきます。

ADVERTISEMENT

appendRowメソッドの仕組みと特徴

appendRowは、GoogleスプレッドシートのApps Scriptで利用できるメソッドです。指定したシートオブジェクトに対して、引数として渡された配列を新しい行として追加します。追加される位置は、アクティブなシートの最終行の直後です。このメソッドの大きな特徴は、既存のデータを書き換えることなく、末尾に新しい行を挿入できる点です。また、setValuesメソッドと異なり、追加する行数が1行に限定されるため、シンプルな操作に向いています。

appendRowの引数には、1次元配列を指定します。配列の要素数が多い場合は、スプレッドシートの列数に合わせて調整する必要があります。列数より多い要素を渡すと、はみ出た部分は無視されます。逆に少ない場合は、足りない部分は空欄になります。

appendRowで行を追加する具体的な手順

それでは、実際にスクリプトエディタを開いて、appendRowを使ったスクリプトを作成し、実行する手順を説明します。以下の手順を順番に進めてください。

スクリプトエディタを開く

  1. スプレッドシートを開く
    Googleスプレッドシートで、行を追加したいシートを開きます。
  2. 拡張機能メニューからスクリプトエディタを起動
    メニューバーの「拡張機能」をクリックし、「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。

スクリプトを記述する

  1. 関数を作成する
    デフォルトで記述されているコードを削除し、以下のような関数を記述します。
    function addRow() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    sheet.appendRow(['データ1', 'データ2', 'データ3']);
    }
  2. シートを取得する
    上記のコードでは、getActiveSheet()で現在アクティブなシートを取得しています。特定のシート名を指定したい場合はgetSheetByName('シート名')を使います。

スクリプトを実行する

  1. 実行する関数を選択
    スクリプトエディタ上部の「実行」ボタンの左側にあるプルダウンから、先ほど作成した関数(例:addRow)を選択します。
  2. 権限を承認する
    初回実行時には、スプレッドシートへのアクセス権限を承認するダイアログが表示されます。「許可を確認」をクリックし、自分のGoogleアカウントを選択して許可します。問題なければ「許可」をクリックしてください。
  3. 実行結果を確認する
    スクリプトが正常に実行されると、シートの末尾に新しい行が追加され、指定したデータが入力されます。

複数の行をループで追加する

  1. ループ処理を記述する
    複数行を一度に追加したい場合は、forループやwhileループの中でappendRowを呼び出します。以下は3行追加する例です。
    function addMultipleRows() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    for (var i = 0; i < 3; i++) {
    sheet.appendRow(['行' + (i+1), 'データA', 'データB']);
    }
    }
  2. パフォーマンスに注意
    ループ内で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

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。