オオタニサン!!大谷翔平の目標シート(マンダラチャート)をスプレッドシートにGASでマクロを使って作ってみた

GAS(Google App Script)で、二刀流で有名な、メジャーリーガー大谷翔平の目標シートが自動で作れるように、枠や色をスプレッドシートにマクロを組んでみました。

←GAS自作サンプルへ戻る

オオタニサンこと、大谷翔平選手が高校時代に作成したマンダラチャートは規則性があるので、マクロの練習に打って付けだと思います。

こんな感じに仕上がりました。

関数は2つ使っています。

1つ目、枠線を囲う。

上のシートを見ると分かるように、1行目の1列目、4列目、7列目と、3で割って1余る行と列を起点として太枠が描かれています。

2つ目、色を付ける

中央の太枠のところを薄黄色に、ど真ん中をオレンジに、その他の各太枠ぶの真ん中を濃い黄色に塗り潰しています。

コピペしたい方はこちらへ。

参考文献

←GAS自作サンプルへ戻る

episode8(最終回) GASの「キャラの身長をシンプルなグラフ化する」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode7)の復習をします。

ハンター試験ルーキーのキャラクターのセルの背景や文字の色を設定しました。

そのコードと結果です。

今までのコードです。

今回は、「名前」と「身長」のグラフを作ります。

名前の範囲をセルA1から4行分取得して、cell1とします。

const cell1=sheet.getRange(1,1,4);

名前の範囲をセルD1から4行分取得して、cell2とします。

const cell2=sheet.getRange(1,4,4);

以下、「chart」というグラフを作る処理になります。

ここまでで、上記のcell1と、cell2を追加します。

var chart =sheet.newChart()
.asColumnChart()
.addRange(cell1)
.addRange(cell2)

セルA10から縦横に10ドット下がった位置に配置し、高さ300、幅400のグラフを指定します。

.setPosition(10,1,10,10)
.setOption('height',300)
.setOption('width',400)
.build();
sheet.insertChart(chart);

ここまでのコードです。

今までのコードです。

それでは、マクロを実行します。

スプレッドシートに切り替えて、ツール→マクロ→インポートで指定のマクロをインポートします。

この例ですと、「myGraph」をインポートします。

再びツール→マクロから「myGraph」を選んで実行します。

グラフが表示されました。

お疲れ様でした。
入門講座はここで最後になります。
最終回までご覧いただき、ありがとうございました(=^x^=)mm

←episode7

←GAS自作サンプルへ戻る

episode7 GASの「キャラの身長で演算(平均・条件に該当する数のカウント)」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode6)の復習をします。

ハンター試験ルーキーのキャラクターのセルの背景や文字の色を設定しました。

そのコードと結果です。

今までのコードです。

今回は、一番右のセルをキャラクターの身長にして、平均を求めてみたいと思います。

平均を求める処理では、表の少し下のセルA6に「平均」と入力し、その右隣のB6に平均身長が求まるようにします。

sheet.getRange(‘A6’).setValue(‘平均’);
sheet.getRange(‘B6’).setFormula(‘=AVERAGE(D1:D4)’);

条件に当てはまる人数を数える処理では、170cm以上のキャラの人数を数える処理にしました。
平均身長の下のセルA7に「170cm以上」、その右のセルB7に条件に当てはまる人数を求めます。

sheet.getRange(‘A7’).setValue(‘170cm以上’);
sheet.getRange(‘B7’).setFormula(‘=COUNTIF(D1:D4,”>=170″)’);

ここまでのコードです。

今までのコードです。

それでは、マクロを実行します。

スプレッドシートに切り替えて、ツール→マクロ→インポートで指定のマクロをインポートします。

この例ですと、「myCulc」をインポートします。

再びツール→マクロから「myCulc」を選んで実行します。

計算結果が表示されました。

←episode6               episode8(最終回)→

←GAS自作サンプルへ戻る

episode6 GASの「指定したセル範囲に色を付ける」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode5)の復習をします。

ハンター試験ルーキーのキャラクターのフォントを大きくしたり、文字を太くしたりしました。

そのコードと結果です。

今までのコードです。

今回は、この表に色を付けます。
イメージとしては、厨二病っぽい感じにしたいと思います。

各キャラクターの名前(列A)と念(列B)を黒背景に白文字に、
ヒソカチェックの列(列C)は、紫にします。

列ABの4行分をcellDATA、列CをcellHISOKAという名前にします。

//列ABの色設定
let cellDATA=sheet.getRange(1,1,4,2);

セルA1から4行2列をcellDATAという名前に設定しています。

cellDATA.setBackground(‘black’);

背景色を黒にしています。

cellDATA.setFontColor(‘white’);

文字の色を白にしています。

//列Cの色設定
let cellHISOKA=sheet.getRange(1,3,4);

セルC1から4行をcellHISOKAという名前にしています。

cellHISOKA.setBackground(‘#eeddee’);

白がFFFFFF、黒が000000で、最初の2桁が赤、次が緑、最後が青です。

このコードでは、赤と青を強めにしていて、薄い紫になります。

ここまでのコードです。

今までのコードです。

それでは、マクロを実行します。

スプレッドシートに切り替えて、ツール→マクロ→インポートで指定のマクロをインポートします。

この例ですと、「myColor」をインポートします。

再びツール→マクロから「myColor」を選んで実行します。

厨二病っぽい表が出来ました。

←episode5               episode7→

←GAS自作サンプルへ戻る

episode5 GASの「指定したセル範囲のフォントを変える」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode4)の復習をします。

IF文とForループを使って、各キャラクターの念がヒソカと同じ「変化系」か、それ以外かで分岐しました。

今回は、この表のフォントを変えます。
12ptと少し大きいフォントにして、名前の所を太字にします。

ハンター試験ルーキーのデータが掲載されている範囲は、セルA1からC4まであります。

この範囲の文字の大きさを12ptにします。

範囲に「cellROOKIE(ルーキー)」と名前を付けて、大きさを変える範囲を確保します。

let cellROOKIE=sheet.getRange(1,1,4,3);

(1,1,4,3)は、セルA1(1,1)から4行、3列分の範囲という意味です。

この範囲の設定は下記のコードです。

cellROOKIE.setFontSize(12);

次に、名前を太字にするために、名前の範囲を用意します。

let cellNAME=sheet.getRange(1,1,4,1);

(1,1,4,1)は、セルA1(1,1)から4行、1列分の範囲という意味です。
つまり、A列です。

次に、セルを太字にするコードを書きます。

cellNAME.setFontWeight(‘bold’);

ここまでのコードです。

今までのコードです。

それでは、マクロを実行します。

スプレッドシートに切り替えて、ツール→マクロ→インポートで指定のマクロをインポートします。

この例ですと、「myFont」をインポートします。

再びツール→マクロから「myFont」を選んで実行します。

←episode4               episode6→

←GAS自作サンプルへ戻る

episode4 GASの「ヒソカチェックで、IFとループを一気に学ぶ」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode3)の復習をします。

・セルA1からB4にキャラクター名を入力する関数と消去する関数を作り、それぞれをボタンに登録しました。

今回はIF文を使って、ゴンからレオリオのキャラの念がヒソカと同じ変化系かどうか調べます。

ゴンは「強化系」なので「変化系」とは異なる為、条件が当てはまらないelseへと分岐します。

念が入力されているセルA2は(1,2)と洗わせます。

Elseでは、「XXX」と表記されます。

次に、「キルア」を調べます。

キルアは「変化系」なので、「ヒソカ」と同じという条件が当てはまり「ヒソカと一緒」と表示されます。

次に、「クラピカ」を調べます。

クラピカは「具現化系」なので、「変化系」とは異なる為、条件が当てはまらないelseへと分岐します。

