Google Apps Script でセルを操作する基本的手順

この記事は自分用の覚書です。

■GAS (Google Apps Script) のオブジェクトモデル

Spreadsheet.App オブジェクト(『Googleスプレッドシート』というアプリケーション本体)

→ Spreadsheet オブジェクト (個々のファイル)
    ↓
     → Sheet オブジェクト(ファイルの中のシート)
    ↓
     → Range オブジェクト(シート上のセル)

■GAS でセルの取得(変更)するための基本的な手順

1.Googleスプレッドシートのファイルを取得(変数への代入)
2.1. で取得したファイルのなかのシートを取得
3.2. で取得したシート上にあるセルを取得
4.3. で取得したセルの内容(値)を取得(変更)

■セルを操作する基本(サンプル)
GAS では、変数の宣言と同時に、変数への値の代入が認められている。


function sample01() {
  //1. Googleスプレッドシートのファイルを取得(変数への代入)
  var target_file = SpreadsheetApp.getActiveSpreadsheet();

  //2. 1.で取得したファイルのなかのシートを取得
  var target_sheet = target_file.getActiveSheet();

  //3. 2.で取得したシート上にあるセルを取得
  var target_range = target_sheet.getRange("A1");

  //4. 3.で取得したセルの内容(値)を取得(変更)
  var cell_atai = target_range.getValue(); //値を入力するには setValue(値)

  Logger.log(cell_atai);
}


上記スクリプトは次の書き方をしても意味は同じ。

function sample02() {
  var target_file;
  var target_sheet;
  var target_range;
  var cell_atai

  //1. Googleスプレッドシートのファイルを取得
  target_file = SpreadsheetApp.getActiveSpreadsheet();

  //2. 1.で取得したファイルのなかのシートを取得
  target_sheet = target_file.getActiveSheet();

  //3. 2.で取得したシート上にあるセルを取得
  target_range = target_sheet.getRange("A1");

  //4. 3.で取得したセルの内容(値)を取得(変更)
  cell_atai = target_range.getValue();

  Logger.log(cell_atai);
}


・getSheetByName("シート名")
SpreadsheetクラスのgetSheetByName()メソッドを使うと、シート名を使ってシートを取得できる。

・getSheets()[0]
Spreadsheet.getSheets()メソッドでは、すべてのシートが配列として返される。
配列の1つ目の要素(添え字・インデックスの「0」)が、一番左のシートを表す。
配列は 0 から始まる。

・openById("ID")
SpreadsheetApp.openById()メソッドでは、シートのIDを指定してシートを取得する。
ID は、URL の https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxx/edit 中で xxxxxxxxxxxxxxxx の部分。

| | コメント (0) | トラックバック (0)

もっと優しくてもいいと思う。

ガールズちゃんねるの「婚活で晒した醜態」――婚活の場で辛い体験をしてしまった女性の投稿。

ネットのニュースで何となく見かけた。

「(慰めになるので)同様の体験をした人はいませんか」ということなのだけど、ずいぶんと酷い反応を返す人たちもいるもんだ。冷たい反応ばかりじゃないようだけど。

いわゆる "釣り" のネタなのか、本当なのかは別として、「辛かった」と吐露している投稿に対して、傷に塩を塗るような反応をしなくてよいだろうに。

そんなに冷たくしなければならない理由って何があるんだろう? 同じ返すなら、もっと暖かい反応を返してあげたらいいのに。

辛いって言ってんだからさ。

内容が気に入らないなら無視すればいい。書き手をさらに傷つけるようなコメントをしなければならない具体的な理由なんてないだろう。

世の中、もっと優しさがあってもいいんじゃないかなあ。

| | コメント (0) | トラックバック (0)

2018年の初ツバメ

今日(4月3日)、今年初のツバメを見た。

2017年のときは4月17日だった――と書いているけど、妻が言うにその2、3週間前から飛んでいたということだったから、時期としては昨年並みということか。

今年は妻といっしょに見た。
昨年と違って、妻も今日より前にツバメを見た記憶はないらしい。

新社会人の皆さんの門出と共にやってくるなんて――今年の新社会人の皆さん。新しい季節が始まるって感じがして、なんか嬉しくない?

| | コメント (0) | トラックバック (0)

Google Apps Script でワードのファイルをゴミ箱へ移動する。

この記事は自分用の覚書です。

T.N さん。

Google Apps Script で、Googleドライブ上の指定したフォルダ内にあるワードのファイル(拡張子 docx )をゴミ箱へ移動するコードです。
(拡張子 doc は対象にしていません。)

結果として、docx 以外のファイルがフォルダのなかに残ります。
ゴミ箱へ移動するだけなので、ワードのファイルは Goofle ドライブ上から完全には消えていません。


function Word_docx_sakujo_1(){
  //変数の宣言
  var Folder_ID;
  var Hozon_Folder;
  var All_Docx;
  var Word_File;

  Folder_ID = "ここに、ファイルが保存されているフォルダのフォルダIDを入れる。"; //フォルダによって変える。フォルダを開いて、 URLの  "…/folders/" 以降の部分がフォルダID。
  Hozon_Folder = DriveApp.getFolderById(Folder_ID);
  All_Docx =  Hozon_Folder.getFilesByType(MimeType.MICROSOFT_WORD);//ゴミ箱に移動するファイルをdocxに指定。

    while(All_Docx.hasNext()){
      Word_File =All_Docx.next();
      Word_File.setTrashed(true);
    }
}


Folder_ID = "ここに、ファイルが保存されているフォルダのフォルダIDを入れる。"; //フォルダによって変える。フォルダを開いて、 URLの  "…/folders/" 以降の部分がフォルダID。
Hozon_Folder = DriveApp.getFolderById(Folder_ID);

のところは、

Hozon_Folder = DriveApp.getFolderById("ここに、フォルダのフォルダIDを入れる");

のように、フォルダIDを直に引数にして1行で書いてもよかったのですが、場合によって変更することも考えると、少しでも編集しやすくなるかなと思って変数 Folder_ID に代入するようにしてみました。

あと、pptx をゴミ箱に移動したいとなったら、MimeType.MICROSOFT_WORD を MimeType.MICROSOFT_POWERPOINT に書き換えます。xlsx なら、MimeType.MICROSOFT_EXCEL になります

他の MimeType については、Google Apps Script の REFFERENCE を参照してください。
Enum MimeType

| | コメント (0) | トラックバック (0)

2018年の初ウグイス

さっき(3月23日)ウグイスが鳴いた。まだまだ下手だったけど。

昨年の初ウグイスは3月25日だった。
昨年の記事を見てみたら、同じころにやっぱり寒かったようだ。ぜんぜん記憶にないけど。

今年も一昨日と昨日で寒かったもんなあ。

昨年は「せっかく鳴いたのに……」と奴らがへそを曲げなければいい――と心配したけど、今年は「一番寒いときをちょっと外してみました」とニヤッとしているかもしれない。

| | コメント (0) | トラックバック (0)

«いじめていい理由なんてありません。