表題の通り、GASのgetActiveSheetで、先頭では無いシートをアクティブにした状態で実行しても、先頭のシートがアクティブシートとして取得されてしまいます。
試しに
1function debug(){ 2 var sheet = SpreadsheetApp.getActiveSheet(); 3 var ASName = sheet.getSheetName(); 4}
という、アクティブシートの名前だけを取得する関数を作ってみましたが、こちらでも先頭のシート名がASNameに格納されます。
どなたが、原因がお分かりになる方がいらっしゃれば、教えて頂きたいです。
<追記>
どうやらデバッグ時のみ上記の挙動を取っている様です。
それはそれでデバッグが上手くいかずに困っております。
3シート目を選択した状態で、スクリプトエディタを開き、このコードを実行するとデバッグでブレークポイントを置いても、あるいはLogger.logに出力しても、3シート目の名前がログに取れるのですが、どのように操作してらっしゃいますか?
デバッグに関してはブレークポイントを置いて行っています。不具合を起こすのは当該ファイルだけなので、何かコード以外の部分に原因があるのかもしれません…
再現しないので、とりあえず、新しいスプレッドシートで試していただけませんか?
試してみたところ、同様に先頭のシートが選ばれてしまいました。
私も再現しないですね…。
なんか遠まわりもいいとこなんですが「var ASName = SpreadsheetApp.getActiveRange().getSheet().getName();」でも同じですか?
何もいじって無いつもりなのですが、自分でも再現不能になってしまいました…
お手数ですが、その旨を記載して自己解決+クローズしていただけますようお願いします
あなたの回答
tips
プレビュー