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

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

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

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

Google Apps Script

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

Q&A

1回答

552閲覧

【GAS / Google Apps Script】AとBが同じならAの内容をコピーしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Google スプレッドシート

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

Google Apps Script

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

0グッド

1クリップ

投稿2022/01/09 09:21

編集2022/01/09 15:10

前提・実現したいこと

【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)
上記を入れ込もうとも考えましたが、こちらも上手く動作しませんでした。

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

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

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

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

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

itagagaki

2022/01/09 10:25

> 値は同じになりますが背景色が同じになりません。 この意味がわかりませんでした。値とは具体的にどれのことですか? そして、文字色の変更はされるが背景色は変更されなかったということですか? それからmyFunctionからq0が呼び出されていますが、定義されているのはq00ですね。これはただの記述ミスですか?
退会済みユーザー

退会済みユーザー

2022/01/09 15:21

itagagaki 様 ご連絡ありがとうございます。 myFunctionの件は入力ミスです、失礼いたしました。 こちらは加筆修正しております。 本題ですが、AA1とE4:CC26には文字が入力されており両方が同じフォントカラーの場合、AA1の内容に上書きされるようになっています。 しかしながら入力された文字のみ上書きされており、ここを背景色も同じになる=AA1と全く同じ内容になる仕組みにしたいのです。 説明不足でお手間を取らせましたことお詫びいたします。
guest

回答1

0

GetValues / SetValues で読み書きされるのはセルの値であって、
セルの背景色は SetBackground または SetBackgrounds で書き込む必要があるということだと思います。

・ setBackground(null)
上記を入れ込もうとも考えましたが、こちらも上手く動作しませんでした。

colorとしてnullを指定することにはどういう意味があるのですか?
やるとしたらSetBackground(keyColour[1])なのでは?

投稿2022/01/10 03:04

itagagaki

総合スコア8402

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

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

退会済みユーザー

退会済みユーザー

2022/01/10 04:08 編集

itagagaki 様 ご回答ありがとうございます。 ご教授いただいた方法で試してみたいと思います。 >>GetValues / SetValues で読み書きされるのはセルの値であって、 そうだったのですか、、、何でもいけるのだと勘違いしておりました、、、 勉強不足でお恥ずかしい質問をしてしまいました。 ・ setBackground(null) カラーの勉強をしていた際に消したい場合はnullとありましたため、このような方法を模索しておりました。 こちらも勉強不足でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問