【GAS入門】感覚で分かる!第2回初めての Google Apps Script
どうも、たべみです。
前回に引き続き、GASの入門コースです。
入門段階では、まずGASを書く上で重要な考え方を頭に入れます。
その考え方とは、以下の3ステップで自動化を行うということでした。
- シートの値を取る
- 値を編集する
- シートに値を戻す
そして今回は、2番目について解説していきます。
前回の記事はコチラ
tabemi.hatenablog.com
1.値を編集するために
では、全体の流れの2番目の「値を編集する」点についてご説明します。
1-2.前提
値を編集するには、プログラミングの知識が必要です!(オオウ)
逆に言えば、値を編集する以外はコピペで行けます。
そしてGASにおいて「値の編集」は2次元配列の操作を意味します。
つまり、GAS入門における必要知識は、「2次元配列の操作」です!
1-3.スプレッドシートにあいうえお表を書く
前回、スプレッドシートになんの数字も文字も入れていなかったので、画像のように「シート1」にあいうえお表を作成してみてください。
全部書くのは大変なので、「な行」までで大丈夫です。
1-4.2次元配列の操作
では、2次元配列の操作とはどのようなものでしょうか。
前回のソースコードをこのように記述してみてください。
function myFunction() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const values = sheet.getDataRange().getValues(); console.log(values); console.log(values[1][3]); console.log(values[1]); console.log(values[3][4]); }
前回までの復習ですが、
values にシートの値がすべて入っています。
ここから新しい知識です。
console.log ( ?? ); でその中身を見ることができます。
console.log(values); はvaluesの中身を見ることができるプログラムとなります。
1-5.プログラムを実行する
では、実際に、console.log( ?? ); の中身を見るためコードを実行します。
※中身を見るためにはコードを実行する必要があります。
先ほどコードをコピペしたエディタ画面の上部に注目してみましょう。再生ボタンのようなアイコンがあるかと思います。押してみましょう。
すると、、ウィンドウが出てきますね。。
これの処理方法は以下の記事にまとめてあります。とはいっても30秒ほどで完了するので気楽にいきましょう!!
選択肢にはすべてYESを選ぶという気持ちでOKですよ。
tabemi.hatenablog.com
上の承認作業終了後、黄色く「実行完了」が出ていればOKです!
でない!という方、もう一度実行ボタンを押してみましょう。
2.値の様子を見る
これで、コードの実行ができました。
2-1.console.log() の行方
では、「実行完了」のウィンドウをよく見てみましょう。
黄色い枠の間に4行あります。
これはソースコードの console.log() の数と同じです!
console.log(); はこのウィンドウに表示されるのです。
そしてウィンドウに表示されたものをログといいます!
2-2.ログとプログラムを見比べる
では、1つ目のログに注目してみましょう。
//ちなみに半角スラッシュで、ソースコード上にプログラムに関係のない文字を書くことができます〇
console.log(values);
valuesの中には、シートの値のすべてが入っているのでした。
そして実際に1つ目のログにはシート上の値がすべて表示されています!
確認してみましょう!
ログ上に括弧が付いていますが、あまり気にせず行きましょう😊
2-3.対応関係を見極める
では、ほかの3つのログはどのように表示されていますか?
values の値の中身と そのほかの console.log(); の中身を見比べてみましょう。
console.log(values); console.log(values[1][3]); console.log(values[1]); console.log(values[3][4]); //ログの結果 // 2次元配列のvalues の中身 //[ [ 'あ行', 'か行', 'さ行', 'た行', 'な行' ], // [ 'あ', 'か', 'さ', 'た', 'な' ], // [ 'い', 'き', 'し', 'ち', 'に' ], // [ 'う', 'く', 'す', 'つ', 'ぬ' ], // [ 'え', 'け', 'せ', 'て', 'ね' ], // [ 'お', 'こ', 'そ', 'と', 'の' ] ] // values[1][3] // た // values[1] // [ 'あ', 'か', 'さ', 'た', 'な' ] // values[3][4] // ぬ
法則を見出してみましょう。
values[1][3] は た が出力される。
values[1] は [ 'あ', 'か', 'さ', 'た', 'な' ] が出力される。
values の2行目、4個目は た です。
values の2行目は、あ か さ た な です。
values[3][4] は ぬ が出力される。
さらに、
values の4行目、E列は ぬ です。
値は、
vlues[ valuesの行数+1][ values の列位置+1]
で取り出せるということです。
ゼロから数えて何行目の何列目にあるかを、values[?][?]で表せばよいのです!
さらに「行全体」は values[?] で表すことができます。
文字で書くとややこしいのでビジュアルで理解しましょう。
console.log(values); //表にすると分かりやすいかもしれません。 // 2次元配列のvalues の中身 // 0列目, 1列目, 2列目, 3列目, 4列目 // 0行目 [ [ 'あ行', 'か行', 'さ行', 'た行', 'な行' ], // 1行目 [ 'あ', 'か', 'さ', 'た', 'な' ], // 2行目 [ 'い', 'き', 'し', 'ち', 'に' ], // 3行目 [ 'う', 'く', 'す', 'つ', 'ぬ' ], // 4行目 [ 'え', 'け', 'せ', 'て', 'ね' ], // 5行目 [ 'お', 'こ', 'そ', 'と', 'の' ] ] //0行目の3列目 // values[0][3] //1行目 // values[1]
values | 0列目 | 1列目 | 2列目 | 3列目 | 4列目 |
0行目 | あ行 | か行 | さ行 | た行 | な行 |
1行目 | あ | か | さ | た | な |
2行目 | い | き | し | ち | に |
3行目 | う | く | す | つ | ぬ |
4行目 | え | け | せ | て | ね |
5行目 | お | こ | そ | と | の |
3行目の2列目は
values[3][2]
で表される。
2-4.2次元配列の操作とは
それでは、話を2次元配列に戻します。
2次元配列の操作とは、これまで見てきた values[?][?] をもとに理解していきます。
2次元配列である values は、values[?][?]で特定の位置にアクセスができる
これが今回のもっとも重要な点です。
3.まとめ
「シートを編集とは2次元配列 values を操作すること」です。
今回分かったことは、
- valuesは2次元配列という形で値を持っている
- console.log(??); で値の中身を見ることができる。
- values[?][?] で値の特定の場所を意味する
- 0から数えて何行目の何列目にあるかを、values[?][?]で表せる
つまり2次元配列 values を操作するには values[?][?] を駆使する ということです!
さまざまシートの値を変更・[]の中の数字を変更して、確かめてみてください!
基本的な考え方
- シートの値を取る
- 値を編集する
- シートに値を戻す
↓
同義
↓
- シートから2次元配列で値を取得する
- 2次元配列を操作する
- 2次元配列をシートに戻す
最後に
少し専門的なお話になってきました。
しかし、すべての用語や使い方を覚える必要はないです。「そんなものかー」と悠長に構えることが大事です〇
不明点、相談等あれば、コメントください!!
少しでもお役に立てればと思います。
次回は、実際に2次元配列となったシートの値 values を編集していきます!
ではでは~