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

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

500閲覧

【GAS】シートを複製させたいです

narururu

総合スコア172

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/06/28 02:44

編集2021/06/29 00:59

解決したい課題

一覧シートの3人の名前をそれぞれ別シートに複製させたいです。

シート名…narururu
B4セル…1

シート名…naruko
B4セル…2

シート名…nana
B4セル…3

現状

1枚のシートを複製することは下記のコードでできました。
複数シートの複製はできないです。

コード

function getInfo() { var ssForm = SpreadsheetApp.openById('取得元のスプレッドシートID'); var sheetForm = ssForm.getSheetByName('一覧'); var row = sheetForm.getLastRow()-1; var number = sheetForm.getRange(2,1,row,1).getValue();  var name = sheetForm.getRange(2,2,row,1).getValue(); var ssResignation = SpreadsheetApp.openById('反映させたいスプレッドシートID'); var sheetResignation = ssResignation.duplicateActiveSheet().setName(name); sheetResignation.activate(); sheetResignation.getRange('B4').setValue(number); }

取得元のスプレッドシート

イメージ説明

試したコード

function getInfo() { var ssForm = SpreadsheetApp.openById('取得元のスプレッドシートID'); var sheetForm = ssForm.getSheetByName('一覧'); var row = sheetForm.getLastRow()-1; var number = sheetForm.getRange(2,1,row,1).getValue();  var name = sheetForm.getRange(2,2,row,1).getValue();  for(var i=0; i<number.length; i++){ var ssResignation = SpreadsheetApp.openById('反映させたいスプレッドシートID'); var sheetResignation = ssResignation.duplicateActiveSheet().setName(name); sheetResignation.activate(); sheetResignation.getRange('B4').setValue(number);  } }

結果

イメージ説明
上記の通り、特にエラー無く実行されるのですが、シートは複製されず実行前と変化ないです。

上記の事象について、何かわかる方いらっしゃいましたらご教示いただきたいです。

以上、よろしくお願いいたします。

追記

下記のコードを実行してみると、narururuだけが繰り返し値を取得している状況であることが分かりました。

function test() { var ssForm = SpreadsheetApp.openById('スプレッドシートID'); var sheetForm = ssForm.getSheetByName('一覧'); var row = sheetForm.getLastRow() - 1; for (i = 0; i < row; i++) { var number = sheetForm.getRange(2, 1, row, 1).getValue(); var name = sheetForm.getRange(2, 2, row, 1).getValue(); console.log(number,name); } }

イメージ説明

本来であれば、下記の表示になる認識です。
1 'narururu'
2 'naruko'
3 'nana'

なぜ、最初の行のみが繰り返し実行されているのか原因が分からない状況です。
上記から何か分かる方いらっしゃいましたらアドバイスいただけますと助かります。

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

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

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

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

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

narururu

2021/07/03 05:42

そうでした! 解決済みにしますね。 失礼しました。
guest

回答1

0

自己解決

下記の質問で本件解決しました。
https://teratail.com/questions/346689

投稿2021/07/03 05:43

narururu

総合スコア172

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問