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

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

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

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

Q&A

解決済

1回答

3166閲覧

【Google Apps Script】clearContent メソッドを条件付きで実行したい

tnoce_

総合スコア19

Google Apps Script

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

0グッド

0クリップ

投稿2018/11/16 11:02

#ご相談内容
スプレッドシート内の"名簿"シートを指定して、
G列にクリア対象と入っている場合に、並列にあるA列の値をクリアする関数を作成しております。

for文で回し、G列が空欄(!rangeG)となったときに、ループを終了させるようにしたいのですが、
そもそもclearContent文の実行時にエラーが発生してしまします。

ご知見ある方、ご教示いただけると幸いです。
よろしくお願いいたします。

#エラー文
TypeError: オブジェクト 1 で関数 clearContent が見つかりません。

#実行関数
//------------------「名簿シートのA列を条件付きでクリアする関数」------------------//

function ClearSheetValues(){

var ss = SpreadsheetApp.getActive().getSheetByName("名簿");
var n = 1;

for(;;){
var rangeA = ss.getRange( "A" + n ).getValue();
var rangeG = ss.getRange( "G" + n ).getValue();

if(!rangeG){ break; }else{ if(rangeG == "クリア対象"){ rangeA.clearContent(); } n++;

}
}
}

//------------------「名簿シートのA列を条件付きでクリアする関数」------------------//

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードはコードブロックを使って書こうね。<code>っていうボタンを押してからかくか、コピペした後に、コード部分が色がついている状態(選択状態で)<code>っていうボタンを押してくださいね。

clearContent()はrangeかsheetに対して実行しないといけないから…

javascript

1//------------------「名簿シートのA列を条件付きでクリアする関数」------------------// 2 3function ClearSheetValues(){ 4 5var ss = SpreadsheetApp.getActive().getSheetByName("名簿"); 6var n = 1; 7 8for(;;){ 9var rangeA = ss.getRange( "A" + n ); //→これ無駄.getValue(); 10var rangeG = ss.getRange( "G" + n ).getValue(); 11 12if(!rangeG){ 13break; 14}else{ 15if(rangeG == "クリア対象"){ 16rangeA.clearContent(); 17} 18n++; 19} 20} 21} 22 23//------------------「名簿シートのA列を条件付きでクリアする関数」------------------//

投稿2018/11/16 11:16

papinianus

総合スコア12705

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

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

papinianus

2018/11/16 11:18

変数の名前として、rangeとかいうデータの種類を接頭語として付けるのは良くないことです。rangeAというものが実はあなたのコードではvalueAなのです。それをこの回答では"本当に"rangeAであるように直しました。rangeGはvalueGのままです。 それはとっても良くない習慣なのでやめましょう。このコードを教えてくれた人も良くないプログラマです。
papinianus

2018/11/16 11:19

あと、forの使い方がとっても良くないです。これを参考にしたサイトなりがあると思うのですが、利用しないようにしましょう。
tnoce_

2018/11/18 08:10

ありがとうございます! クリアしたいものだけクリアできました! 勉強します!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問