![見出し画像](https://assets.st-note.com/production/uploads/images/131150174/rectangle_large_type_2_28cb8b277bbab9721fa36ce5eff2cec0.png?width=1200)
Googleスプレッドシート 最強ショートカット Ctrl +Y (F4)と カラースケールと 2(マクロの記録)
ショートカットネタの続きです。
前回、mirが推す Googleスプレッドシートの最強ショートカット Ctrl + Y (F4キー)について書きました。
色々書いていたら長くなってしまったので、前回はタイトルにあるもう一つのテーマ「カラースケール」にたどり着く前に終わってしまいましたw
今回はようやく、カラースケールと Ctrl + Y(F4キー)って話に入っていきます。そして、GAS(マクロ記録)やシート関数、フリーの便利ツールも登場!
前回の note
条件付き書式と F4キーショートカット
先に少し前回のおさらいをしながら、条件付き書式とF4キーショートカットについて触れておきます。
なお、以降は Ctrl + Y (または Ctrl + Shift + Z)のショートカットは、Googleスプレッドシートでは 同じ動作となる F4 キーとして記載していきます。
個人的には 1キーで完結できるF4 キーが最強かなってことで、F4利用を推してますが、3つのうち 好きな方法をご利用ください。
前回から F4最強ってやたら書いてるんで、なんか Flower four(花の四人組) 推しみたいんですねw
古いネタで失礼。
連続でセルの書式設定は F4キーで
![](https://assets.st-note.com/production/uploads/images/131122528/picture_pc_67d23b10ce20e1976353d97b8f82ce6f.gif?width=1200)
F4キーは 公式では「やり直し」(海外版だと Redo)という言い方ですが、Googleスプレッドシートでの 実際の使い方としては「1つ前に行った処理を 選択したセルにも繰り返す」というイメージです。
複雑な処理を繰り返すことは無理ですが、上のようなセルを指定の色にするや 文字色を変える、太字にする など、シンプルな 書式設定を目視で適用していく作業などは、F4キーを使うことで 超効率化することが出来ます。
もちろん、ロジックが決まってるのであれば 条件付き書式で設定(自動化)した方が効率的なんですが、世の中の手作業は意外とロジック化できないものが多いのも実情なんですよね。
![](https://assets.st-note.com/img/1708133023687-Wa5XmkVFlm.png?width=1200)
また Excelと違って Googleスプレッドシートの条件付き書式で使える書式設定は非常に制限されています。
![](https://assets.st-note.com/img/1708133116619-s1IvqEYktp.png)
フォントサイズやゴシック、明朝、メイリオといったフォントの種類、表示形式、セルの罫線は、条件付き書式で使うことができません。
どうしてもこれらを適用させたい場合は、GASを使うか、GASを組むほどでもない、もしくはGASはよくわかりませんって場合は、手作業となってきます。
![](https://assets.st-note.com/production/uploads/images/131124359/picture_pc_a18e24c4300744b03b5f7db7ae163353.gif?width=1200)
このような 手作業の負担、時間を軽減するのが F4キーのショートカットであると、覚えておきましょう。
条件付き書式は コピペを 繰り返す方法で対応
上のような セルを この色にする や、文字を太字にするといった、1つの書式設定であれば F4キーで繰り返しが可能です。
しかし、セル色を明るいオレンジ3、文字色を赤、さらに太字にするという複合書式設定は、そのまま F4キーで繰り返すことはできません。
![](https://assets.st-note.com/production/uploads/images/131125896/picture_pc_94b32425c53591b16c0825959b9bb5ea.gif?width=1200)
このような複合設定をF4で繰り返そうとすると、最後に設定した書式(上の場合は太字化)のみの繰り返しとなってしまいます。
また、条件付き書式のような サイドバーで諸々設定するような処理は、そもそも F4キーでは繰り返しが出来ません。
このような場合は手動で設定したセルを
コピー → 書式を貼り付け (もしくは条件付き書式を貼り付け)
を最初の1回は手動実行してから、この「書式を貼り付け」をF4キーで繰り返すという方法が有効です。
![](https://assets.st-note.com/production/uploads/images/131126791/picture_pc_cd16006084da8fa2123999f8238e1d6d.gif?width=1200)
Q1. 年齢が30以下の人の名前と年齢の両方のセルに条件付き書式で色を付けたい
![](https://assets.st-note.com/img/1708135466583-w9xE6m53Ua.png)
いきなりですが、ここで軽めの条件付き書式のお題をいってみましょう。
上のように B2:C10セルに「名前、年齢」が入っている表で、年齢が30以下の人の名前(B列)と年齢(C列)の両方のセルを条件付き書式で塗りつぶしたい場合、どのように設定すればよいでしょうか?
今回のケースは、名前セル(B列)は他のセルの数値を基準とするので、カスタム数式を使う必要があります。
これは基本ですから出来ますよね? 考えてみましょう!
すぐに回答いきます。
↓↓↓
A1. 年齢が30以下の人の名前と年齢の両方のセルに条件付き書式で色を付ける
正解はこちら。
![](https://assets.st-note.com/img/1708136018234-P0oqozSQHR.png?width=1200)
カスタム数式で
=$C2<=30
このように設定します。(他の書き方もありますが、これが基本形です)
絶対参照の理解は必要になりますが、割と簡単ですね。
条件付き書式については、最近の noteでも触れております。
絶対参照、相対参照の理解 は条件付き書式でカスタム数式を使う上で、必須となります。
理解が甘い方は、Excel系のブログで詳しいところがいっぱいあります。(考え方はExcelと一緒です)しっかり理解しておきましょう。
F4キーは 絶対参照 ⇔ 相対参照 の切り替えショートカットでもある
![](https://assets.st-note.com/production/uploads/images/131154290/picture_pc_a7b1339d03ed1eca183cff88c0f5e105.gif?width=1200)
今回、「やり直し」(一つ前の動作の繰り返し)をする最強ショートカットキーとして F4を紹介していますが、実はこのキーは別のショートカットキーの顔があります。
それは、セル内の数式において セル参照の 絶対参照 ⇔ 相対参照 を切り替える機能です。
これも Excelでもお馴染みのショートカットです。
で、単体セルの場合は Excelと同じ感覚で使えるんですが、セル範囲の場合は ExcelとGoogleスプレッドシートではちょっと違います。
![](https://assets.st-note.com/production/uploads/images/131155111/picture_pc_ca7f5a11e217fdc0a1180b707d8b762d.gif)
Googleスプレッドシートは、例えば片側の A10 だけを選択したとしても、 常に 始点A1と終点A10 どちらも 絶対参照に切り替わります。
よくある始点だけ絶対参照に切り替えたいといった、片側だけ絶対参照切り替えがF4ショートカットで出来ません。(もし方法がありましたら教えてください)
![](https://assets.st-note.com/production/uploads/images/131155525/picture_pc_b94f8af1ce96f0c300673ec6dd215333.gif)
一方、Excelは選択した側だけ、両方選択したら両方とF4キーによる 絶対参照切り替え対象を思い通りに指定できます。
やはり細かいところでよく出来てます!
![](https://assets.st-note.com/production/uploads/images/131155803/picture_pc_74e58bd94d73ae411b6b203996feed8a.gif)
ついでに言うと、Googleスプレッドシートの条件付き書式のカスタム数式では、F4キーによる絶対参照切り替えが効きません。
これも結構不便だったりします。
F4ショートカットキーの もう一つの顔、絶対参照・相対参照切り替えという余談でした。
Q2. 横のテーブル(表)に条件付き書式をコピーしても使えるようにしたい
![](https://assets.st-note.com/production/uploads/images/131128965/picture_pc_3bc13499950a75a624a40ecc7887a9c2.gif?width=1200)
本題の条件付き書式の話に戻ります。
先ほどの回答は単体のテーブル(表)であれば問題ないのですが、今回は最終的に 他のテーブル(表)に条件付き書式のコピペを繰り返したいと考えています。
この場合、ちょっと問題があります。
表は 縦2 × 横2 でシートに配置されているんですが、下のBチームは 問題なく30歳以下が色付けできるものの、Cチーム、Dチームは gif動画の通り 表内の年齢ではなく隣の Aチーム、Bチームで 色が付いた行と同じ行が 色付けされてしまいます。
これはカスタム数式で
=$C2<=30
と 参照する列を 絶対参照で C列に固定してしまっている為、横にある表では条件付き書式をコピーしたとしても、C列の年齢で条件判定されてしまう為です。
では、このように横の表に条件付き書式をコピーしても使えるようにするには、カスタム数式をどのように変更すればよいでしょうか?
なお、表の構成は4つとも同じとします。
お題2つ目チャレンジしてみましょう!
少し難しいですかね。回答です。
↓↓↓
A2. 横のテーブル(表)に条件付き書式をコピーしても使えるようにする
検証しながら回答していきましょう。
これは幾つか方法がありますが、例えば思いつくのが
=OR(B2<=30,C2<=30)
このような OR関数を使って、どちらかが30以下なら TRUEとなるカスタム数式を使う方法。
しかしこれはうまくいきません。
![](https://assets.st-note.com/img/1708137797698-5u1uPEhmEg.png?width=1200)
理由は 相対参照になっている為です。
B列の場合は問題ないんですが、C列のセル(たとえば C2セル)の場合
=OR(C2<=30,D2<=30)
このような 式で判定されてしまいます。
そして、D列は空欄なので0扱いで30以下と見なされてしまう為、カスタム数式は TRUEを返し、C列が全て塗りつぶしとなってしまいます。
![](https://assets.st-note.com/img/1708138332435-mZw4yLFJH3.png?width=1200)
では、どうすればよいか?
そのまま対策をとると、空白ではないを条件に加えればよいので
=OR(B2<=30,AND(C2<=30,C2<>""))
という式を使ってもよいです。これも一応回答となります。
ただ、ORとANDが両方出てきて式がわかりづらいですよね。
というわけで、mirとしては別の式が良いかなと考えます。
![](https://assets.st-note.com/img/1708138711656-EqbDIYa4IB.png?width=1200)
この場合は MIN関数を使ったカスタム数式がおススメですね。
=MIN(B2:C2)<=30
これはMIN関数が 文字列や空白セルを無視する(空白を0として扱わない)という性質を利用しています。
![](https://assets.st-note.com/img/1708139374607-UfpzDlLnhr.png?width=1200)
また、別解となりますが 表の構成が全て同じという前提を利用した
=if(B$1="氏名",C2,B2)<=30
というカスタム数式を使う方法もあります。
条件付き書式(カスタム数式)とF4ショートカットを組み合わせる際の注意点
では 回答2の条件付き書式を コピペと繰り返しで 正しく他の表に適用できるか確認してみましょう。
![](https://assets.st-note.com/production/uploads/images/131133276/picture_pc_0d46329a7c10d39335aff293c20846af.gif?width=1200)
いい感じですね。F4ショートカットが条件付き書式でも活用できました。
条件付き書式(カスタム数式)を書式コピペ、および ショートカットF4キーで繰り返しする際は、
絶対参照があるとうまく機能しないことがある
カスタム数式は工夫が必要な時もある
という注意点があることを意識しましょう!
カラースケール機能で F4キー(Ctrl + Y)は使えるの?
![](https://assets.st-note.com/img/1707630297202-qrn3LFog15.png)
今回のもう一つのテーマである「カラースケール」機能の話に入っていきましょう。(ようやくw)
Googleスプレッドシートの カラースケールとは?
![](https://assets.st-note.com/img/1707630316545-5UuGE4mduB.png?width=1200)
カラースケールは 元々 Excelにあった 条件付き書式の特殊機能の一つで、色のグラデーションで セルの値の 大小を表す機能です。
Excel の条件付き書式の特殊機能 カラーバーや アイコンセットは 輸入されませんでしたが、このカラースケールだけは Googleスプレッドシートにも実装されました。
![](https://assets.st-note.com/img/1708140474817-xzsfvb8nzG.png?width=1200)
ちなみに Googleスプレッドシートを Excel形式でダウンロードした場合も、この カラースケールの条件付き書式は引き継がれます。
![](https://assets.st-note.com/img/1707630327680-BF0yQdwWqL.png?width=1200)
基本的にはデフォルトカラーの中から、範囲内の最大値が濃い目の色、もしくは最小値が濃いめの色で 徐々に白(無色)となるグラデーションを使うのがおススメですが、自分で 色を設定することも可能です。
また、こちらは 数値セルに対して適用するもので、テキストが入ったセルには影響がありませんし、特定の列の数値をもとに その行全体にカラースケールを適用させるといったことは出来ません。
もう一つの特徴として、Googleスプレッドシートでは 条件付き書式は 一つしか適用できないというガッカリな縛りがあるんですが、カラースケールだけは特殊で、文字装飾の条件付き書式と組み合わせて使うことができます。
それについては過去の noteで触れています。
順位や 数値の大小を 視覚的にわかりやすくするのに便利な機能です。
カラースケールを F4キーで繰り返すけど コレじゃない・・・
![](https://assets.st-note.com/production/uploads/images/130511486/picture_pc_cb94c49a34e573d171e457ef75a7359e.gif?width=1200)
先ほど書いた通り通常の条件付き書式は、カスタム数式の場合は注意が必要ですが、F4キーで 書式貼付け(または条件付き書式のみ貼付け)を繰り返することが出来ます。
しかし、カラースケールの書式コピぺ (F4繰り返し)だと、これが思うようにいきません。
上の画像は F4キーで 点数が大きい方を より濃い緑になるようにカラースケールを適用したものを 他の教科(列)に 書式貼付け F4キー繰返しをしたんですが、列毎のカラースケールにはならず 全体で一つのカラースケールにまとめられてしまいました。
本来やりたいことは 個々の範囲(列)ごとの
![](https://assets.st-note.com/img/1707630417462-zi5SCt1oCw.png?width=1200)
↑ このようなカラースケールです。
もしや隣接する(隣の)セルにカラースケールの書式を貼り付けるから 一塊にされてしまうのかと、間をあけて 条件付き書式の貼り付けをしても、このように 飛び飛びの範囲に 同じカラースケールが適用されてしまいます。
![](https://assets.st-note.com/img/1707630429521-C6TcwSw4fn.png?width=1200)
Googleスプレッドシートは 負荷軽減の為なのかわかりませんが、同じシート内の条件つき書式を一つにまとめようとする仕様になってるってことです。
これだと 最強ショートカット F4キーでもお手上げです。
Excelだと 個々の範囲のカラースケールを 書式貼付け出来る
![](https://assets.st-note.com/production/uploads/images/130511552/picture_pc_36239f363e28a4ee8220c2f80c2d0e16.gif?width=1200)
ちなみに Excelの書式貼付けであれば、選択したセル範囲ごとの カラースケールが適用できます。
![](https://assets.st-note.com/img/1707630476776-ZClFgzjcrg.png?width=1200)
やはり、この手の痒い所に手が届く感は Excelが強いですね。
ちなみにこのExcelを Googleドライブにアップロードして スプレッドシートに変換すると
![](https://assets.st-note.com/img/1707630485686-pBaeMZFBHl.png?width=1200)
このように 個々のカラースケールが保持された状態となります。
この方法で対応するって回避策もアリですが、ちょっと面倒ですしExcel持ってないと使えない方法なんで、出来ればGoogleスプレッドシートで解決したいところです。
では、個々にカラースケール設定を手動で繰り返す以外にいい方法はないものか?
マクロの記録を使ってみる
![](https://assets.st-note.com/img/1707630552874-f3ca8ElrJt.png?width=1200)
このショートカットで簡単に範囲毎にカラースケールを適用する方法ですが、裏技的な方法も探してみたんですが残念ながら見あたりません。
やはりGAS、マクロは全てを解決する・・・・!! ってことですね。
自分でゼロからコードを書いてもいいんですが、今回は 初心者でも割と使いやすい マクロの記録 を使う方法でやってみましょう。
もちろん、まったくGAS触ったことない人にはハードル高いかもですが、この作業が定期的に発生する人は効率化のチャンスです。
プログラミング怖い!って人も、簡単なんで一歩踏み出してみましょう。
![](https://assets.st-note.com/production/uploads/images/131139273/picture_pc_6703d23cc0ae9d0cfcefe8feffcf3910.gif?width=1200)
このマクロの記録でポイントが2つあります
カラースケールの適用範囲を選択した状態でマクロ記録をスタートする
マクロ記録は「対参照を使用」を選択する
先に一つ目の カラースケールの適用範囲(C2:C5)を選択した状態で
メニューの
拡張機能 > マクロ > マクロを記録
で、記録をスタートします。
このようにしないと 最初にセルを選択する動きが相対参照で 実行時に再現されてしまいますw (見当違いのセルに適用されます)
そして 画面下に以下のダイアログがが出てきたら、
![](https://assets.st-note.com/img/1708142225097-BJ4NgWywsk.png)
絶対参照ではなく、相対参照 の方を選択します。
絶対参照、相対参照は 条件付き書式でも登場しましたが、マクロでも出てきました。やはり表計算ソフトを使う上で、重要な要素ってことです!
以前はマクロの記録にこの設定がなかったので、記録されたコードを書き替える必要がありました。
現在はここの設定を変えるだけで 「選択したセル」にその動作を実行するというコードになります。だいぶ初心者に優しくなったかなと。
あとは、範囲(C2:C5)に 条件付き書式のカラースケール(数値が大きいほど 濃いグリーン)を適用し、処理が完了したら マクロに名前をつけて保存しましょう。
![](https://assets.st-note.com/img/1708144309599-3IuMmpCZCO.png)
マクロの名前はなんでもよいです。あと、ショートカットの方は適当に 数字の1あたりを入れておくのがよいでしょう。
これらは後で変更可能です。
![](https://assets.st-note.com/img/1708142850735-THONZmz4WC.png)
保存してすぐであれば、左下にこのように 「スクリプトを編集」という表示がでますが、これはしばらくすると消えてしまいます。
その後、マクロ記録で生成されたコードの確認や編集をする場合は、
メニューの
拡張機能 > Apps Script
で スクリプトエディタを開き行うことができます。
これで「マクロの記録」は完了です。
記録したマクロを実行してみる
![](https://assets.st-note.com/img/1708144428891-NXFC2JyEJf.png?width=1200)
記録したマクロはメニューから、もしくは(設定した場合は)ショートカットキーで 実行できます。
拡張機能 > マクロ > macro01(先ほど保存したマクロ名)
と選択、もしくは先ほど設定したショートカット
Ctrl + Alt + Shift + 1
※1は 設定したキー
で実行可能です。※数字キーはテンキーからは使えないことがあります。
適用させたい範囲を選択して記録したマクロを実行してみましょう。
※初回は GASと同じで 承認が必要になります。承認だけで終わってしまい実行されないことがありますが、その際はもう1回実行しましょう。
![](https://assets.st-note.com/production/uploads/images/131140865/picture_pc_cd77236bff647589c6e534fc2ba22c8c.gif?width=1200)
カラースケールが列単位で適用されましたね。
C列(国語)とD列(算数)が別で設定されているのがわかります。
成功です!
ここまでが GAS(プログラミング)の手前ラインなんで、これで十分って方はこのまま使っちゃってください。
ここら先に足を踏み入れることは、ルビコン川を渡ることになります!(そこまで重い話ではないw)
より良いマクロを使いたい!もっと理解を深めたい!って方は是非チャレンジを。知ってるひとは内容は簡単なんで読み飛ばしていただければOK。
マクロの記録は、無駄な動きも記録されてしまう
さきほど実行してみた選択範囲にカラースケールを適用するマクロですが、ちょっと気になる点が・・・
スクリプト実行した時に、セルの色がコロコロ変わって、最後にカラーバーが適用されてますよね。これは何か?
よく見ていくと
![](https://assets.st-note.com/img/1708145379382-3b2YwjIDII.png?width=1200)
![](https://assets.st-note.com/img/1708145471330-D4D9Vs8JfG.png?width=1200)
![](https://assets.st-note.com/img/1708145571691-0PMPRuiD2o.png?width=1200)
このように 条件付き書式を①、②と差し替えて最後に ③の 本来適用したいカラースケールになっています。
これは、Googleスプレッドシートの 条件付き書式を選択した時の、基本設定が自動で適用されてしまう仕様を そのまま記録してしまっている為です。
もちろん気にせずこのまま使ってもよいんですが、動作に無駄があるので出来れば 最初から③を適用させたいですよね。
というわけで、記録したマクロで生成され記録したマクロの生成されたコードを確認、そして編集していくことになります。
スクリプトエディタの世界へ GOです!
記録したマクロのコードを確認、編集してみる
通常のGASと同じくメニューの
拡張機能 > AppScript
からエディタを開くと マクロ記録で生成されたコードが確認できます。
↓ こんなコードが記載されてました
/** @OnlyCurrentDoc */
function macro01() {
var spreadsheet = SpreadsheetApp.getActive();
var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.push(SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.whenCellNotEmpty()
.setBackground('#B7E1CD')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.setGradientMinpoint('#57BB8A')
.setGradientMaxpoint('#FFFFFF')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.setGradientMinpoint('#FFFFFF')
.setGradientMaxpoint('#57BB8A')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
};
マクロ記録らしい・・・ごちゃついて読みづらいコードですね。
結構長いコードですが、これは 先ほど書いた通り無駄に 条件付き書式を設定しては変更してを繰り返しているからです。
コードを分解してみましょう。
var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
この conditionalFormatRules が名前からして条件付き書式だってのはわかりますね。
で、コードは
/** @OnlyCurrentDoc */
function macro011() {
var spreadsheet = SpreadsheetApp.getActive();
//①「空白ではないセル」の条件付き書式
var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.push(SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.whenCellNotEmpty()
.setBackground('#B7E1CD')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
//②数字が小さい方が色の濃いカラースケール
conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.setGradientMinpoint('#57BB8A')
.setGradientMaxpoint('#FFFFFF')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
//③数字が大きい方が濃いカラースケール
conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.setGradientMinpoint('#FFFFFF')
.setGradientMaxpoint('#57BB8A')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
};
このように 条件付き書式ごとに 3つに分けることが出来ます。
ちなみにちょっとメソッドの理解が必要ですが ②と③は
conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
このように spliceというメソッドが使われています。これは条件付き書式の差し替えをの処理となっています。
条件付き書式を新しく作成するのは ①の書き方
conditionalFormatRules.push(SpreadsheetApp.newConditionalFormatRule()
pushを使ったものです。
そして
SpreadsheetApp.newConditionalFormatRule() ~ build()
の部分が実際の条件付き書式の 条件設定となります。
※今回は 条件付き書式のGASを学ぶ回という趣旨ではないので、この部分の説明は割愛します。
というわけで、(なんとなーくで良いので) ①の書式設定の部分を ③の書式設定の記述に差し替えれば、あとの②、③は不要ってことだとわかりますね。
つまり
![](https://assets.st-note.com/img/1708147409646-kOrAgIjbzH.png?width=1200)
こういうことです。
そうするとコードは
/** @OnlyCurrentDoc */
function macro011() {
var spreadsheet = SpreadsheetApp.getActive();
//数字が大きい方が濃いカラースケール
var conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
conditionalFormatRules.push(SpreadsheetApp.newConditionalFormatRule()
.setRanges([spreadsheet.getActiveRange()])
.setGradientMinpoint('#FFFFFF')
.setGradientMaxpoint('#57BB8A')
.build());
spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);
};
このようになります。だいぶすっきりしましたね。
これを保存し、再度マクロ実行で正しくカラースケールが適用されるか確認してみましょう。
※ Googleスプレッドシートの マクロによるシートへの処理は、ExcelのVBAと違って 「元に戻すボタン」(前回紹介の Ctrl + Z)で戻すことが出来ます。
![](https://assets.st-note.com/production/uploads/images/131144704/picture_pc_b8e05d6bcce9def688b06f043fc98a50.gif?width=1200)
記録しただけの時のマクロ実行した際のコロコロ色が変わる無駄な挙動がなくなり、シンプルにカラースケールが適用されました。
編集したマクロをショートカット実行してみる
![](https://assets.st-note.com/img/1708148185994-YCHuhZmERb.png?width=1200)
それでは 今回のテーマであるショートカットでマクロ実行をやってみましょう。
もしマクロの保存時にショートカットキーの設定を飛ばしてしまった場合は、
拡張機能 > マクロ > マクロを管理
で再設定(変更)できます。
![](https://assets.st-note.com/production/uploads/images/131145367/picture_pc_c530fbf18e3ce072fb8c7bd932e58bcb.gif?width=1200)
いかがでしょうか?
列毎に 範囲選択 → ショートカット Ctrl + Alt + Shift + 1
を繰り返すことで、列毎のカラースケール適用が 出来ました。
もちろん、GASのコードを理解していれば forループなどを使ったコードに改変して、1回実行するだけで 範囲内のセルを列毎にカラースケールを適用するって書き換えができます。
でも、GASがあまりわからない人でも、これくらいは割と簡単にできるってことです。
最強ショートカット F4キーが使えない場合(範囲毎のカラースケールなど)の繰り返し作業では、
マクロ記録 + ショートカット実行
が有効であることが理解できましたでしょうか?
ショートカットは作れる PowerToys
![](https://assets.st-note.com/img/1708149958271-8FjNXWJyQt.png?width=1200)
最後にGoogleスプレッドシートから少し外れますが、オマケネタです。
先ほど マクロ実行は ショートカットを使えると言いましたが、
Ctrl + Alt + Shift + 1
という4点押しで、これ片手で実行するのはかなり厳しいですよね。
でもマクロの記録機能では Ctrl + Alt + Shift は必須なんで キーはもう少し下を選んでも 4点押しは変えようがないし・・・ という方に最後に便利なツールを紹介しておきましょう。
Windowsユーザーなら 知ってる人は知っている PowerToys というツールです。
Windowsにあったら便利だなというツールを詰め込んだ、彦摩呂の食レポじゃないですが
「便利ツールの宝石箱や~」
と言いたくなるソフトです。
GitHub経由で exeファイルからインストールする方法もありますが、Microsoftのアプリストアからもインストール可能。(不安な人は アプリストアからがおススメです)
インストールの流れや、今回紹介する機能以外にもたくさんの機能があるので、興味がある方は他サイトも参考にして試しに入れてみてください。
KeyBoard Manager のショートカットの再マップを利用する
![](https://assets.st-note.com/img/1708148941829-xko0w3me8a.png?width=1200)
PowerToysの中にある KeyBoard Manager はキーを入れ替えたり、キーボードショートカットを別のキーボードの組み合わせで実行させるといったことが出来ます。
たとえば
Ctrl + Alt + Shift + 1 を 左手で押しやすい Alt + V に差し替えたい
と言った場合、
![](https://assets.st-note.com/img/1708150541205-AKkmOgI9bC.png?width=1200)
キーボードマネージャーの ショートカットの再マップで このように設定すればOKです。
ターゲットアプリを chrome.exe に指定してるので、Chrome上でのみ このショートカット代替が機能します。
![](https://assets.st-note.com/img/1708150688885-I6W8A1hpGY.png?width=1200)
こんな感じで登録されたらOK。
再マップした 簡略ショートカットから マクロ実行してみる
それでは実際使えるか試してみましょう。マウス無しキーボードだけの操作で、連続カラースケールを行ってみます。
![](https://assets.st-note.com/production/uploads/images/131148804/picture_pc_195723868bdbe1575f0b6deff98280f8.gif?width=1200)
ScreenToGif のキーストローク表示だと
Alt +1 Alt + Ctrl + Shift + 1
と一気に押したように見えてしまいますが、これは
Alt +1 を押したことで → Alt + Ctrl + Shift + 1 を押したと認識
とイメージしてください。
PowerToysで簡略化したショートカットで マクロ実行ができました。
これはまさに、
「マイクロソフトとGoogleの禁断のマリアージュや~」(再度、彦摩呂)
ですねw
Googleスプレッドシート 最強ショートカット Ctrl +Y (F4)と カラースケールと
2回にわたって 繰り返しショートカットキー F4(Ctrl + Y)、そして条件付き書式のカラースケール、そこから マクロの記録機能に派生して書いてみました。
まとめとしては、
Googleスプレッドシートの繰り返し作業は ショートカット F4が便利
一部 F4の繰り返しが効かない処理は、マクロの記録を試してみる
マクロの記録は 相対参照を選択すると、後でアクティブセルに使える
記録したマクロはコード編集で、より快適に使える
マクロはショートカットで実行できる(4点押し)
ショートカットは PowerToysで再編できる
+
オマケ:F4ショートカットは 絶対参照・相対参照の切り替えでも便利
このようになります。
F4キーのショートカットの便利さは十分伝わったんじゃないでしょうか? 是非みなさんも活用していきましょう!
そして最後に登場した PowerToysも「常に前面に表示」や正規表現を使ってファイル名やフォルダ名を一括変換する「Power Rename」など、キーボードマネージャーの他にも便利な機能が色々あります。また機会があれば紹介したいと思います。
次回は、Googleスプレッドシートのハイパーリンクについて書こうかなと。
この記事が気に入ったらサポートをしてみませんか?