質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

3632閲覧

GASのGETRANGEにかかるエラーについて

oakleigh

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2023/08/08 13:57

実現したいこと

お世話になっております。
GAS初心者のために初歩的な質問を大変恐れ入ります。
実現したいことは、同じスプレッドシート内で
シート1のA列の値を、
シート2のB列に転記するということです。

行数は可変で、A列の2行目から最終行まで取得し、
B列に転記したいと考えております。

前提

以下の通りコードを作成しました。

function copyColumn(SpreadsheetID,sheet1, sheet2, fromColumn, toColumn) {
// 転記元のシートを開きます。
var sourceSheet = SpreadsheetApp.openById(SpreadsheetID).getSheetByName(sheet1);

// 転記先のシートを開きます。
var targetSheet = SpreadsheetApp.openById(SpreadsheetID).getSheetByName(sheet2);

var values = sourceSheet.getRange(fromColumn).getValues();

// 転記先のシートの行に値を設定します。
// 転記元のシートから値を取得します。
for (var i = 0; i < values.length; i++) {
targetSheet.getRange(toColumn).setValue(values[i]);
}
}
copyColumn('実際のスプレッドシートIDのID', 'フォームの回答 1', 'sheet1','A:A', 'B:B');

発生している問題・エラーメッセージ

エラーメッセージ エラー TypeError: Cannot read properties of null (reading 'getRange') ### 該当のソースコード copyColumn @ コード.gs:13 (匿名) @ コード.gs:17 ```ここに言語名を入力 GAS

試したこと

Getrange()にいろいろ値を入れてみましたが、
上手くいきません。やりたいことは単純なので、
ARRAYFORMULAで代替することも考えています。。。
ただ、今後のトランザクションが増えることを考えると、
関数ではなく、GASの方がいいのかとも懸念しています。

補足情報(FW/ツールのバージョンなど)

初心者のため初歩的な質問であれば大変申し訳ありません。おそらく、列で指定しつつ、
Forで繰り返していることが原因だとは推認しておりますが、修正方針がたたず、教えていただければ助かります。
何卒よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2023/08/08 22:29

エディタ上でデバッグ実行してみましょう。 エラーが出る場合に実行が途中で停止するので、その時に各変数の値がどのようになっているか右側に表示されますので確認してみてください。
guest

回答1

0

提示されているコードを実行してみましたが、仰るようなエラーは発生しませんでした。
ただ、列のコピーも行われませんでした。

引数に渡すシート名を存在しないシートの名前にした場合にCannot read properties of null (reading 'getRange')というエラーが発生しました。
ですので、引数に渡しているシート名が正しいか確認しましょう。

本題の列のコピーですが、CopyToを使用することをお勧めします。

投稿2023/08/09 02:09

YAmaGNZ

総合スコア10542

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問