
スプレッドシート
GASの繰り返し処理について
例えばB1~C4の範囲で表があり、A1に好きな数字を入力するようにして、A1に入れた数だけD列以降にB1~C4の表をコピペすることって可能ですか?
forで考えていたのですが、今のところ下のようなイメージで、iを列で考えて行は固定で良いと思ってるのですが、条件式のところはどうしたら良いでしょうか?
for(let i=4; ???; i+2)
伝わりにくかったらすみません。GAS初心者です。分かりにくいところを聞いていただけると助かります。
No.2ベストアンサー
- 回答日時:
No1です。
No1の回答は、Rangeで表をまとめてコピペできることを踏まえて、制御変数「i」はコピーの回数(=ループの繰り返し回数)を意味するものとして回答しています。
(多分、これが一般的な考え方だと思います)
>iは初め4にしたく、~~
desitinationの列番号(左端)を制御変数にしたいってことでしょうか?
スクリプトは好きに書けばよいのでそれでもかまいませんけれど、その場合は、終了値は最後の列番号ってことになりますよね?
2列ずつ増加してゆくものとして、1回なら4、2回なら6・・・ってことになるので、終了値(=列番号)は「4+繰り返し数*2 - 2」となるはずと思います。
これを計算すれば、「繰り返し数 * 2 + 2」ということになるのではないでしょうか?
上記は最後の列番号を示しているので、ループの条件は「<=」になります。
なるほどです。
iはループの回数と考えると、、、その先どうすれば良いかちょっと思いつきません難しいです。
「繰り返し数 * 2 + 2」
こちらで出来ました!
No.1
- 回答日時:
こんにちは
GASはまったく存じませんけれど・・・
ドキュメントを見ると、RangeにはCopyメソッドがあるようなので、A1の値の回数だけ表全体のCopyを繰り返せば済むのではないでしょうか?
https://developers.google.com/apps-script/refere …
なので繰り返しは、
repeat = sheet.getRange("A1").getValue();
for ( i = 0; i < repeat; i++ )
みたいな感じになるのでは?
※ 実際には、A1の値が有効な数値であることのチェック等が必要になると思います。
ありがとうございます。
D4からまずアクティブにしてそこにコピペで貼り付けたいので、行は固定で列のiは初め4にしたく、Range(1,i)のような形でそこから数を2ずつ増やして(表の列数が2なので)いきたいのでA1の数そのままだとおかしくなってしまうかと思ってます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一巡伝達関数と開ループ伝達関数
-
エクセルVBAで
-
既存のBBSに返信機能の追加
-
画面を強制的に再描画させる方法
-
CやJAVa,Rubyなどプログラミン...
-
レインボー色ってどうやって表...
-
C言語でファクト関数を使わずに...
-
システム安定性(ゲイン余裕/...
-
イベントの発生を待つ
-
ごめんなさい 応用てきだとおう...
-
配列にaaaからzzzまでの17576(2...
-
GIFアニメをループさせたくない
-
UWSCの終了の仕方
-
jcode->jfold で禁則処理
-
二次元配列のつかいかた。
-
マクロ Publicでの配列定義
-
クラスに配列を渡す方法
-
yychatのcokkie機能がおかしく...
-
なんでハッシュ関数はユーザー...
-
英語でのシャープとコメの呼び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
CSVファイルの特定の行だけを読...
-
範囲指定したセルを1つずつ飛...
-
UWSCに制限時間を付けたいです
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
VBA for i=1 to lastrow
-
流れ図(フローチャート)が分か...
-
DOSコマンドのループ内のTIMEコ...
-
pythonでファイルのコメント行...
-
素数表について。
-
VBAでの一時停止と再開の方法
-
「偶数・奇数の和」のフローチ...
-
DoEventsが必要な理由について
-
vb.netです。2次元配列の要素を...
-
Do whileでExitせず、ループの...
-
ループフリー
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
おすすめ情報
エラーでなぜかお礼が送れなかったのでこちらで
回答ありがとうございます
D1からまずアクティブにしてそこにコピペで貼り付けたいので、iは初め4にしたく、Range(1,i)のような形でそこから数を2ずつ増やして(表の列数が2なので)いきたいのでA1の数そのままだとおかしくなってしまうかと思ってます。