• ベストアンサー

Googleスプレッドシートとスクリプト

Googleスクリプトで、別に作ったスプレッドシートを利用したいのですが、 var SheetID = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; var EventSpSheet = SpreadsheetApp.openById(SheetID); var sheet = EventSpSheet.setActiveSheet(EventSpSheet.getSheets()); と書くと、「Array を Sheet に変換できません。」とエラーが返ってきます。 どこがいけないのか分かる方教えて下さい。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.1

EventSpSheet.getSheets()は、すべてのSheetを配列で返します。ActiveSheetに設定できるのは1つだけですから、getSheetsで取得した配列から1つを選んで指定しないといけません。 var sheet = EventSpSheet.setActiveSheet(EventSpSheet.getSheets()[n]); 例えば、これでインデックス番号n番のSheetがActiveSheetに設定されます。

versus1229
質問者

お礼

ありがとうございます! おかげさまで解決しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Google Scriptの別シートの参照

    現在、アクティブなスプレッドシートと同じシート名で、 別のスプレッドシートの同じシート名を 参照したいのですが、 getRangeで、リファレンスエラーになります。 var mySS = SpreadsheetApp.getActiveSpreadsheet(); mySS.getSheets()[j].activate(); var ss_copyFr = SpreadsheetApp.openById(GetID); var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet(); var sheet_copyFr = ss_copyFr.getSheetByName(name); var sheet_copyTo = ss_copyTo.getSheetByName(name); var d = sheet_copyFr.getRange('A1').getValues();              ~~~~~~~~~~~~~~~~~~~~~~~~~~ 何か、 よい解決策は、ありますでしょうか? よろしくお願いします。

  • 【2】同一スプレッドシート内で複数GASを使用

    以前、「同一スプレッドシート内で、複数GASを使用したい」のタイトルで投稿し、回答を頂きました。 https://okwave.jp/qa/q9537222.html それを参考に、 ●シート名を取得 function sheetname() { return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName(); } ●必ず一番左のタブを開く(https://kitaney-google.blogspot.com/2015/11/google-url.html) function sample_activate_first_sheet_2(){  SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].activate(); } の2つのGASを以下のように記述しました --------------------- sheetname(); sample_activate_first_sheet_2(); function sheetname() { return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName(); } function sample_activate_first_sheet_2(){  SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].activate(); } ------------------------------------ すると、「必ず一番左のタブを開く」は動作したのですが、 「シート名を取得」がうまく表示されませんでした。 この記述方法ではダメなんでしょうか。 超初心者なので具体的に教えて頂けると嬉しいです。

  • GAS スプレッドシートの共有ユーザの取得

    googleappsのスクリプトなのですが googleドライブに保存して共有しているスプレッドシートの共有ユーザを プログラムで取得したくて以下のようにスクリプトを書きました var spsheet = SpreadsheetApp.openById('xxxx'); var user = spsheet.getEditors(); このように取得しようとしたのですが サーバー エラーが発生しました。しばらくしてからもう一度試してください。 となり取得できません・・・ どうやったら取得できるでしょうか?アドバイスお願い致します

  • google apps scriptでメール送信

    google apps scriptでスプレッドシートを添付ファイルで送る方法をお教えください。 google apps scriptで SpreadsheetApp.getActiveSheet(); として取得しセルにデータを書き込んだスプレッドシートをEメール発信したいです。 sendEmail(送付先アドレス, タイトル, 内容, options); とすると思いますが、optionsの書き方がわかりません。 よろしくお願いします。 2012 Sep. 25.

  • Google Apps Scriptのシート名選択

    初めまして。 3日前位からGoogleスプレッドシートのScriptを勉強し始めて 「シート1のA1セルが編集されたらB1に自動で現在時刻を打刻する」 というスクリプトを作っていました。 サイトを見ながらなんとかA1判定からB1自動打刻までいけたのですが シート名がうまく指定出来ていないみたいで シート1だけでなく【シート2】のA1 を編集してもシート1のB1に打刻されてしまいます。 スプレッドシートは極められたのでその先へ行きたいのですが 最初はやっぱり難しくて苦悩しています; 色々間違えてるかもしれませんが、ぜひ身に付けてみたいので 初めの一歩だけご教授をどうかよろしくお願いします。 function insertLastUpdated() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('シート1'); // rangeXとYにカーソル座標を代入 var rangeX = sheet.getActiveCell().getColumn(); var rangeY = sheet.getActiveCell().getRow(); // シートの座標1,1(A1)が編集されたらB1に現在時刻を打刻(トリガーを編集時に指定) if(rangeX==1&&rangeY==1){ sheet.getRange("B1").setValue(new Date()); } }

  • Googleスプレッドシートのスクリプトエディタ

    初歩的な質問で申し訳ありません。教えて頂けたら非常に助かります。 スプレッドシートで仮想通貨のリアルタイムの為替を表示させ保有している通貨の金額管理を行っているものです。たとえばフォルダー名仮想通貨8月分といフォルダー内部に、スプレッドシートを作成しスクリプトエディタでコードを入力したあと反映されスプレッドシートにはリアルタイムで仮想通貨の為替が表示され問題ありません。 しかし、仮想通貨9月分というフォルダーを作成し8月分と同様にしたいのですが、スクリプトエディタのコードをリンクまたはファイルを開くなどの操作で8月分で作成したソースコードのみを読み取りたいのですが、どのようにして良いかわからないままです。ためしに8月分を開いてドラッグして移動できないか試しましたが、なぞのURLが表示されるだけで何もできませんでした。 どのようにすればわざわざソースコードを新規作成せずに9月分で利用することができますか?僕の現在のイメージでは、ソースコードがどこかに保存されていて、プロジェクトを開く等の操作でクリックするとコードが開いて動作するというイメージを持っていましたが、そのような操作画面が見つからず困っています。 どうすれば以前別フォルダー内に作ったスプレッドシート内で作成したソースコードを別のフォルダーで作成したスプレッドシート内で使うことができるでしょうか。  できるかぎりわかりやすく教えて下さい。 よろしくお願いします。

  • Googleスプレッドシートを開くには?

    LinuxでGoogleスプレッドシートを開くにはどうしたらいいでしょうか? Windowsで作ったGoogleスプレッドシートは拡張子がgsheetだったと思うのですが LinuxのGoogleドライブで同期したgsheetがすべてodsに変わってしまってChromeで開けません。Chromeで開こうとしても読み込んだodsをなぜだかダウンロードしてるみたいでうまく行きません。 Mac、Windows、iPhoneで同期して利用してるのでLibreでの編集は避けたいです よろしくお願いします

  • グーグルスプレッドシート

    グーグルスプレッドシートを利用して表計算したりグラフにしたりする手順をすごくわかりやすく教えてほしいです。 よろしくお願い致します。

  • グーグルスプレッドシートの使い方

    グーグルスプレッドシートを使いファイルを作成後 下のシート2を右クリックしても削除の項目がグレーになり削除できません。 これはなぜですか。また このシートを削除するにはどう操作しますか。 WINDOWS10です。よろしくお願い致します。

  • Googleドキュメント スプレッドシート

    Googleドキュメントのスプレッドシートを利用しています。 WEBで直接利用したり、ローカルのデスクトップからエクセルデータをアップロードして 使っています。 【質問】 Googleスプレッドシートを使っている際に、長文を一つのセル内に入れます。 そうしますと、何行もセルが改行されてしまいます。 たとえば、マイクロソフトのExcelなどだと、長文を改行せずに、1つのセル内に納めることが できるはずです。 Googleスプレッドシートではどのようにすればそれが出来るのでしょうか? 非常に読みづらくなってしまっています。