【ついに解決】わからなかったGASのエラーがついにわかった! 

こんばんは、海老蓮根です。

以前に、【GAS】ClearContents();を実行すると、「メソッドgetRange(number,number,number,number)が見つかりません。」と出て困る という記事を書きました。

こんばんは、海老蓮根です。 Google Apps Script の勉強をしていたら詰まってしまったのでメモしておきたいと思い...

親切な方からメールを頂いてやってみましたが、解決しなかったのですが、再度ご丁寧なメールを頂きやっと問題が解決しました。

以前に、【GAS】ClearContents();を実行すると、「メソッドgetRange(number,number,number,num...

差出人: こひな <○○○○○○○@gmail.com>
題名: すみません!

メッセージ本文:
「SpreadSheet」ではなく「SpreadsheetApp」でした!
正しくは下記です。

var sheet = SpreadsheetApp.getActiveSheet();

本当に申し訳ないです。

せっかくなのでSpreadsheetクラスとSheetクラスの補足を。
(ご存知でしたらすみません)

>Spreadsheetクラス
ExcelにおけるExcelブック、つまりファイルそのものを表すクラスです。
「getRange()」は持っているのですが、「A1」とか「B2:C3」みたいな形式でしか指定できません。

var foo = SpreadsheetApp.getActiveSpreadsheet();
var range1 = foo.getRange(“B2”); //OK
var range2 = foo.getRange(“B2:C3”); //OK
var range3 = foo.getRange(“シートの名前!B2:C3”); //OK
var range4 = foo.getRange(1, 1); //NG、例の「そんなもんないよ」というエラーが出ます。

>Sheetクラス
Excelにおけるシートです。
今回SpreadsheetAppの「getActiveSheet()」で持ってきていますが、Spreadsheetの「getSheetByName()」や「getSheets()」からでも持ってこられます。

var foo = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = foo.getSheetByName(“シートの名前”);
var sheet2 = foo.getSheets()[0]; //「getSheets()」はその名の通り戻り値が配列なので、適当な方法で取り出します(ここでは「[0]」の部分)。

(メールアドレスは筆者で伏せ字にしています)

ご指摘されたとおり実行してみると、無事に実行できた

ご指摘いただいたとおりに、

var sheet = SpreadSheet.getActiveSheet();  を

var sheet = SpreadsheetApp.getActiveSheet();

と打ち直して、おそるおそる実行してみました。

修正したGASのコード

すると、数秒してもエラーは出ません!

念のため、スプレッドシートを確認してみると・・・

スプレッドシートの実行結果

やりました!!ついに出来ました!

こひなさまに教えていただいたおかげですがw

感謝

>本当に申し訳ないです。

>せっかくなのでSpreadsheetクラスとSheetクラスの補足を。
>(ご存知でしたらすみません)

こひなさま、とんでもございません。

僕のような初心者は下手な考えでいくら悩んでも、解決できないことがよくあります。メールに書いていただいたように実際にどのように書けば良いかを教えていただいたのでやっと理解ができました。

補足説明いただいたSpreadsheetクラスとSheetクラスについても熟読して理解を深めたいと思います。

あと、ちゃんとメール返信をしないといけないところですが、実はドメインのメール受信設定はできたのですが、まだ使い方が良くわかっていなくて、送信の仕方がわかりませんでした(爆

ブログでのご返信になりますが、本当にありがとうございました!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする