前提・実現したいこと
【keyColour】と【targetColours】が同じなら【keyColour】の内容をコピーして貼り付ける
上記の内容を実現したいのですが、値は同じになりますが背景色が同じになりません。
どのようにすればよろしいでしょうか?
以前にこちらで識者の方から頂いたコードを紐解き試行錯誤しておりましたが、なかなか思うように動いてくれません。
なにとぞご助力のほどお願い申し上げます。
該当のソースコード
const myFunction = () => {q00("AA1","E4:CC26");} const q00 = (sourceA00, targetA1, sheetName) => { sourceA00 = sourceA00 || "AA1"; targetA1 = targetA1 || "E4:CC26"; const workingSheet = sheetName ? SpreadsheetApp.getActive().getSheetByName(sheetName) : SpreadsheetApp.getActiveSheet(); const sourceRange = workingSheet.getRange(sourceA00); const keyColour = [sourceRange.getFontColor(), sourceRange.getBackground()]; const designatedValue = sourceRange.getValue(); const targetRange = workingSheet.getRange(targetA1); const targetColours = targetRange.getFontColors(); const targetValues = targetRange.getValues(); targetRange.setValues(targetValues.map((r, i) => r.map((c, j) => targetColours[0][i][j] === keyColour[0] && targetColours[1][i][j] === keyColour[1] && c !== '' ? designatedValue : c)));}
試したこと
・ setBackground(null)
上記を入れ込もうとも考えましたが、こちらも上手く動作しませんでした。
> 値は同じになりますが背景色が同じになりません。
この意味がわかりませんでした。値とは具体的にどれのことですか?
そして、文字色の変更はされるが背景色は変更されなかったということですか?
それからmyFunctionからq0が呼び出されていますが、定義されているのはq00ですね。これはただの記述ミスですか?
itagagaki 様
ご連絡ありがとうございます。
myFunctionの件は入力ミスです、失礼いたしました。
こちらは加筆修正しております。
本題ですが、AA1とE4:CC26には文字が入力されており両方が同じフォントカラーの場合、AA1の内容に上書きされるようになっています。
しかしながら入力された文字のみ上書きされており、ここを背景色も同じになる=AA1と全く同じ内容になる仕組みにしたいのです。
説明不足でお手間を取らせましたことお詫びいたします。