Officeスクリプトで最終行を取得する

はじめに

 本記事では、Officeスクリプトを活用して、データの種類に応じて適切な最終行を取得するための方法について解説します。Excelのデータ形式ですが、セル結合されていないと仮定した場合以下の2種類のデータに大別することができます。

処理データの範囲

 1つ目は、Excel内で処理しようとしているデータ範囲について、処理データが最終行であるか否かで分類することができます。①の場合は、シート内で「経理課」が最終行になっており、②の場合は、「※ 備考シートの最終行はここ」という値が最終行となります。

処理データの連続性

 2つ目は、Excel内で処理しようとしているデータについて、取り扱う列について最低1つは欠損値がない連続したデータがあるか否かで分類することができます。①の場合は、「所属」 「氏名」」 「年齢」ともに連続した列ではなく、②の場合は、「所属」列について連続したデータがあるということになります。

処理データを見極めて適切なメソッドで最終行を取得

 処理データとして、①から④までのパターンを見てきましたが、この組み合わせによって使用するOfficeスクリプトのメソッドを切り替えていく必要があります。最終行を取得するためには、getUsedRangeとgetRangeEdgeを使い分けます。

処理データ別使用メソッド
  • Case ① ④
    最終行〇
    連続性〇
    処理データが最終行であり連続したデータ列が最低1つある
    /* 以下2つの何れも利用可能 */
    getUsedRange(true)
    getRangeEdge(ExcelScript.KeyboardDirection.down)
  • Case ① ③
    最終行 〇
    連続性 ✕
    処理データが最終行であるが連続したデータ列がない
    /* 使用済範囲取得メソッドでデータの開始から最終までのレンジを取得 */
    getUsedRange(true)
  • Case ② ④
    最終行 ✕
    連続性 〇
    処理データが最終行でないが連続したデータ列が最低1つある
    /* Ctrl + ↓ キーメソッドで起点セルから連続する最終レンジを取得 */
    getRangeEdge(ExcelScript.KeyboardDirection.down)
  • Case ③ ④
    最終行 ✕
    連続性 ✕
    処理データが最終行でないうえ連続したデータ列がない

    処理に適したメソッドがない

コメント

タイトルとURLをコピーしました