GAS「ねこあつめ」の右端の列をクリアする「ねこあつめシリーズ:その8」

この記事では、GAS(Google Apps Script)を使って指定のセル範囲をクリアする方法が学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介


簡単に前回の復習をします。
下のスプレッドシートの図の「済」になっていない所を出力、スプレッドシートのD列を「済」にして、赤枠の範囲をログ出力します。

そのコードとログ出力結果、スプレッドシートです。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  for (let i = 2; i <= lastRow; i++) {

    //もしもD列の「済」が空白だったらA列の「なまえ」を出力してD列を「済」にする
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');

      //もしも最終行以上になったらセル範囲を出力する
      if (i >= lastRow) {
        console.log(ss.getRange(2, 4, lastRow - 1).getA1Notation());
      }
      break;
    }
  }
}

今回の内容に入る前に、ねこあつめ画像で癒されます。

さて、今回もこの様なスプレッドシートを用意します。
このスプレッドシートには、「ねこあつめ」の「おともだち」の情報が載っています。
右端の列は、一番下の「とらきち」のところだけ「済」が空欄になっています。

この状態で下記のコードを実行して、未入力の「とらきち」をログ出力した後、スプレッドシートの全ての「済」を消去します。

コードはこちらになります。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  for (let i = 2; i <= lastRow; i++) {

    //もしもD列の「済」が空白だったらA列の「なまえ」を出力してD列を「済」にする
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');

      //もしも最終行以上になったらセル範囲を消去する
      if (i >= lastRow) {
        ss.getRange(2, 4, lastRow - 1).clearContent();
      }
      break;
    }
  }
}

実行すると「とらきち」が出力され、

スプレッドシートのセルがクリアされました。

ここまでご精読ありがとうございます。

参考記事: 【初心者向けGAS】スプレッドシートのセル範囲をクリアするいくつかの方法 

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん          次行くにゃん→

GAS「ねこあつめ」の行の範囲を取得する「ねこあつめシリーズ:その7」

この記事では、GAS(Google Apps Script)でデータがある範囲をgetA1Notationを使って取得します。また、Forループの復習で、スプレッドシートのセルに「済」が入っていない分の処理を致します。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

まずは前回の復習をします。
whileループを使って、一つ一つ入力する様に制御致しました。
i=2(タイトル行を除いた最初の行)で、D2の所が「済」なっていたので、i=3にして、一つ下をチェックして・・・と最後までチェックして行きました。


最後の所が空欄になっていて、「なまえ(A列の所)」の「とらきち」を出力して、「済」にしました。

そのトレースのログです。

コードはこの様になりました。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

    
    //whileループでは、ループに入る前に必ず初期値を設定する。
    let i=2;   
  
    //whileループで、D列目に「済」などの文字が入っていたらiをインクリメントする
    while (ss.getRange(i, 4).getValue()) {
      console.log(`現在のiの値は【${i}】です。`);
      i++;   //iをインクリメントして次の行へ
      console.log(`D列にデータが入っているので、iの値を+1をして【${i}】になりました`);
      console.log('-----------------------------------');
    }

    //D列が空欄なので、A列「なまえ」のログ出力とD列を「済」にする
      console.log('<<ループを抜けた>>>');
      console.log(`iの値は【${i}】です。D列が空白なので【ループを抜けて】出力処理を行います。`);
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');

      //最終的なiの値
      console.log(`最終的なiの値:【${i}】`)
    
    }

さて、今回の内容に入る前に、ねこあつめ画像で癒されます。

今回はD列の、この範囲を取得します。

また、D列に「済」が入っていない「とらきち」の名前も、範囲と共に出力して「済」にします。

(行,列,範囲)の引数(括弧の文字の計算に必要となる材料)は、(2行目の4列目〜最終行の行数から1つ引いた分)になっています。

2目・・・1行目はタイトルのため
4目・・・右端の列
最終行から1を引く・・・タイトルの行の分を引く

では、入力の「済」が空白の「とらきち」の名前をログ出力して、スプレッドシートの入力を「済」にして、上の図の赤枠の範囲を「getA1Notation」を使ってログ出力するコードを掲載します。

コードはこちらです。

function myFunction7() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  for (let i = 2; i <= lastRow; i++) {

    //もしもD列の「済」が空白だったらA列の「なまえ」を出力してD列を「済」にする
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');

      //もしも最終行以上になったらセル範囲を消去する
      if (i >= lastRow) {
        console.log(ss.getRange(2, 4, lastRow - 1).getA1Notation());
      }
      break;
    }
  }
}

実行結果です。

セルの範囲が取り出せました。
スプレッドシートを確認します。

これで、「とらきち」が出力され、セル範囲を取得し、最後の「済」が入りました。

ここまでご精読ありがとうございました。

参考記事: 【初心者向けGAS】スプレッドシートのセル範囲を行数・列数を使って取得する 

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん       次行くにゃん→

GAS「ねこあつめ」ループに制御を加えて一つずつ出力する「ねこあつめシリーズ:その6」

この記事では、GAS(Google Apps Script)でForループを抜けるbreakや、whileループの使い方を学びます。ループに制御を加えて1つずつ出力して行きます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

まず、前回の復習をします。
下のスプレッドシートの右端D列が空欄になっている所のねこちゃんの名前(A列)
を出力して、D列の空欄を「済」にするコードを買いました。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  //ループで入力の列に何も入っていない猫ちゃんたちの名前を出力
  for (let i = 2; i <= lastRow; i++) {
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      //出力し終わったら「済」にする
      ss.getRange(i, 4).setValue('済');
    };
  }
}

A列(猫ちゃんの名前)を出力したログです。

スプレッドシートに戻ると、このように「済」になっています。

さて、今回の内容に入る前に、ねこあつめ画像で癒されます。

今回は、この様なスプレッドシートを用意します。
「なまえ」が「サビガー」のみ、入力が「済」になっていて、それ以外は空欄です。

今までは一番右の列で、「済」が入っていない空欄の「ねこともだち」のお名前を一度に一斉に出力していましたが、1つ1つの出力が出来る様にループに制御をかけて行きます。

まずは制御をしないで実行した場合のコードと実行結果です。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  //ループで入力の列に何も入っていない猫ちゃんたちの名前を出力
  for (let i = 2; i <= lastRow; i++) {
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');
    };
  }
}

スプレッドシートの切り替えると、この様に一度に「済」が入っています。

これを、一度ではなく一つ一つ出力出来るように、コードを改良します。
一旦スプレッドシートを実行前に戻します。

先ほどのコードの末尾に「break」を追加して、IF文の所でD列が空白になっている猫ちゃんの名前(A列)を1つ出力した直後にループを抜けます。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  for (let i = 2; i <= lastRow; i++) {
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');

      //ここにbreakを追記して、ループを抜ける
      break;

    };
  }
}

実行結果です。

「ヘキサにゃん」が出力され、1件処理できました。

これを続けると、

2件目の「みっけ」が「済」になりました。

また、breakを使わず、whileループを使う方法もあります。
D列にデータが入っている間は次の行に進み、空白になったらループを抜けてA列の「なまえ」を出力します。
この表の1行目はタイトルなので、2行目から4行目までは「済」が入っています。
2行目は「済」というデータが入っているから次へ→3行目→4行目と行を進めます。
5行目になるとD列が空白になるので、ループを抜けて出力します。

行を表す変数をiとした場合のトレースを行います。

i=2で2行目を見る

D列に「済」が入っているから、iに1を加えてi=3になる

i=3で3行目を見る

D列に「済」が入っているから、iに1を加えてi=4になる

i=4で4行目を見る

D列に「済」が入っているから、iに1を加えてi=5になる

i=5で5行目を見る

D列が空欄なので、whileループを抜けて出力処理を行う。
トレースのコードも追記して、ログ出力及びスプレッドシートの入力を「済」にしました。

実行して、ここまでのトレースのログを見てみます。

では、最後に実行後のスプレッドシートとコードを掲載します。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

    
    //whileループでは、ループに入る前に必ず初期値を設定する。
    let i=2;   
  
    //whileループで、D列目に「済」などの文字が入っていたらiをインクリメントする
    while (ss.getRange(i, 4).getValue()) {
      console.log(`現在のiの値は【${i}】です。`);
      i++;   //iをインクリメントして次の行へ
      console.log(`D列にデータが入っているので、iの値を+1をして【${i}】になりました`);
      console.log('-----------------------------------');
    }

    //D列が空欄なので、A列「なまえ」のログ出力とD列を「済」にする
      console.log('<<ループを抜けた>>>');
      console.log(`iの値は【${i}】です。D列が空白なので【ループを抜けて】出力処理を行います。`);
      console.log(ss.getRange(i, 1).getValue());
      ss.getRange(i, 4).setValue('済');

      //最終的なiの値
      console.log(`最終的なiの値:【${i}】`)
    
    }

Whileの注意点は
・初期値を書き忘れないこと(7行目のi=2)
・無限ループに気をつけること(12行めのi++)

これは、iが加算される行(12行目のi++)があるから処理が進んで空白があったらループを抜けます。
しかし、iが加算されなかったら再び同じ行を見ることになって、ループを抜けられなくなって無限ループになります。

なので、

「初期値を設定」
「ループの変数を加算」


この2つは非常に大事です。
ご精読、ありがとうございました。

参考記事:【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん              次行くにゃん→

GAS「ねこあつめ」出力したセルに処理済み「済」を出力する「ねこあつめシリーズ:その5」

この記事では、GAS(Google Apps Script)で、実行したら処理済みのセルに「済」と出力する方法を学びます。

とてもシンプルな内容で、対象者は「猫が好きなGAS入門者」です。「ねこあつめアプリ」を題材に記事を書いています。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

まずは前回のおさらいを致します。
下記のスプレッドシートで、1番右側の「入力」が「空欄」のセル、つまり「何か入っている」の先頭に「!」のNOTを付けて、「!何か入っている」で何も入っていないセルのねこちゃんの名前(A列)を出力しました。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  
  //ループで入力の列に何も入っていない猫ちゃんたちの名前を出力
  for(let i=2;i<=lastRow;i++){
    if(!ss.getRange(i,4).getValue()){
      console.log(ss.getRange(i,1).getValue());
    };    
  }
}

今回の内容に入る前にねこあつめ写真で癒されます(=^x^=)

今回は、下記のこのスプレッドシートには、1番右のセルの空欄になっている所の「なまえ(A列の赤枠)」をログに出力した後、「済」と入力します。
実行すると、D列の赤枠の所にも「済」が入るイメージです。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  let lastRow = ss.getLastRow();//最終行を取得

  //ループで入力の列に何も入っていない猫ちゃんたちの名前を出力
  for (let i = 2; i <= lastRow; i++) {
    if (!ss.getRange(i, 4).getValue()) {
      console.log(ss.getRange(i, 1).getValue());
      //出力し終わったら「済」にする
      ss.getRange(i, 4).setValue('済');
    };
  }
}

実行結果です。

今回処理したセルが処理済みになり、「TRUE」と入りました。

ご精読ありがとうございました。

参考サイト:【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん 次行くにゃんっ→

GAS「ねこあつめ」IF文で条件に該当するねこ名を出力する「ねこあつめシリーズ:その4」

この記事では、GAS(Google Apps Script)でForループの中でIF文を使って、ある条件に該当するセルの値を取得する方法を掲載しています。
また、その条件とは、「セルに値が入っていない空欄」なので、NOTという演算子を使う書き方を学べます。

とてもシンプルな内容で、対象者は「猫が好きなGAS入門者」です。「ねこあつめアプリ」を題材に記事を書いています。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

まず、前回の復習をします。


このようなスプレッドシートから、A列の「なまえ」で2行目の「へきさにゃん」〜5行目の「とらきち」までログに出力します。
出力結果とコードです。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  
  //ループでねこちゃん達の名前を出力
  for(let i=2;i<=lastRow;i++){
    console.log(ss.getRange(i,1).getValue());
  }
}

今回の内容に入る前に、「ねこあつめ」画像で癒されます(=^x^=)
このコは茶トラのヘキサにゃんです。

では、今回扱うスプレッドシートは、以下の様に用意いたしました。

一番右側の列「入力」の所に何も入っていない猫ちゃんの名前を出力します。
つまりこの例では、「ヘキサにゃん」と「とらきち」が出力されます。

Forループの中にIF文を書いていきます。
イメージは、こんな感じです。

「For
 「IF
 」

「」をブロッック( { } )に見立ててイメージすると分かりやすいかもしれません。

一番右の列が空白だったら、ということは、「セルの中身に何も入っていない」、つまり、言い換えると、
中身に文字が入っていることの否定」です。

この否定(NOT)は、先頭に「!」をつけて書きます。
いきなり論理演算NOTなんて出てくるとチョットびっくりしちゃいますよね。
ビックリマークなんて出てきたし。
そこで、懐かしのベン図を使って解説致します。
(ビックリマンも懐かしいな・・・。)

赤く塗っているところが「東京都民」です。

NOTを使うために「!」を使うと、東京都民では「ない」人が赤くなります。

「!東京都民」で例えば北海道とか沖縄が該当します。
この例では、「!なんか文字が入っている」→「空欄」を指定しています。

では、1番右の列に何も入っていない、つまり「!なんか入っている」場合に限り、猫ちゃんの名前を出力します。
7行目のIF文にご注目をお願いします。 

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  
  //ループで入力の列に何も入っていない猫ちゃんたちの名前を出力
  for(let i=2;i<=lastRow;i++){
    if(!ss.getRange(i,4).getValue()){
      console.log(ss.getRange(i,1).getValue());
    };    
  }
}

実行結果です。

これで、「ヘキサにゃん」と「とらきち」が出力されました(=^x^=)
ご精読ありがとにゃん(=^x^=)

参考記事:【初心者向けGAS】条件分岐をするif文の使い方の超基本

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん          次行くにゃっ→

GAS「ねこあつめ」Forループを使って猫たちの名前を取り出す「ねこあつめシリーズ:その3」

この記事では、GAS(Google Apps Script)でForループを使ってセルの値を取得する方法を掲載しています。

とてもシンプルな内容で、対象者は「猫が好きなGAS入門者」です。「ねこあつめアプリ」を題材に記事を書いています。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

まず、前回の復習を軽く行います。
このようなスプレッドシートで、セルA1からC3までの範囲を出力するコードを書きました。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  const mikke=ss.getRange('A1:C3').getValues(); //←ここをgetValue「s」と複数形に
  console.log(mikke);
}

今回の内容に入る前に、ねこあつめ画像で癒されます。

では、今回の内容に入ります。
スプレッドシートの「ねこあつめ」のおともだちに、新しいコ達を追加しました。

一番左にあるA列の最初の行はタイトルですが、その下は、

「2行目 ヘキサにゃん」
「3行目 みっけ」
「4行目 サビガー」
「5行目 とらきち」

となっています。
この2行目から5行目までの猫たちの名前をForループを使って取り出します。

最終行5行目は、今後新しいねこ仲間達を追加しても使えるように、最終行を、

lastRow=ss.getLastRow();

と書いて取得しています。
このスプレッドシートが5行なので「5」が求まります。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  console.log(lastRow);  //取得した行をログ表示
}

何かの処理をしたらすぐにログ出力をする癖を付けておくと、エラーに太刀打ち出来るねこさんに慣れるかもしれません。

では、いよいよループに入ります。

ループは

「初期値 ; どこまでおっきくするか ; 増分」

「初期値 ; どこまでちっちゃくするか ; 減り分」

などと書くので、この場合は、
「2;最後の行;1」
となり、
「2から始める:最後の行まで:1行ずつ増える」
と読み替えられれます。

この時行を、「2行目」、「3行目」、「4行目」、「5行目」と1行ずつ増やしていくのに使う変数に、慣習的に「i」などの変数を使います。

Aやbでもよくね、って思われる方もいらっしゃると思いますが、これは他の言語でも同じようにiなど使うので、これが出て来たら「ループなんだな」って押さえておくと宜しいかと思います。

では、コードを書いていきます。
(先程のlastRow=5のログは確認出来たので消しました。)

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  
  //ループでねこちゃん達の名前を出力
  for(let i=2;i<=lastRow;i++){
    console.log(ss.getRange(i,1).getValue());
  }
}

実行します。

無事に、猫たちの名前が取り出せました(=^x^=)

ご精読ありがとにゃん(=^x^=)

参考記事:【初心者向けGAS】for文を使ったスプレッドシートの繰り返しの超基本

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん 次行くにゃん→

GAS「ねこあつめ」でセルを選択して出力する「ねこあつめシリーズ:その2」

この記事では、GAS(Google Apps Script)でセルの値を取得する方法を掲載しています。

とてもシンプルな内容で、対象者は「猫が好きなGAS入門者」です。「ねこあつめアプリ」を題材に記事を書いています。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

簡易的ですが、「ねこあつめ」のキャラクター紹介の紹介をスプレッドシートで作りました。


このシートのA3のセル(みっけ)を出力してみます。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  const mikke=ss.getRange('A3').getValue();
  console.log(mikke);
}

1行目で、SpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。
2行目で、mikkeにセル「A3」の内容を入れています。
3行目で、ログ出力しています。

では、実行してみます。

この「’A3’」の所を、(3,1)としても同じ結果が得られます。
(行,列)の書き方になっているのでご注意を!
あと、この場合は「’ ‘」のシングルクォーテーションは使わないです。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  const mikke=ss.getRange(3,1).getValue();
  console.log(mikke);
}

セル(3,1)と書いていて、この書き方をするとこの記事以降の記事で使うループなどで便利です。

では、次に複数のセルを含む範囲で作ってみます。
この表のセルA1からC3まで取得してみます。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  const mikke=ss.getRange('A1:C3').getValue();
  console.log(mikke);
}

実行してみます。

「最初のセルのみ」しか読み込めませんでした。

今度は「セルA1:C3」の指定した範囲全てを読み込める様に致します。
4行目を「getValues」にしてみます。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  const mikke=ss.getRange('A1:C3').getValues(); //←ここをgetValue「s」と複数形に
  console.log(mikke);
}

実行すると・・・。

このように出力されました。

よく見ると、[[‘A1′,’B1′,’C1’],[‘A2′,’B2′,’C2’],[‘A3′,’B3′,’C3’]]と、
二次元配列になっています。

ご精読ありがとうございました。

参考記事:【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん          次行くにゃん♪→

GAS(Google Apps Script)「ねこあつめ」で文字出力と簡単な計算を作ってみた。「ねこあつめシリーズ:その1」

この記事を読む事によって、GASが本当に初めての方でも、文字出力と簡単な足し算の計算結果を表示させることが可能になります。
具体例として、「ねこあつめ」を例にしています。
これからGASの勉強を始める猫好きさん、ねこあつめアプリをお使いの方にはお楽しみ頂けると思います。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

コードを書く準備として、Googleドライブからスプレッドシートを追加します。
スプレッドシートは「新規」を押すと選択できます。

コードを書くエディタは、スプレッドシートのメニュー「拡張機能」から、Apps Scriptを選びます。

すると、このようなエディタが出てくるので、ここにコードを書いていきます。


まずは、「ねこあつめ」と表示するコードを早速書いていきます。

function myFunction() {
  console.log('ねこあつめ');
}

[Ctrl]+[S]で保存した後、[Ctrl]+[R] (Macでは[Command]+[R])で実行します。

実行結果です。

では、変数を使って、ここから計算をしてみます。
ねこあつめのねこたちの「せんとうりょく」の値を使います。

茶トラ猫の「ちゃとらさん」に、私は「ヘキサにゃん」という名前を付けました。
ヘキサにゃんの「せんとうりょく」は150です。

しまミケ猫さんに「しまみん」と名前を付けました。
「しまみん」の「せんとうりょく」は40です。
このヘキサにゃん(茶トラくん)としまみん(シマ三毛ちゃん)の戦闘力を足すと150+40=190になります。

function myFunction() {

  console.log('ねこあつめ');

  let chatora = 150, shimamike = 40;
  console.log(chatora + shimamike);
}

実行結果です。

