特定のセルと同じ背景色を探し出し同じ入力内容にしたい
スプレッドシートでカレンダーを作成し予定を入力しているのですが、同じ内容は同じ色のセルにしてまとめています。
ある時データを吹っ飛ばしてしまい、内容が無いままセルの色だけ残ってしまいました。
幸い手帳など他のデータから復元は可能なのですが、過去5年分くらいあるため手作業でやるのはちょっと面倒そう。
そこで、GASで処理できないかと一念発起しコードを書いてみましたが、中々思い通りに動いてくれません。
イメージとしては下記のようなカレンダー表そのままです。
A1 ~年~月 1 月 C1 D1 E1 F1 G1 2 火 C2 D2 E2 F2 G2 3 水 C3 D3 E3 F3 G3 4 木 C4 D4 E4 F4 G4 5 金 C5 D5 E5 F5 G5
例えば<A1>の背景色を"赤"にして"出張"と入力した場合、C1:G5の範囲内で背景が赤いセル全てに出張と入力される、そういったコードを書きたいのです。
現状では1行目しか判定されず、どうしたら範囲内全てを判定されるようになりますでしょうか?
宜しくお願いいたします。
発生している問題・エラーメッセージ
TypeError: Cannot read property '0' of undefined identifyColor @ 色.gs:17
該当のソースコード
function identifyColor(){ var sheet = SpreadsheetApp.getActiveSheet(); var targetColor = sheet.getRange("任意のセル").getBackground(); var colorsListRange = sheet.getRange("任意の範囲"); var colorArray = colorsListRange.getBackgrounds(); var contentArray = colorsListRange.getValues(); for(var i = 0; i < 100; i++){ var cellColor = colorArray[i][0]; if(cellColor == targetColor){ contentArray[i][0] = "=任意のセル"; }else{ contentArray[i][0] = ""; } } }
試したこと
17行目にエラーが出てしまいます。
i<7にすると動作しますが、今度は1行7セルだけしか判定してくれません。
参考資料
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/16 08:55
退会済みユーザー
2021/10/17 06:21