リキッドジャンパー GoogleAppsScript,javascript [Google Apps Script]Googleスプレッドシートをスクリプト操作してみた[初心者]

[Google Apps Script]Googleスプレッドシートをスクリプト操作してみた[初心者]

gas_topimage

普段Googleスプレッドシートをデータ管理のツールとして使用しています。
そこでGoogleスプレッドシートをExcelのVBAの様にスクリプトで操作したいと思いました。

 
Googleが提供しているGoogle Apps Scriptで可能なようです。
Google Apps Scriptとは

Googleが提供している Google Suiteを使いやすくしたり連携させたり出来るスクリプト開発環境。

スプレッドシート以外のカレンダーやドキュメント、 Gmail などと連携させた
スクリプトも作れるみたいですね。

記述言語はJavascriptがベースみたいなので始めやすいかも。

面白そうなので勉強のつもで触れてみたいと思います。

Google Apps Scriptの環境はChromeに拡張機能Google Apps Script を入れるだけのようです。

 
 

早速触ってみます。

Googleスプレッドシートを開きます。

メニューから ツール>スクリプトエディタ を選択します。
 

新しいタブが開きそこにコードエディタが現れます。

 

ログ表示

 
コードエディタが開かれると以下のコードが記されています。
ロガーに”Hello World!!”表示されるみたいです。
 
function myFunction() {
var num = "Hello World!!";
Logger.log(num);
}
 
 

実行します。

何かが実行された表示はありましたがログが現れません。

[Ctrl]+[Enter]

ログが表示されます。

実行されたDATEと結果が表示されました。
“Hello World!!”
もきちんと表示されてます。
 
 

ファイルの名前を取得

 
開いているスプレッドシートのファイル名を取得してログに表示します。
 
function myFunction() {
  var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  Logger.log(activeSpreadsheet.getName());
}

 
解説
SpreadsheetApp.getActiveSpreadsheet()
開かれているスプレッドシートファイルを取得します。
activeSpreadsheet.getName()
スプレッドシートのファイル名を取得します。先ほどと同じく実行して[Ctrl]+[Enter]でログを出します。

ファイル名「血圧データ」と表示されました。

 

アクティブシートの名前を取得

 

開いているスプレッドシートのアクティブになってるシートの名前を取得します。

function myFunction() {
  var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = activeSpreadsheet.getActiveSheet();
  Logger.log(activeSheet.getName());
}
解説
 
activeSpreadsheet.getActiveSheet()

スプレッドシートファイルの開かれてるシートを取得します。

activeSheet.getName()
シートの名前を取得します。実行して[Ctrl]+[Enter]でログを出します。
 

開かれているアクティブなシートではなく、シートを指定したい場合はvar activeSheet = activeSpreadsheet.getSheetByName(‘SheetName_01’);

の様に.getSheetByName(シート名)と書くことで可能になります。

 

セルの値を取得

 

特定のセルの値を取得します。

function myFunction() {
    var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var activeSheet = activeSpreadsheet.getSheetByName('SheetName_01');
    var cellPosition = activeSpreadsheet.getRange("C7");
    var cellValue = cellPosition.getValue();
    Logger.log(cellValue);

}
解説
 
activeSpreadsheet.getSheetByName(‘SheetName_01’)

情報を見たいシートをシート名で指定しました。

activeSpreadsheet.getRange(“C67”)
“C67″のセルを指定しました。

cellPosition.getValue()
指定したセルの値を取得します。

実行して[Ctrl]+[Enter]でログを出します。

スプレッドシートファイルの表示

ログ表示

セルに値を入力

 

指定したセルに文字を入力します。

function myFunction() {
    var str_Value = " Asia/Osaka";
    var str_Value2 = " Asia/Kanagawa";

    var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var activeSheet = activeSpreadsheet.getSheetByName('SheetName_01');
    var setCell = activeSheet.getRange("B66");
    var setCell2 = activeSheet.getRange("B68");
    setCell.setValue(str_Value);
    setCell2.setValue(str_Value2);

}
解説
 
activeSheet.getRange(“B66”);
activeSheet.getRange(“B68”);

それぞれ “B66″と”B68″のセルを指定しました。

setCell.setValue(str_Value);
setCell2.setValue(str_Value2);

setValue()でセルに値を入力します。

実行後にスプレッドシートを確認します。

 

B66は”Asia/Osaka”、B68は”Asia/Kanagawa”に変わりました。

 
 
 

まとめ

 
基本的な操作を試してみました。

通常のjavascriptとそんなに違和感なく書けますね。

ローカルのファイルを扱えないのはデメリットに思う人もいるかと思いますが、
ウェブブラウザのコードエディタで完結してるので、
自宅ではデスクトップのWindowsPC、外出先ではMacBookの様に
場所や環境を気にすることなく扱えるのは機動的な生活環境の人には
メリットがあると思います。

何といってもスプレッドシート以外のGoogleのアプリサービスと連携が取れるのは良いですね。

 





BTOパソコンの草分け的ブランドFRONTIER(フロンティア)

教育機関や研究施設/3DCG/動画編集/そしてゲームプレイに。
用途に合わせてCPUやGPUなどパーツを自由に選べて、コスパにもこだわる方にオススメ。

ボーナス祭!開催中\GeForce RTX 3070 Tiなど最新GPUを搭載した人気モデルが超特価で登場!/6/25(金)15時まで

≪GeForce RTX 3070 Ti≫≪GeForce RTX 3080 Ti≫を搭載した高性能PCが衝撃コスパで購入できます。

Core i7 + RTX 3060モデルが税込16万円台、Ryzen 7 + RTX 3070モデルが21万円台、Core i7 + GTX 1660モデルが12万円台、Core i7 + RTX 3070 Tiモデルが22万円台

≪全18機種≫見逃し厳禁!SALE製品は台数に限りがあるので売り切れる前に是非

>>【FRONTIER】


【デジハリONLINEの 基礎動画 + AdobeCC一年ライセンス のお得プラン】

デジタルハリウッドのオンラインCGスクール「デジハリONLINE」が提供する、60時間の基礎動画とAdobe creative cloudの一年版ライセンスがパッケージされた、コスパ最強の講座プラン

「Adobeマスター講座」

受講ノルマは一切無し、Adobe製品の利用を目的に契約してもOK!

>>デジハリONLINE講座申込

▶︎基礎動画教材付きAdobe Creative Cloudを年額39,980円(税込)のお得な価格で使用する方法


Twitter Facebook Pocket LINE はてブ

おすすめの関連記事
コチラの記事も読まれています
あわせてよく読まれている記事