Office Scripts

[Office Scripts]指定した列の最終セルを取得する方法

2021/7/5 追記:
さらに簡単に指定した列の最終セルを取得する方法について記事を書きました。


Office Scriptsでセル移動(Ctrl + 矢印キー)とセル範囲選択(Ctrl + Shift + 矢印キー)ができるようになりました。

(Range).getRangeEdgeメソッドがセル移動、(Range).getExtendedRangeメソッドがセル範囲選択です。

個人的にはすごく待ちわびていた機能追加で、これらのメソッドによって終端のセルを簡単に取得できるようになったわけです。
(VBAでいうと下記ページのような実装です。)

ただ、連続したデータ範囲の場合は下方向の指定で問題無いのですが、途中で空白セルが含まれる場合は終端のセルを取得できません(下記参照)。

そこで通常は下記コードのように最終行のセルから上方向を指定してセルを取得するのですが、Excel 2007でシートの最大行数が変更された過去もありますし、「A1048576」のように最終行を決め打ちするのは控えておきたいところです。

VBAでは下記コードのようにRows.CountとEndプロパティを使えば済む話なのですが、Office Scriptsでは同様のプロパティを見つけられませんでした。
改めて考えたらgetRowCountメソッドを使えば良いことに気が付きました。コードはページ下部の「指定した列の最終セルを取得する方法(2)」参照。

Public Sub Sample()
  With ActiveSheet
    Debug.Print .Cells(.Rows.Count, 1).End(xlUp).Address
  End With
End Sub

仕方がないので、(Worksheet).getUsedRangeメソッドを使って、使用しているセル範囲の中から指定した列の最終セルを取得するコードを書いてみました。

実は、同様の処理は一年ほど前の下記記事でも書いているのですが、getRangeEdgeメソッドのおかげでかなり短くなり、さらに処理速度も早くなっています。

どんどん便利になっていくOffice Scripts、これからも要注目です!


2021/4/19 追記:

関連記事

【感想】特別展「大地のハンター展」に行ってきたよ(2)前のページ

メールを閉じたときに指定したフォルダに移動するOutlookマクロ次のページ

関連記事

  1. Office Scripts

    Visual Studio Code for Office Scriptsの紹介

    インストール要らずで利用できるWeb用Visual Studio Co…

  2. Office アドイン

    Office Scripts機能によってWeb版Officeの操作を自動化する

    前回、Ignite 2019で発表されたPower Automate(…

  3. Office Scripts

    マクロの記録後に記録した操作をOffice スクリプトとしても保存できるようになりました。

    先日、Excelでマクロの記録操作を行ったところ、記録を終了した際に作…

  4. Office Scripts

    [Office Scripts]ヘッダーとフッターを設定する方法

    Office Scriptsでは、下記のような手順でシートのヘッダーと…

  5. Office Scripts

    [Office Scripts]オートフィルタを設定する方法

    今回は、Office Scriptsでテーブルのオートフィルタを設定す…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP