前提・実現したいこと
たとえばgetSheets()[4].getRange('I2:I3')が選択されている場合、この範囲を現在選択されている範囲という指定によって取得したいと思います。
発生している問題・エラーメッセージ
関数testは期待した値「5番目のシート,I2:I3,2921」ではなく、「1番目のシート,A1,1111」を返します。この原因を知り、このコードを修正したいと思います。
該当のソースコード
gs
1const ss = SpreadsheetApp.getActiveSpreadsheet(); 2function test(){ 3const sheet = ss.getActiveSheet(); 4const range = sheet.getActiveRange(); 5Logger.log(`${sheet.getIndex()}番目のシート`);//1番目のシート 6Logger.log(range.getA1Notation());//A1 7Logger.log(`${range.getRow()}${range.getColumn()}${range.getNumRows()}${range.getNumColumns()}`);//1111 8}
試したこと
関数test2は、I2:I3のFORMATをトリガーとして呼び出された関数です。使用メソッドはこの場合に期待した値(「5番目のシート,I2:I3,2921」)を返しました。
gs
1const ss = SpreadsheetApp.getActiveSpreadsheet(); 2function test2(e){ 3Logger.log(e.changeType);//FORMAT 4const sheet = ss.getActiveSheet(); 5const range = sheet.getActiveRange(); 6Logger.log(`${sheet.getIndex()}番目のシート`);//5番目のシート 7Logger.log(range.getA1Notation());//I2:I3 8Logger.log(`${range.getRow()}${range.getColumn()}${range.getNumRows()}${range.getNumColumns()}`);//2921 9}
補足情報(FW/ツールのバージョンなど)
コンテナは使用中のスプレッドシードになっています。
changeType が OTHER のときに、期待の動作を得られない、という意味ですか?
であれば重複した質問ではないですか?
(変更時トリガーではなく)編集時トリガーを利用するようにはできませんか?
いいえ、ちがいます。 関数testは、エディターからの実行結果です。私はこのときにトリガーOTHERと同じ結果を期待しましたが、失敗しました。activeメソッドの使用法の間違いがありますか?
もう一度読みましたが、なぜOTHERなのですか? FORMATで何かを誤解させたならまだわかりましたが。重複の可能性を前提としているせいで、何か余計に混同しているように思います。 重複が疑っていると思われる質問とこの質問で解消しようとしている問題は繰り返すように別ですから、もし協力していただける場合は一度この前提で読み直すことをお願いします。
回答1件
あなたの回答
tips
プレビュー