前提・実現したいこと
縦書きカレンダー調のスプレッドシートでスケジュール管理をし、例えば赤色の背景色は出張、青色は商談といったカテゴリー分けをしています。
その中で文字の色を変えてあり、白文字は直帰やグレー文字は接待など意味を持たせています。
私だけが分かる仕様なので、在宅勤務が続いている内に一目で分かるように直したいのですが、条件付き書式ではセルやフォントの色を参照した処理ができないようで、GASで処理を構築できないか模索しています。
A1 出張 ←ここの文字色は#ffffff A3 商談 ←ここの文字色は#c0c0c0 A5
上記のような状態において行いたい処理は2点です。
1.セルA2が出張直帰となるような、各カラーに対応した文字をベースの後ろに付けたい
2.膨大な量の中から自動で参照して処理するようにしたい
以前にこちらの識者の方から背景色を参照した処理のコードをご教授頂きまして、それをベースに作れないかと試行錯誤しましたが全くうまくいきませんでした。
素人が手を出して良い領域ではないこと重々承知しておりますが、ご助力を賜りたく、何とぞよろしくお願いいたします。
該当のソースコード
特定セルと同じ背景色を範囲内から探し出し、同じ内容に書き換えるコードです。
getBackgroundをFontColorに替えただけでは何も動作しませんでした。
const cltest = () => { q30("特定のセル","A1:A5"); } const q1 = (sourceA1, targetA1, sheetName) => { sourceA1 = sourceA1 || "特定のセル"; targetA1 = targetA1 || "A1:A5"; const workingSheet = sheetName ? SpreadsheetApp.getActive().getSheetByName(sheetName) : SpreadsheetApp.getActiveSheet(); const sourceRange = workingSheet.getRange(sourceA1); const keyColour = sourceRange.getFontColor(); 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[i][j] === keyColour ?designatedValue:c)));} }
あなたの回答
tips
プレビュー