最後に、「レオリオ」を調べます。

レオリオは「放出系」なので、「変化系」とは異なる為、条件が当てはまらないelseへと分岐します。

コードをいちいち変えるの面倒なので、Forによるループを使います。

実は、これまでで、ループのトレースができちゃっていました。

追加としては、

ゴン・・・i=1
キルア・・・i=2
クラピカ・・・i=3
レオリオ・・・i=4

と、変数が出てくるぐらいです。

なぜ「i」なのか、それは、ループで慣習的に使う変数として、「i、j、k」がよく使われるからです。このことについては、「なぜ、新人潰しのトンパさんは、トンパさんという名前なのか」と突き詰めてしまうことのようなものなので、ループではiとか使うんだな、程度で大丈夫です。

また、メンバーは4人なので、その人数を調べるために、「LastRow」(最後の行)を調べます。

以上を踏まえてコードを書くと、こうなります。

コードのまとめと結果です。

←episode3               episode5→

←GAS自作サンプルへ戻る

episode3 GASの「範囲を指定してまとめて入力(二次元配列は団地だ!)」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode2)の復習をします。

・セルA1に「ハンターハンター」と入力する関数と消去する関数を作り、それぞれをボタンに登録する。

ここから、いよいよキャラクターの名前を登録していきます。

登録するデータは、

「「ゴン」、「強化系」」、
「キルア」、「変化系」」、
「クラピカ」、「具現化系」、
「レオリオ」、「放出系」」

です。

スプレッドシートは行列の二次元配列なので二次元配列を使って入力します。
二次元配列とか配列って難しそうですが、イメージは「団地(マンションでも)」です。

1階・・・ゴンのデータ(101号室に「ゴンの名前」 102号室に「ゴンの念系統」)
2階・・・キルアのデータ(201号室に「キルアの名前」 202号室に「キルアの念系統」)

というふうに「団地」と捉えると、操作しやすくなるのかも知れません。

以上を踏まえてスクリプトを書いていきます。

消去ボタンで消せる範囲を今回はシート全部にしました。

[Ctrl]+[R]で実行すると

このように表示され、シートでは入力されています。

「入力」「消去」ボタンも機能しています。

←episode2               episode4→

←GAS自作サンプルへ戻る

