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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

JavaScript

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

Q&A

解決済

1回答

1344閲覧

GAS プルダウンリストの空白セル判定に失敗する

mmp

総合スコア11

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

JavaScript

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

0グッド

1クリップ

投稿2022/09/28 07:44

編集2022/09/28 07:51

前提

Google スプレッドシートにて、
プルダウンリストの空白セル(プルダウンから選択されていないセル)を判定したいです。

i行目のセルについて、
N列が空白の場合 → O列セルをJ列に転記
N列に値が入っている場合 → 何もしない

という作業をしたいですが、
空白の場合以外も転記されてしまいます。

どのように変更したらよいでしょうか。
ご教授いただけますと幸いです。

該当のソースコード

GAS

1function myFunction() { 2 let mySheet = SpreadsheetApp.getActiveSheet(); 3 let i = 3 4 let kuuhaku = mySheet.getRange(i, 14).getValue(); 5 //N列の値を取得 6 for(i; i <= 232; i++){ 7 if (kuuhaku == ''){ 8 let CopyRange = mySheet.getRange(i, 15); 9 let PasteRange = mySheet.getRange(i, 10); 10 CopyRange.copyTo(PasteRange,{contentsOnly:true}); 11 }else{} 12 13 } 14}

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

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

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

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

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

itagagaki

2022/09/28 08:20

console.log(kuuhaku); で値を確認してみましたか?
itagagaki

2022/09/28 08:23

それと kuuhaku は3行目N列の値ですが、それでよいのですか? ループの中で行ごとに kuuhaku = mySheet.getRange(i, 14).getValue(); をしたかったのでは?
mmp

2022/09/28 11:32

ご助言ありがとうございます! let kuuhaku = mySheet.getRange(i, 14).getValue(); がfor文の外にあることでi=3が先に代入されてしまっている、という解釈でお間違いないでしょうか? おっしゃる通り、行ごとに空白の判定を行いたかったです。 このままだと、セルN3が空白ならすべて転記する仕様ですね、、 4行目以降を for(i; i <= 232; i++){ let kuuhaku = mySheet.getRange(i, 14).getValue(); console.log(kuuhaku)} として値を確認したところ、232行目までの値を取得できました。 問題となっていた件が解決できそうです。ありがとうございます!!
guest

回答1

0

自己解決

ご助言をいただき、以下のように変更しました。
・先にkuuhakuにi=3を代入してしまっていた。
(本来はfor文の中で繰り返し代入する予定だったができていなかった)
・空白セルの取得・判定自体は問題なく行っている。
ということでした。
初歩的なミスでした。ご指摘をいただきありがとうございました。

function myFunction() {
let mySheet = SpreadsheetApp.getActiveSheet();
let i = 3
for(i; i <= 232; i++){
let kuuhaku = mySheet.getRange(i, 14).getValue();if (kuuhaku == ''){
let CopyRange = mySheet.getRange(i, 15);
let PasteRange = mySheet.getRange(i, 10);
CopyRange.copyTo(PasteRange,{contentsOnly:true});
}else{}
}
}

投稿2022/09/30 00:31

mmp

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問