Google Apps Script(GAS)を使うと、背景色を自動変更することが可能です。
この記事では請求書作成を自動化するプログラムを紹介していきます。
・スプレッドシートの値変更でGASを自動実行する方法
なお、これは条件付き書式で対応できます。そのため、GASでわざわざ実装する必要はありません。
しかし、GASのスプレッドシートの基本を学ぶには適した題材です。
これからGASの基礎から学んでいきたい人は、この事例でGASプログラムを学んでみることをオススメします。
目次
この記事で紹介するGASプログラムの概要
1. 状況(D列)の値を「完了」に変更
2. 自動で行が灰色になる
3. 状況(D列)の値を「作成中」に戻すと、元の色に戻る
「完了」に変更すると、以下のように自動で行の色が灰色に変更されます。
ちなみに、「完了」から「作成中」に戻すと、以下のように自動で行の色が元に戻ります。
GASでスプレッドシートの色を変更してみる|手順を解説
使用手順2|GASプログラムを実行
使用手順3|スプレッドシートの値変更でGASを自動実行
使用手順4|確認作業
以下で詳しく説明していきます。
使用手順1|スプレッドシートのデータ確認
今回扱う事例は以下です。
B列|内容
C列|担当
D列|状況
E列|期限
F列|備考
上の画像で表示している「シート1」のD列が「完了」かそれ以外かを判別して、行の色を変えるプログラムを作っていきます。
使用手順2|GASプログラムをコピペ
以下の手順でプログラムを実行していきます。
2. 「スクリプトエディタ」をクリック
3. GASプログラムをデフォルトの記載を削除
4. この記事で紹介しているGASプログラムをコピペ
5. ファイルをクリック
6. 保存をクリック
以下で一つずつ解説していきます。
以下の画像は、別の記事を転用しているものがあります。
操作の内容に違いがないため、画像を修正せずにそのまま使用しています。
ご了承ください。
そうすると、以下のスクリプトエディタを出現します。
ちなみに1と2の作業は以下のショートカットキーでも開くことが可能です。
1. ツールをクリックする|[Alt] + [T]
2. スクリプトエディタをクリックする|[E]
以下のリンク先のGASプログラムをコピーします。(リンク先は同じページ下部です)
まず、以下のスクリプトエディタを選択して、もともと記載されているプログラムを削除します。
そして、コピーしたGASプログラムソースを貼り付けます。
ここまで作業が進むと以下のようになっているはずです。
ここまで出来たら、以下のとおりファイルを保存します。
5と6の作業は、[Ctrl] + [S]のショートカットキーを使うことをオススメ
プログラミングだけでなく、パソコン仕事においてはショートカットキーを使う方が早いです。
ぜひショートカットキーでの作業をオススメします。
7の作業は、[Ctrl] + [R]のショートカットキーを使うことをオススメ
ちなみにプログラムエディタの背景色が黒にする方法や、正確な操作を知りたい人がいるかもしれません。
その場合は、以下の動画をご覧いただくことをオススメします。
上記の動画では、GASを使い始めるまでの操作手順を動画で解説しています。
もし動画よりテキストのほうが得意な人は、以下の記事を参考にしていただくと良いです。
使用手順3|スプレッドシートの値変更でGASを自動実行
定期実行の設定方法を紹介します。
2. 「トリガーを追加」をクリック
3. 「イベントの種類を選択」のプルダウンリストをクリック
4. 「変更時」を選択
5. 「保存」をクリック
起動時
編集時
変更時 ← 文字列を読み込んで背景色を自動変更するならココ
フォーム送信時
使用手順4|確認作業
1. 状況(D列)の値を「完了」に変更
2. 自動で行が灰色になる
3. 状況(D列)の値を「作成中」に戻すと、元の色に戻る
「完了」に変更すると、以下のように自動で行の色が灰色に変更されます。
ちなみに、「完了」から「作成中」に戻すと、以下のように自動で行の色が元に戻ります。
このプログラムの解説は記事後半で行っています。
プログラミング学習でお金を使う前に考えてほしいこと
お金を支払ってプログラミングの教材を購入したり、スクールに通ったりするのを考えている人がいます。
このような人たちが考えていることは以下です。
・プログラミング教材は、お金をかけたほうが効率的なはず
・お金を払ったほうが、よりサポートをもらって勉強できる
・金額が高い商品ほど、自分を勉強するほうへ追い込める
しかし、教材やスクールで勉強をしても、プログラミングスキルを習得できる人とそうではない人に分かれてしまうのが現実です。
なぜなら、お金を払えばうまくいくわけではないからです。
実は、教材やスクールに通う以前にもっと大切なことがあるのです。
それは、プログラミングを学ぶ目的や目標です。
プログラミングを学ぶ目的が本心であるほど、習得できる可能性は高まります。
このことについて以下の記事で詳しく紹介しています。
上の記事の概要は以下です。
→ 明確な目的・強い欲求
●プログラミングが楽しくなるのは先のこと
→ 自分でツールを作れるようになるまでは、楽しくない
●スクールや本を選ぶ前に、自分の本心を確かめてみよう
→ 「将来役立ちそう」や「収入が上がりそう」はアブナイ
GASでスプレッドシートの背景色を変えるプログラムの解説
GASでスプレッドシートの背景書を変更するプログラムは以下です。
今回使用しているGASプログラムを以下に記載しているので、コピペして活用ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//プログラム0|プロシージャ名 function changecellcolor() { //プログラム1|スプレッドシートを取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName('シート1'); //プログラム2|シート1のデータを二次元配列として取得 var myRange = sheet.getDataRange().getValues(); //プログラム3|シート1を1行ずつ調べるD列(状況)に応じて背景色を変更 for(var i = 1; i < myRange.length; i++) {//2行目から開始するためにi=1 var status = myRange[i][3]; //D列が状況なので、[3]とする var range = sheet.getRange(i+1, 1, 1, myRange[0].length);//1行を取得する //プログラム4|シート1のD列(状況)が完了であれば背景色、そうではないなら色なし if(status=='完了'){ range.setBackground("#C0C0C0");//灰色 }else{ range.setBackground(null);//色なし } } } |
プログラム0|プロシージャ名
1 2 |
function changecellcolor() { } |
・プログラム名は「changecellcolor()」
・「()」に記載がないため引数はなし
プログラム1|スプレッドシートを取得
1 2 |
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName('シート1'); |
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
変数spreadsheetにアクティブな(現在開いている)スプレッドシートを設定
var sheet = spreadsheet.getSheetByName(‘シート1’);
変数sheetに「シート1」を設定
プログラム2|シート1のデータを二次元配列として取得
1 |
var myRange = sheet.getDataRange().getValues(); |
シート1のシート全体を二次元配列として取得
画像のとおり二次元配列を取得する。
プログラム3|シート1を1行ずつ調べるD列(状況)に応じて背景色を変更
1 2 3 4 |
for(var i = 1; i < myRange.length; i++) {//2行目から開始するためにi=1 var status = myRange[i][3]; //D列が状況なので、[3]とする var range = sheet.getRange(i+1, 1, 1, myRange[0].length);//1行を取得する } |
for(var i = 1; i < myRange.length; i++) {
}
i=1,2,・・・myRange.lengthまで加算しながら{ }内の処理を繰り返す
このfor文で、2行目から最終行まで処理するようにしています。
var status = myRange[i][3];
変数statusにD列の状況を設定する
以下の画像のとおり、D列は[3]となる
var range = sheet.getRange(i+1, 1, 1, myRange[0].length);
変数rangeに(i+1)行を取得
以下の画像のとおり、(i+1)行目を取得する。
プログラム4|シート1のD列(状況)が完了であれば背景色、そうではないなら色なし
1 2 3 4 5 |
if(status=='完了'){ range.setBackground("#C0C0C0");//灰色 }else{ range.setBackground(null);//色なし } |
if(status==’完了’){
}
変数statusが「完了」であれば { } 内のプログラムを実行
以下の画像のとおり、条件分岐を行う
range.setBackground(“#C0C0C0”);
rangeの範囲の背景色を灰色にする(rangeはプログラム3で設定)
else{
}
変数statusが「完了」でないなら { } 内のプログラムを実行
このelseは2つ上の「if(status==’完了’)」以外の場合を指しています。
したがって、「完了という文言でなければ{ }内のプログラムを実行」となります。
range.setBackground(null);
rangeの範囲の背景色を色なしにする(rangeはプログラム3で設定)
プログラムの説明は以上です。
Google Apps Script(GAS)について詳しく理解したいなら
Google Apps Script(GAS)を活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にGASを活用して効率化してきた作業は以下の動画で解説しています。
動画を見てみると、あなたの仕事にどのようにGASを応用すればいいのかイメージが浮かぶこともあると思います。
ぜひご覧ください。
GASの使い方・始め方を知らない人にはこちらの記事・動画がオススメ
この機会に、「GASを使い方を知りたい」と思った人もいるかもしれません。
そのように感じている人は、ぜひ以下の記事をご覧ください。
10分程度でGoogle Apps Scriptを使うためのスタート地点に立てるように解説をしています。
GASで出来ることを知らない人はこちらの記事・動画がオススメ
GASの始め方を理解する前に、やっておくことがあります。
それは、GASを使って何ができるのかを理解しておくことです。
なぜならGASの使い所を知らないと、仕事で使えないからです。
仕事でどう活用するかをイメージしないまま学んでも、効果的な学習ができません。
そこで、このサイトでもいくつか事例を使って、GASの実践方法を紹介しています。
興味がある人は以下の記事もご覧ください。
オススメの書籍を紹介
書籍に関しては、以下を読んで購入しました。
GASの全体感をつかむには良いと思います。
ただし、実際の勉強は書籍よりもウェブサイトを活用してきました。
はっきり言って、ウェブサイトだけでも十分に勉強できるほど数多くの情報がアップされています。
書籍で全体感をつかんだら、ウェブサイトでの学習に切り替えたほうが良いのが私の考えです。
Googleスプレッドシートを効率的に操作したいなら
この記事ではGASを活用した仕事の効率化の事例を紹介してきました。
しかしGoogleスプレッドシートの仕事を早くすることを目指すなら、GAS以外の方法もあります。
たとえば、以下の方法です。
上記の内容については、以下の動画で紹介しています。
ぜひGoogleスプレッドシートを上手に扱えるようになりたい人はご覧いただきたいです。