これをもう少し、日本語の体裁を整えて書きます。
文字列を囲むときは、シングルクォーテーションではなく、「`」(@のキーをシフトで押す)で囲い、数字を文字列の中に埋め込むには、${数字}と入力します。

function myFunction() {

  console.log('ねこあつめ');

  let chatora = 150, shimamike = 40;
  let goukei=chatora+shimamike;

  console.log(`茶とらくん「${chatora}」 +しまみけちゃん「${shimamike}」の「せんとうりょく」の合計は「${goukei}」です。`);
}

実行結果です。

最後に、メッセージボックスの表示をします。
コードを追記します。

function myFunction() {

  console.log('ねこあつめ');

  let chatora = 150, shimamike = 40;
  let goukei=chatora+shimamike;

  console.log(`茶とらくん「${chatora}」 +しまみけちゃん「${shimamike}」の「せんとうりょく」の合計は「${goukei}」です。`);

  Browser.msgBox('ねこあつめ');

}

下記の処理で、「このアプリは確認されていません」と表示されてしまった場合は、こちらから解決可能です。

実行して、スプレッドシートに切り替えると、下記のようなボックスが表示されます。

「OK」でボックスを閉じます。

ご精読ありがとうございました。

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

                         次へ行くにゃん→

初めてのGAS(Google Apps Script)自作などのサンプル集、動画と書籍の紹介

このコーナーでは、Googleの様々なサービスを連携して開発出来るプログラミング言語、GAS(Google Apps Script グーグル アップス スクリプト)で、簡単な自作サンプルなどを掲載して、学習のアウトプットをしています。

自作の他に、GASの先人の方のWebで公開されている教材を、自分なりに初心者目線で作ってアウトプットしています。

自分の学習を通して、どなたかのお役に立てればと思い、ブログにまとめることに致しました。

また、オススメのサイトや動画や書籍なども紹介しております。
※ 私はサイトや動画、書籍を紹介しているだけのただの一視聴者であり、投稿者の方とは面識がございません。

いつも隣にITのお仕事」様のブログで自習して自分の環境で動かしたコードも掲載しています。

■ 使用教材 ■

・ウェブサイト
【保存版】初心者向け実務で使えるGoogle Apps Script完全マニュアル


・書籍
上記のサイトの方の記事がわかりやすいので、同じ方の書籍を購入しました。絶賛、ガリ勉中!!!(=^x^=)mm。。。

■ スプレッドシートとGASにまずは慣れる ■

ハンターハンターで学ぶ、「とりあえず、スプレッドシートとGASプログラミングで関数・グラフの基礎の基礎が分かるようなる」コースです。

episode1 「セル操作で入力と消去」

episode2 「文字入力と消去をボタン操作で行う」

episode3 「範囲を指定してまとめて入力(二次元配列は団地だ!)」

episode4 「ヒソカチェックで、IFとループを一気に学ぶ」

episode5 「指定したセル範囲のフォントを変える」

episode6 「指定したセル範囲に色を付ける」

episode7 「キャラの身長で演算(平均・条件に該当する数のカウント)」

episode8 (最終回)「キャラの身長をシンプルなグラフ化する」

■ 学習コンテンツpaizaラーニングのレベルアップ問題集をPythonとGASで解いてみたサンプル集■

PythonとGASでpaizaレベルアップ問題集を解いてみた集


■ スプレッドシートとGASに慣れてきたら、GASでChatworkにメッセージを送って見る ■

「ねこあつめその1」文字の表示と簡単な計算


「ねこあつめその2」セルを選択して出力する

「ねこあつめその3」Forループを使って猫たちの名前を取り出す


「ねこあつめその4」IF文で条件に該当するねこ名を出力する

「ねこあつめその5」出力したセルに処理済み「済」を出力する

「ねこあつめその6」ループに制御を加えて一つずつ出力する

「ねこあつめその7」の行の範囲を取得する

「ねこあつめその8」の右端の列をクリアする

「ねこあつめその9」Chatworkを使う前にIT用語学習

「ねこあつめその10」GASで「Chatwork」を使ってみる。


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

「ねこあつめその12」GASでChatworkに「トリガー」で時限式に送る

「ねこあつめシリーズその13」GASで「ねこあつめ」ChatworkのAPIトークンにプロパティストアを使って格納する

「ねこあつめシリーズその14」GASで「ねこあつめ」のデータをChatworkに送信にながら配列に慣れていく

「ねこあつめシリーズその15」Chatworkに送るメッセージを装飾する

「ねこあつめシリーズその16」ドキュメンテーションコメントを追加(最終回)

■ オオタニサン!! ■

スプレッドシートの二次元配列の取り扱いに慣れてきたら、メジャーリーガー、エンジェルスの二刀流、大谷翔平さんが高校時代にドラフト1位8球団から取得するのに使った、マンダラシートを作ってみる

大谷翔平の目標シート

◆フォーム作成の学習ノート◆

<ねこフォーム1>「ねこあつめ親睦会」のフォームを作ってみる

<ねこフォーム2>GASで作成したフォームを指定のフォルダに格納する

<ねこフォーム3>GASで作成したフォームに「ねこあつめ」の「おなまえ」と「あそんだグッズ」を追加する

<ねこフォーム4>ねこあつめフォームに「メールアドレス」を追加する

<ねこフォーム5>ねこあつめフォームに「ラジオボタン」を追加する

<ねこフォーム6>ねこあつめフォームに「チェックボックス」を追加する

<ねこフォーム7>ねこあつめフォームに「プルダウンリスト」を追加する

<ねこフォーム8>ねこあつめフォームに「スケールアイテム」と「パラグラフテキストアイテム」を追加する

◆ フォーム実践編 ◆

<ねこフォーム実践編1>就職セミナーアンケート


<ねこフォーム実践編2>プログラミング学習アンケート

<ねこフォーム実践編3>「就職氷河期世代&大人の発達障害」読者アンケート

■ Gmail ■

メール定型文を下書きへGo!!

■お役立ち動画の紹介■
(準備中)

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。

実務に役立つサンプルを作りながらGASを体感出来る本です。

一通り基礎が身についた上での中級レベルでありながら基礎文法や実務で実用的なツールのスクリプトが学べる本です。
GASを極めたい方にオススメです。

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

サイトマップはこちらから

■ 関連記事 ■

自己紹介
コロナ禍、アフターコロナの働き方(Googleが提供するツール)
スプレッドシート
フォーム
カレンダー
 
メインメニューに戻る


Gallery of Examples FBO Canvasを作ってみた!

この記事では、「Python Kivyプログラミング Pythonで作るマルチタッチアプリ」という本を頼りに、章の終わりごとに本と対応するKivy公式サイト(英語で泣きそう)のサンプルプログラムに挑戦しています。

上の本の、5章を終えた所までで類題として作れるアプリです。

Gallery of Examples FBO Canvas

このアプリは、

この記事の分からない英単語を調べながら読んで行きます。
ちなみに私の英語能力は英検4級(3級落ちた)です。

・instead …代わりに

・Buffer…一時保存用の記憶領域

・attach….添付

「Kivyというライブラリを使ってPythonでアプリを作って行く」に戻る

コードです。

all=(‘FboFloatLayout’,)

from kivy.graphics import Color,Rectangle,Canvas,ClearBuffers,ClearColor
from kivy.graphics.fbo import Fbo
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty,NumericProperty
from kivy.app import App
from kivy.core.window import Window
from kivy.animation import Animation
from kivy.factory import Factory

class FboFloatLayout(FloatLayout):
texture=ObjectProperty(None,allownone=True)
alpha=NumericProperty(1)

def init(self,kwargs):
self.canvas=Canvas()
with self.canvas:
self.fbo=Fbo(size=self.size)
self.fbo_color=Color(1,1,1,1)
self.fbo_rect=Rectangle()
with self.fbo: ClearColor(0,0,0,0)
ClearBuffers()

#全てのインストラクションを待ってキャンバスにテクスチャーを設置する self.texture=self.fbo.texture
super(FboFloatLayout,self).init(kwargs)
def add_widget(self,largs):

#キャンバスの代わりにグラフィックを添付するトリック canvas=self.canvas
self.canvas=self.fbo ret=super(FboFloatLayout,self).add_widget(largs)
self.canvas=canvas
return ret

def remove_widget(self,largs): canvas=self.canvas self.canvas=self.fbo super(FboFloatLayout,self).remove_widget(largs)
self.canvas=canvas

def on_size(self,instance,value):
self.fbo.size=value
self.texture=self.fbo.texture
self.fbo_rect.size=value

def on_pos(self,instance,value):
self.fbo_rect.pos=value

def on_texture(self,instance,value):
self.fbo_rect.texture=value

def on_alpha(self,instance,value):
self.fbo_color.rgba=(1,1,1,value)

class ScreenLayerApp(App):
def build(self):
f=FboFloatLayout()
b=Factory.Button(text=”FBO”,size_hint=(None,None))
f.add_widget(b)

def anim_btn(*args):
if b.pos[0]==0:
Animation(x=f.width-b.width).start(b)
else:
Animation(x=0).start(b)
b.bind(on_press=anim_btn)
return f

if name == “main”:
ScreenLayerApp().run()

ボタン「FBO」が左右に動くアニメーションが作れました。

これを上下に動くように遊んでみます。


class ScreenLayerApp(App):
def build(self):
f=FboFloatLayout()
b=Factory.Button(text=”FBO”,size_hint=(None,None))
f.add_widget(b)

#ここを、xをy、widthをheightに変える
def anim_btn(*args):
if b.pos[0]==0:
Animation(y=f.height-b.height).start(b)
else:
Animation(y=0).start(b)
b.bind(on_press=anim_btn)
return f

このように遊べました(=^x^=)

「Kivyというライブラリを使ってPythonでアプリを作って行く」に戻る

■ 関連記事 ■

Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について