1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GAS_week2

Last updated at Posted at 2020-11-02

GAS_week2

スプレッドシート〜出力(実際にスプレッドシートにGASで記入)〜

はーい!こんにちは!
今回はGASとスプレッドシートを用いた情報社会に強い人材になるための第2歩!

前提
GAS_week1が完璧
これみてない人は先にやっちゃいましょう!

では早速やってきましょう!

引数って?

これ答えれる人は飛ばしちゃってください!
GASを使うに当たって関数と引数を使いこなせると一歩上へ行けます!

例えば,関数f(x)を定義します.

f(x) = x^2 + x + 1

この関数に対して,**f(2)**はなんでしょう?



答えは f(2) = 7 ですね!

これっていうのが,

f(2) = 2^2 + 2 + 1

って計算してるわけですよ!

このxを関数に対して引数って感覚!(変数のこと)

じゃあどんなのがあるのか?ってことで便利な関数を紹介!


 //数字→列名(アルファベット)
function wmap_column_convert(colmun_number) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var result = sheet.getRange(1, colmun_number);
  result = result.getA1Notation();
  result = result.replace(/\d/,'');
  return result;
}

これスプレッドシートにGAS組むときめっちゃ便利!
例えば

function main(){
  var example = wmap_column_convert(3);
  Logger.log(example);
}
function wmap_column_convert(colmun_number) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var result = sheet.getRange(1, colmun_number);
  result = result.getA1Notation();
  result = result.replace(/\d/,'');
  return result;
}

mainを実行すると,ログには**「C」**って出てきます!
これは,wmap_column_convert(3)とすることで,「wmap_column_convert」関数の中に記述している「column_number」に3が代入されて処理が行われます.
そしてこの関数は「main」のなかで行われているんです!
このように関数を別で定義して引数を指定することで便利な処理をやってくれるんです!

ちょっとここは難しかったかな??

では本題に戻りましょう!

今回は前回の続きということで下のコードに書き足していきましょう!

スクリーンショット 2020-11-02 14.30.29.png


function myfunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet = ss.getSheetByName('シート1');
  var range = sheet.getDataRange().getValues();
  
  Logger.log(range[1][1]+range[2][1]+range[3][1]+"です");
    
}

**では,「B5」に「です」と入力するコードを書きたいと思います!


function myfunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet = ss.getSheetByName('シート1');
  var range = sheet.getDataRange().getValues();
  
  Logger.log(range[1][1]+range[2][1]+range[3][1]+"です");
  //追記
  var message = "です";
  sheet.getRange(5, 2).setValue(message);
  //ここまで
    
}

これで「myfunction」を実行すると,

実行結果 ![スクリーンショット 2020-11-02 14.35.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/d0e87506-4e36-1729-5a2e-7f902ec54adc.png)
ログ ![スクリーンショット 2020-11-02 14.37.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550611/798927eb-10c1-082a-f953-a5786e479af0.png)

となります!

さて詳しい解説です!

sheet.getRange(行番号, 列番号).setValue(出力するもの);

という一文で,スプレッドシートへの記入が行われます!

*ここで,「range[行番号][列番号]」の時との注意点が!

range[行番号][列番号]の時は,配列の概念を使うため開始番号が0でした

しかし,

getRange(行番号, 列番号)の場合は,配列ではないため開始番号が1です

この点だけ注意していれば大丈夫!

さあ今回の応用すると色々と作業が自動化できちゃいます!

次回はこれを使った「for文」について書こうと思います!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?