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

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

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

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

Q&A

解決済

1回答

2181閲覧

google app scriptで1行目の各列を見て列削除したい

gaswakaba

総合スコア7

Google Apps Script

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

0グッド

0クリップ

投稿2018/02/10 06:43

前提・実現したいこと

Googleドライブに入れたcsvを読み込むfunvtionを作りました。
csvには私に不要な列もあるため削除したいと思います。
1行目には列名が存在するので「この列名が削除したい列名と合致する場合削除する」という処理をしたいと思っています
・  ・  ・  ・
営業所コード、データ種別、発注日というような列名とその順番は決まっているので、
列番号を控え、下記2重ループで回しながら一致するときは削除でどうかなと思っていますがうまくいきません。
・  ・  ・  ・
下のコードにある、変数jがループ入るたびに1初期化されると気づき、tmpcolに逃がしてみましたがやはりうまくいきません

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

思うように削除ができません

該当のソースコード

function deletColumn(){
var del = [1,4,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,
25,26,27,28,30,31,32,33,34,35,36,37,41,43,44,45,46,47,
49,50,52,55,57,58,59,60,61,62,63,64,65,66,67,68,70,71,
72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90];
var tmpcol =0;
for (var i = 1; i <= 91;i++){
for (var j = tmpcol; j <= 91; j++){

if ( i == del[j] ){ sh.deleteColumn(i); tmpcol = j; Browser.msgBox(tmpcol); break; } }

}
}

google app script

試したこと

色々試しましたがうまくいきません。。。
頭の中で整理がつかなくなってきました

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

Googleドライブ上のスプレッドシート及びスクリプトエディタ(https://script.google.com)を直接編集

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

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

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

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

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

guest

回答1

0

ベストアンサー

function deletColumn(){ var del = [1,4,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23, 25,26,27,28,30,31,32,33,34,35,36,37,41,43,44,45,46,47, 49,50,52,55,57,58,59,60,61,62,63,64,65,66,67,68,70,71, 72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90]; var cnt = del.length-1; for (var i=cnt; i>=0; i--) { sh.deleteColumn(del[i]); } }

これでいけるんじゃないですかね?
行、列の削除は後ろから回した方がいいと思います。

投稿2018/02/10 08:32

true

総合スコア440

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

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

gaswakaba

2018/02/10 14:14

cnt に削除する列が入ったdel配列の数-1を入れ、 その数が0より多い間は処理続ける、ですか 減算ループがなんだかおしゃれ、しかもソースも丁寧に書いてくださり助かります (var i = del.length)等では困惑してしまうところでした すこし調整しつつもう少し研究します。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問