プロが教えるわが家の防犯対策術!

スプレッドシートで、H列に「★」が入っていれば「★」を削除するというGASを組みたいのですがどのようにコードを書けばいいでしょうか?
H5セルからH8セルまでに★が入力されている→★を一括削除、のようなことを実現したいと考えています。

よろしくお願いします。

質問者からの補足コメント

  • 回答ありがとうございます!
    こちらで実現できました!

    このスクリプトと同時に
    別途作成していたfunction test2()のスクリプトも同時に動かしたいのですが、どのようにコードを入力すればよろしいでしょうか?
    ※ファイルの.gsで保存してるコードを同時に複数動かしたい

    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/12/02 15:27

A 回答 (2件)

こんにちは



GASはほとんど使ったことはありませんが・・

書き方もいろいろあると思いますけれど、一応、以下で処理可能と思います。

function test() {
const rg = SpreadsheetApp.getActiveSpreadsheet().getRange('H5:H8');
const vs = rg.getValues().map(r => r.map(c => c.replaceAll('★','')));
rg.setValues(vs);
};
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとう

解決しました!

教えていただきたすかりました!!
ありがとうございました!

お礼日時:2023/12/03 23:43

No1です。



>test2()のスクリプトも同時に動かしたいのですが~~
お断りしましたように、GASはあまり知らないのですが・・
多分「同時実行」は無理なので、どちらかが先になると思います。

先に実行するスクリプトの最後に、もう一方の処理をコピペしておけば、続けて処理されます。
ただし、使用している変数が重複していると「再定義」のエラーになる場合がありますのでご注意。

あるいは一方の記述の最後に
 test2();
のようにして、もう一方を呼び出すという方法でもよさそうです。
(GASのNameSpaceがどうなっているのかわかりませんけれど、多分、可能だろうと想像します)


いつも連続して処理するとは限らないので、続けて書きたくないような場合は、
function test3() {
test2();
test();
};
のようなものを別に作成して、こちらを実行しても可能と思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A