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

    Office ScriptsとPower Automateで簡単なメールアーカイブを作る方法

    下記記事でも書いている通り、Office Scriptsのスクリプトは…

  2. Office Scripts

    [Office Scripts]ユーザーからの入力を取得する方法

    久しぶりのOffice スクリプトネタです。今回はスクリプト実行時…

  3. Office Scripts

    [Office Scripts]グラフを作成する方法

    今回は、Office Scriptsのスクリプトでグラフを作成する方法…

  4. Office アドイン

    Office Scriptsの使いどころ

    これまで当ブログでOffice Scriptsについて色々と記事を書い…

  5. Office Scripts

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

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

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP