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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

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

Q&A

解決済

1回答

1633閲覧

GAS オートフィルを使って数値を加算しながらセルに値を設定したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Google Apps Script

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

0グッド

1クリップ

投稿2021/12/15 01:48

編集2021/12/15 06:44

提示コードのコメント部////部ですがオートフィルを使って提示画像の13のところをセルの右下の青いところを右にドラックして14,15,16といったように数値を振りたいのですが提示画像では手動でやったため上手く出来ていますがコードを実行すると全て同じ数字13,13,13となってしまいます。これはどうやって実装するのでしょうか?

参考サイト: https://arukayies.com/gas/autofill

イメージ説明

gs

1// @ts-nocheck 2/** @OnlyCurrentDoc */ 3 4function myFunction() 5{ 6 7 //項目の範囲 8 const DATA_COLUMN = 5; //項目の列 9 const DATA_ROW = 3; //項目の行 10 11 12 var spreadsheet = SpreadsheetApp.getActiveSheet(); //現在のシート 13 14 let Classification = spreadsheet.getRange('A1'); //分類 15 let task = spreadsheet.getRange('B1'); //タスク名 16 let detail = spreadsheet.getRange('C1'); //詳細 17 let date = spreadsheet.getRange('D1'); //日付 18 let completion = spreadsheet.getRange("E1"); //完了 19 20 //項目設定 21 Classification.setValue("分類"); 22 task.setValue("タスク名"); 23 detail.setValue("詳細"); 24 date.setValue("日付"); 25 completion.setValue("完了"); 26 27 //項目のセルを調整 28 let item = spreadsheet.getRange(1,1,3,5); //項目のセルを取得 29 item.mergeVertically(); //セル連結 30 item.setVerticalAlignment("middle"); //垂直方向を中央 31 item.setHorizontalAlignment("center"); //水平方向を中央 32 33 //セルを固定 34 spreadsheet.setFrozenRows(3); 35 spreadsheet.setFrozenColumns(5); 36 37 38 //日付を設定 39 let monthLine = spreadsheet.getRange(1,DATA_COLUMN + 1,1,spreadsheet.getLastColumn());  //数式 40 let dayLine = spreadsheet.getRange(2,DATA_COLUMN + 1); //カスタム数値形式 41 42 43 //日 44 dayLine.setValue(Utilities.formatDate( new Date(), "Asia/Tokyo", "yyyy/MM/dd")); //数式 45 spreadsheet.getRange(2,DATA_COLUMN + 2).setValue(Utilities.formatDate( new Date(), "Asia/Tokyo", "yyyy/MM/dd")); //数式 46 47 dayLine.setNumberFormat("dd"); //カスタム数値形式 48 dayLine.setHorizontalAlignment("center"); //中央揃え 49 50/////////////////////////////////////////////////////////////////////////////////////////////////////// 51 const source = spreadsheet.getRange(2,DATA_COLUMN + 1,2,spreadsheet.getLastColumn()); 52 //const destination = spreadsheet.getRange(2,DATA_COLUMN + 1,2,spreadsheet.getLastColumn()); 53 54 source.autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES); 55/////////////////////////////////////////////////////////////////////////////////////////////////////// 56 57 58 59 //月 60 monthLine.setFormula("=IF(DAY(F$2)=1,F$2,\" \")"); //数式 61 monthLine.setNumberFormat("m"); //カスタム数値形式 62 63 64 65 66 67 68 69 70 71};

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

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

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

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

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

guest

回答1

0

ベストアンサー

単純にオートフィルでコピーするだけならautoFillでいいと思います。
起点となるA1セルには1、B1セルに2が入っているとします。

var spreadsheet = SpreadsheetApp.getActiveSheet(); var source = spreadsheet.getRange("A1:B1"); var destination= spreadsheet.getRange("A1:AE1"); source.autoFill(destination,SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);

投稿2021/12/15 04:42

com.woody

総合スコア43

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

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

退会済みユーザー

退会済みユーザー

2021/12/15 06:45 編集

なるほど以下のようにしたのですが反映されませんこれはなぜでしょうか? const DATA_COLUMN = 5; const source = spreadsheet.getRange(2,DATA_COLUMN + 1,2,DATA_COLUMN + 1); const destination = spreadsheet.getRange(2,DATA_COLUMN + 1,2,spreadsheet.getLastColumn()); source.autoFill(destination,SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問