# 課題:.getSheetByName がうまく動作しない(GAS)
## 状況:
・スプレッドシート内に複数タブ(シート名:A,B,C,D,E)があり、それぞれを呼び出す.getSheetByNameを記述しているが、実行反映されるのがシート名:Eのみになってしまう
やりたいこと:
・Twitterのフォロワーを自動取得
・参考スクリプト:https://yurilog.cc/3375
・5アカウントあるためシートを5つ作っている(シート名:A,B,C,D,E)ため、それぞれのシートが更新されるようにしたい
### やったこと:
・上記参考スクリプトをまず実装し挙動確認
・その後、.getSheetByName部分を各シート名(シート名:A,B,C,D,E)に変更
・毎日更新したいため、毎日0-1時でトリガーセット
function writeData() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName('A'); var today = Utilities.formatDate(new Date(), "JST","yyyy/MM/dd") var row = sheet.getLastRow() + 1; sheet.getRange(row, 1).setValue(today); getTwitterFollowers(row, 2); } function getTwitterFollowers(row, col) { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName("A"); var url = sheet.getRange(1, col).getValue(); var postheader = {![イメージ説明](27c2c96675ed7aab8c8ffb6e5f85e377.png) "timeout":"50000" } var parameters = { "method":"get", "muteHttpExceptions": true, "headers": postheader } var html = UrlFetchApp.fetch(url, parameters).getContentText('UTF-8'); Logger.log(html); var searchTag = 'followers'; var index = html.indexOf(searchTag) if (index !== -1) { html = html.substring(index + searchTag.length); //searchTag = '<div class="statnum">'; //searchTag = 'data-count='; searchTag = 'title="'; index = html.indexOf(searchTag); if (index !== -1) { html = html.substring(index + searchTag.length); //index = html.indexOf('</div>'); //index = html.indexOf(' '); index = html.indexOf(' Followers"'); if (index !== -1) { sheet.getRange(row, col).setValue(html.substring(0, index)); } } } }
トリガーの設定を教えてください。それと、例えばE.gsの関数はなんという名前ですか?同じ名前ではないですか?
先にmacaron_xxx さんからの回答に対してfanction名を変更してみました。トリガーの設定は現在各ファンクションに対してセットしているものをキャプチャ追加しました。ご確認宜しくお願い致します。
そういう対策をするのであれば、getTwitterFollowersについても同じ処置をしなければなりません。つまり、getTwitterFollowersA,getTwitterFollowersB…といった風に
この場合、writeDataAの閉じカッコの最後にあるgetTwitterFollowersはgetTwitterFollowersAとしなければいけません。
なるほど!ありがとうございます、試してみます。ぜひ回答のほうにもコメント転記いただければ高評価つけさせていただきたく。ご検討くださいませ
できました!ありがとうございました!ぜひコメント欄のほうにも回答いただければ幸いです
回答2件
あなたの回答
tips
プレビュー