GAS_week1

#GAS_week1

##スプレッドシート〜入力と出力〜
はーい！こんにちは！
今回はGASとスプレッドシートを用いた情報社会に強い人材になるための第1歩！

では早速スプレッドシートを開いてみよう！

![スクリーンショット 2020-10-30 23.29.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/0d6d0852-11b3-27f4-0fe5-5d74df95df5d.png)

上のような画面が出てきたかな？

ここで一つ覚えておこう！

**「スプレッドシートキー」**

これは，スプレッドシートのURL
「https://docs.google.com/spreadsheets/d/OOOO/edit#gid=0」
のOOOOの部分のことです！
d/　と　/edit　の間の部分がスプレッドシートキーなんだと覚えておきましょう！

続いて実際にGASを使ってみましょう！
下の画像のように，「ツール」→「<>スクリプトエディタ」の順で開きます！
![スクリーンショット 2020-10-30 23.34.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/c7ee17dd-55fd-c900-0727-a0e2f404e593.png)

そうすると，このような画面になります！
↓　↓　↓　↓　↓　↓　↓　↓　↓　↓
![スクリーンショット 2020-10-30 23.36.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/ddd84654-650f-8347-6539-2a89d02910cb.png)

ここでスクリプトを書いていくわけですよ！

今回は初回ということで，スプレッドシートに何か文字を出力してみましょう！
（難易度☆☆☆☆☆：超簡単）

まずは下のコードをコピペ！w

<details><summary>サンプルコード</summary><div>

```js

function fukuokamarket() {
  //var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var ss = SpreadsheetApp.openById("スプレッドシートキー");
  var sheet = ss.getSheetByName('シート名');
  var range = sheet.getDataRange().getValues(); 
}

```

</div></details>

簡単にまずはGAS（JavaScript）について解説！

```js

function 関数名（*引数）{

}
```
*引数はない場合もある（初回ということで気にしなくていいよ）

この関数を「トリガー（後ほど解説）」という物を使って，OOな時に実行！という流れとなります
例えば，googleフォームが送信時にSlackに送信する関数を実行 etc...

そして先ほどのサンプルコードの解説といきましょう！

```js

  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var ss = SpreadsheetApp.openById("スプレッドシートキー");
```
この部分で行っていることは，どのスプレッドシートに対してのコードなのか明らかにするものです！
1行目と2行目は同じことをやっています！どちらかを使いましょう！
>1行目：スプレッドシートからスクリプトエディタを開いて直接そのスプレッドシートを参照にする場合
2行目：スクリプトエディタに紐付いていない別のスプレッドシートを参照にする場合


<details><summary>ちょっと待った！「var」ってなんやという人はこちら！</summary>
この言語では，<div>

```js
var 変数名 = 代入するもの;
```
</div>
というコードです． 書き方が違うだけで，他の言語と一緒ですね！
</details>

次に

```js

  var sheet = ss.getSheetByName('シート名');
```

これは先ほど参照したスプレッドシートの「シート名」を書くことによって，任意のシートを参照します！

![スクリーンショット 2020-10-30 23.55.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/d13cfc3d-8c53-d4e4-e865-3a0b8076bbe3.png)

「シート3」を参照したい場合は，

```js

  var sheet = ss.getSheetByName('シート3');
```

簡単でしょ！

そして

```js

   var range = sheet.getDataRange().getValues();
```

これは魔法のコードとでも認識しといてください！

<details><summary>そして2次元配列という行列の考え方がわからない方は先にこちら！</summary>
![スクリーンショット 2020-10-31 0.02.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/97655bf4-f73e-0b82-8eb6-6f9fa68d62d6.png)
これみてググったらいけるはず！
</details>

ここまで来るとめっちゃ楽！

例えば，「A2」を取りだしたいとすると

```js

//range[行番号][列番号];
var a2 = range[0][1];
```
ってだけなんです！

***
じゃあ実際にdemoを！
の前に便利なものもう一つ紹介！

```js

Logger.log(ログで確認したいもの);
```
これめっちゃ便利なので覚えるように！

関数実行→「command」+「Enter」でログ見れるよ！

ではやるね！

<details><summary>スプレッドシート</summary>
![スクリーンショット 2020-10-31 0.14.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/aac5f06d-2a72-2300-8f24-0078b7fe1ad6.png)
</details>

<details><summary>コード</summary>
![スクリーンショット 2020-11-02 13.22.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/1a6eec73-6886-5015-1c02-284b7133e0e8.png)
</details>

<details><summary>ログ</summary>
![スクリーンショット 2020-10-31 0.14.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/bd04891a-ee75-9779-e554-6fc5f6f12f99.png)
</details>

最初関数実行したときは認証を行なってあげないといけません！
これはググってください！

余裕ですね！

今回はここまで！
次回もお楽しみに！