Google Apps Script応用 | Excel流の最終行の取得 | Google Apps Script(GAS)の応用編です



最終更新日:2016-11-06

Excel流の最終行の取得

Excelでは、xlUpやxlDownで指定列の最終行を取得することが多いです、

しかし、これに該当するものは、Google Apps Scriptには存在しません、

そこで、自作したらどうなるか、という事で書いてみました。

もちろん、getLastRow()で取得できるようにシートを作成することが望ましいのですが、

必ずそのように作成できるとは限りませんので、一応は考えておいた方が良いだろうという事です。



データは連続入力されていることを前提とするなら、
上から処理しつつ、データの無いセルになったら、そこが最終行という判定です。

function mySample6() {
  var sheet = SpreadsheetApp.getActiveSheet()
  var tannka,suuryou,lastRow
  lastRow = sheet.getLastRow()
  for (var i=2; i<=lastRow; i++) {
    if (sheet.getRange(i, 2).getValue() == "") break
    tannka = sheet.getRange(i, 2).getValue()
    suuryou = sheet.getRange(i, 3).getValue()
    sheet.getRange(i, 4).setValue(tannka * suuryou) 
  }
}

上記では、B列の最終行まで処理します。
ifで、B列が空であれば、forを抜けています。


Excelでは、最終行取得の定番として、
Cells(Rows.Count, 1).End(xlUp).Row
このように書きます。
これは、シートの一番下からCtrl+↑で突き当たった行数を取得します。
これと同じことやるとすれば、
getLastRow()から上に向かって、最初にデータが入っているセルが最終行と判定しています。

function getLastRow(sheet,col){
  var lastRow = 1
  for (var i=sheet.getLastRow(); i>1; i--) {
    if(sheet.getRange(i, col).getValue() != "") {
      lastRow = i
   break;
  }
 }
  return lastRow
}


使い方としては

function mySample7() {
  var sheet = SpreadsheetApp.getActiveSheet()
  var tannka,suuryou,lastRow
  lastRow = getLastRow(sheet,1)
  for (var i=2; i<=lastRow; i++) {
    tannka = sheet.getRange(i, 2).getValue()
    suuryou = sheet.getRange(i, 3).getValue()
    sheet.getRange(i, 4).setValue(tannka * suuryou) 
  }
}



繰り返しになりますが、
このようなスクリプトを使わなくても良いシートを作成するようにすることが肝心です。




同じテーマ「Google Apps Script応用」の記事

Twitter Bot 作成

新着記事 ・・・新着記事一覧を見る

セルの操作|MOS VBAエキスパート対策(2月20日)
変数と定数|MOS VBAエキスパート対策(2月17日)
条件付き書式で変更された書式を取得する|VBAサンプル集(2月16日)
VBAの構文|MOS VBAエキスパート対策(2月15日)
増殖した条件付き書式を整理統合する|VBAサンプル集(2月12日)
マクロの記録|MOS VBAエキスパート対策(2月12日)
マクロとVBAの概念|MOS VBAエキスパート対策(2月10日)
MOS VBAエキスパート対策|MOS VBA対策(2月10日)
VBAの配列まとめ(静的配列、動的配列)|VBA技術解説(2月8日)
VBAにおけるピリオドとカンマとスペースの使い方|VBA技術解説(2月7日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数とデータ型(Dim)|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.RangeとCellsの使い方|ExcelマクロVBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.定数と型宣言文字(Const)|ExcelマクロVBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • Excel流の最終行の取得

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




  • >
  • >
  • >
  • Excel流の最終行の取得

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP