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

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

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

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

Google Apps Script

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

4058閲覧

スプレッドシートでチェックボックスがTRUEのとき最後の行に移動させるマクロを追加したい

mika_A

総合スコア2

Google スプレッドシート

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

Google Apps Script

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

1クリップ

投稿2021/09/16 10:38

編集2021/09/16 23:54

前提・実現したいこと

スプレッドシートで
A列のチェックボックスにチェックが入れて完了ボタンを押したら、その行が非表示になるというマクロを使用しています。
これに「E列にもチェックが入っている場合はその行を表の最後の行に移動する」という指示を追加したいです。

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

業務で使用しているのですが現在のマクロを作った人は退職しており、どうすれば良いのか探しあぐねています。

該当のソースコード

現在のコードはこちらです。

function onEdit0(e) { var sheet = e.range.getSheet(); var targetSheet = "シート名"; if(sheet.getName() !== targetSheet) {return;} // const inputVal = e.value; const checkOn = "TRUE"; if(inputVal !== checkOn) { return; } // const c = e.range.getColumn(); const col_A = 1; if(c !== col_A) { return; } // const r = e.range.getRow(); sheet.hideRows(r); };

試したこと

当サイトで「チェックボックス スプレッドシート」で検索して質問履歴はすべて確認しましたが
同様の質問は無く解決できなかったので新しく質問させていただきました。
おわかりになる方がいらっしゃいましたら追加するべきコードをお教えいただきたく存じます。
何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

これに「E列にもチェックが入っている場合はその行を表の最後の行に移動する」という指示を追加したいです。

記述を以下のように変更してはいかがでしょうか。

GAS

1function onEdit(e) { 2 var sheet = e.range.getSheet(); 3 var targetSheet = "シート名"; 4 if(sheet.getName() !== targetSheet) {return;} // 5 const inputVal = e.value; 6 const checkOn = "TRUE"; 7 if(inputVal !== checkOn) { return; } // 8 const c = e.range.getColumn(); 9 const col_A = 1; 10 if(c !== col_A) { return; } // 11 const r = e.range.getRow(); 12 13 const judge2 = e.range.offset(0, 4).getValue().toString().toUpperCase(); 14 15 if (judge2 === checkOn) { 16 sheet.moveRows(sheet.getRange(r, 1), sheet.getLastRow() + 1); 17 // 移動した行を非表示にするかどうかはご自身でお決め下さい。 18 // sheet.hideRows(sheet.getLastRow()); 19 } 20 else { 21 sheet.hideRows(r); 22 } 23}

投稿2021/09/17 11:52

mayu-

総合スコア335

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

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

mika_A

2021/09/18 14:46

ご回答ありがとうございます。 A列とE列にチェックがある場合、最後行に移動するという理想の動作ができました! 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問