episode2 GASの「文字入力と消去をボタン操作で行う」(Hunter×Hunterで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

前回(episode1)の復習をします。

・セルA1に「ハンターハンター」と入力する

・セルA1の内容を実行ログに出力

・セルA1の内容を消去する

以上を関数に分けます。

いきなり「関数」なんて出てくると難しそうですが、

入力と表示」を「ヤマダさんのお家」、
文字の消去」を「サトウさんのお家」、両家(両方)で使う、スプレッドシートから現在のシートを選択する共通の処理を「ゴミ捨て場」というイメージを持って読み進めて下さい。

ゴミ捨て場→「共通:現在のシートを指定する」・・・グローバル関数(共通領域)
ヤマダ家→「入出力:セルA1に「ハンターハンター」と入力して実行ログに表示する」・・・mySet関数
サトウ家→「消去:セルA1に入力された内容を消去する」・・・myClear関数

ヤマダさんは、ヤマダさんの家と共通のゴミ捨て場は使えるけれど、サトウさんの家のものは使えない、
サトウの立場ではその逆が言える、これが関数のイメージです。

このようにスクリプトを作成しました。

スプレッドシートに「入力」と「消去」というボタンを2つ作って、そのボタンを右クリックし、右上角の「てんてん」をクリックして、スクリプトを割り当てます。

ボタンの複製方法はこちらのサイトが分かりやすかったです。
ポイントは、「新たに図形描画画面を開く」です。

「入力」を実行します。

←episode1               episode3→

←GAS自作サンプルへ戻る

episode1 GASの「セル操作で入力と消去」(ハンター×ハンターで覚えるGoogle App Script)

GAS(Google App Script)をアニメ、ハンターハンターを通して入門の入門から学べる記事を掲載することになりました。
ふつつか者ですが、よろしくお願いします。

←GAS自作サンプルへ戻る

GASは環境設定不要ですぐ始められますが、

・Googleアカウント
・「マイドライブ」から「新規」でスプレッドシートを追加

・スプレッドシートの「ツール」→スクリプトエディタ

この3点の準備は必要です。

準備が整ったところで。

まず最初に、スプレッドシートのセルA1に「ハンターハンター」と入力するスクリプトを書いてみます。(「こんにちは」でも、好きな言葉でも、何かお好きな文字を入れてみましょう。)

getRange(‘セル番地’)でセルを指定して、setValue(‘入力する値’)で指定したセルに値を入力します。

こんな感じに書けました。
さて、
[Ctrl]+[S]で保存します。

Macの方は、「Command」と読み替えて下さい。

[Ctrl]+[R]で実行しようとすると・・・。

「承認が必要です」とメッセージが出るので、

「権限を確認」で、自分のアカウントを選ぶと、

なぬ!!

大丈夫。

「詳細」をクリックして。

「安全ではないページ」に移動して。

パソコンが爆発とか無いので、大丈夫です(=^x^=)

「許可」を押します。

実行ログ

で完了されたことが分かり、

で、入力されていました。

次に、セルA1に入力された「ハンターハンター」の文字を、実行ログに出力してみます。

//ここを追加してセルA1の内容を表示する
console.log(sheet.getRange(‘A1’).getValue());

を追加します。

最後に、これを消します。

setValue(‘入力する値’)のところを、clear()と書き換えます。

実行すると・・・

無事に消えていました。

←GAS自作サンプルへ戻る     episode2→

GASで「ねこあつめ」を「Chatwork」に送る(=^x^=)mm

この記事では、GAS(Google APP Script)で「ねこあつめ」をChatworkに送信します。
お世話になった記事は、

【初心者向けGAS】Google Apps Scriptで別の関数を呼び出すfunctionの書き方
です。

←GAS自作サンプルへ戻る

↑「サビガー(左)」と「ヘキサにゃん(右)」

プログラムの流れについては、

「ねこあつめのメッセージを取得するプログラム(メイン)」から、「Chatworkに送信する関数」に「送れ、と指示出しする」

という流れになります。

「ねこあつめ」のメッセージを「body」という変数に格納し、Chatworkに送信する関数「sendMessage」に「body」を送り込むイメージです。

メインから「sendMessage(body)」として呼び出して「これを送ってくれ」というメッセージを送り込みます。

関数のイメージはなかなか掴みいにくいので、以下のように置き換えてみました。

例えば私がアマゾンで、DVD(上記のbodyをDVDに置き換えると、トレース(追跡)しやすくなるかもっ!)を買ったとします。

プログラム実行開始・・・私がアマゾンに「DVDをくれ!」とポチる

メイン関数が呼ばれる・・・アマゾンが注文を受ける

チャットワークに送信する関数が呼ばれる・・・アマゾンから宅配業者へとDVDが渡る

チャットワークに「ねこあつめ」が出力される・・・DVDが私の手元に届く

ざっくりですが、これがプログラムをトレースして行った時の流れです。

以上を踏まえてプログラムを下記のように修正しました。

コメントを参考に、頭の中でトレースしてイメージを掴みました。

では、「ねこあつめ」の名前をChatworkに送ってみます。

スプレッドシートの右端の列は何も入っていません。

実行すると、Chatworkにメッセージ「ヘキサにゃん」が送られました。

<4>

スプレッドシートは「ヘキサにゃん」のところに、処理済みの「TRUE」が入っています。

他の猫ちゃんたちもChatworkに送ってみます。

無事に送れました。

これでは、「Chatwork」ではなく、「Catwork」ですね(=^x^=)mm

←GAS自作サンプルへ戻る