子育てエンジニアブログ

子育てに励むシステムエンジニア(SE)のブログ

【GAS】値のある最後の行の番号を取得する方法

GASで値のある最後の行の番号を取得する方法についてです。

下記のようにすることで値がちゃんと入っている最後の行番号を取得することができる。

/**  値のある最後の行の番号を取得する */
function getUsedLastRowCount(sheetName, rowNumber) {
    var lastLowvalues = sheetName.getRange(rowNumber + ':' + rowNumber).getValues();
    return lastLowvalues.filter(String).length;
}

呼び出し方は、下記のようにして呼び出す。

var sheet = SpreadsheetApp.getActiveSpreadsheet();
getUsedLastRowCount(sheet,'A')

ちなみに、単純な最終行の取得は下記のようにしてできる。

var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.getLastRow();

以上。
GASで値のある最後の行の番号を取得する方法についてでした。

【GAS】SpreadsheetApp.openById を呼び出す権限がありませんのエラーの対処方法

何気にGASについて書くのは初めてだった。

GASでIDを使ってシートを指定してアクセスしようとすると下記のように怒られることがある。

Exception: SpreadsheetApp.openById を呼び出す権限がありません。必要な権限: https://www.googleapis.com/auth

f:id:STSA:20210111144727p:plain

対策としては、マニュフェスト(appsscript.json)に下記を追加することで対処する。

 "oauthScopes": ["https://www.googleapis.com/auth/spreadsheets.currentonly", "https://www.googleapis.com/auth/spreadsheets"],

実行 > マニュフェスト ファイルを表示と進んで行くと変更することができる。
f:id:STSA:20210111144838p:plain

appsscript.jsonに下記のように先ほどの1行を入れ込む。

{
  "timeZone": "Asia/Tokyo",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "oauthScopes": ["https://www.googleapis.com/auth/spreadsheets.currentonly", "https://www.googleapis.com/auth/spreadsheets"],
  "runtimeVersion": "V8"
}

これでアクセスできるようになるっぽい。