【VBA】特定のセルを画面左上にスクロール表示させる方法|ScrollRowとScrollColumnの使い方

Excelで作業をしていると、特定のセルを画面の左上にぴったり表示したいという場面があります。
たとえば、「データ一覧の途中行へ瞬時に移動し、そこを基点に作業したい」といったケースです。

そのようなときに便利なのが、VBAの ScrollRowScrollColumn プロパティです。
この2つを組み合わせることで、任意のセルをウィンドウ左上に移動表示することが可能です。


目次

基本コード:セルを画面左上に表示させる

Dim targetCell As Range
Set targetCell = Range("M30")

With ActiveWindow
    .ScrollRow = targetCell.Row
    .ScrollColumn = targetCell.Column
End With

コードの解説

内容
Range("M30")左上に表示させたいセルを指定します。例では M30 セルです。
.ScrollRow = targetCell.Row指定セルの行番号を画面の最上部行に設定します。
.ScrollColumn = targetCell.Column指定セルの列番号を画面の最左列に設定します。

このコードを実行すると、M30セルがちょうど画面の左上隅に表示される状態になります。


応用例:セルを表示しつつ選択状態にもしたい場合

Dim baseCell As Range
Set baseCell = Range("H20")

With ActiveWindow
    .ScrollRow = baseCell.Row
    .ScrollColumn = baseCell.Column
End With

baseCell.Select

このようにすれば、指定したセルを左上に表示した上で、そのセルを選択状態にすることも可能です。


注意点と補足

項目内容
実行時に画面が移動するスクロール操作が伴うため、ユーザーが作業中の場合は事前通知が望ましいです。
非表示セルには使えない指定したセルが非表示の場合、正しくスクロールされないことがあります。
フリーズウィンドウに注意ウィンドウ枠が固定されている場合、思った位置にスクロールされないことがあります。

使用シーンの例

  • 入力フォームの特定欄へ自動誘導
  • データ一覧の中間位置へジャンプ
  • エラーセルを画面左上に移動して強調

まとめ

目的コード
セルを左上に表示.ScrollRow = Range.Row.ScrollColumn = Range.Column
表示+選択もしたい.Select を追加する
応用範囲検索後のセル移動、入力欄誘導など

このように、ScrollRowScrollColumn を使えば、ユーザーが注目すべきセルを画面上に明確に表示することができます。
とくにフォーム制御やデータレビューの場面では、視認性の向上や作業効率化に大いに役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次