VBA スクロールして一番上(左上)へ移動する方法 ホームページ制作 | 墨田区

VBA スクロールして一番上(左上)へ移動する方法

LINEで送る
Pocket

VBAでスクロールして一番上(左上)へ移動する方法をご紹介します。
ブックを開いたときに、先頭行に移動させたいなどの要望は多いと思います。
今回は、VBAでスクロール位置を一番上(左上)に移動する方法や、指定の位置に移動する方法をご紹介します。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


サンプルソース

指定の位置へ移動するには ScrollColumnScrollRow を使用します。

Sub Macro1()
    ActiveWindow.ScrollColumn = 1
    ActiveWindow.ScrollRow = 1
End Sub

それぞれ 1 を指定していますので 列1・行1(A1) へ移動するということになります。
それでは AA30 から移動してみましょう。
VBA AA30からA1へスクロール

この場合 A1 が選択状態になるわけではありません。カーソルは AA30 のままです。
移動してセルを選択状態にしたい場合は
ActiveWindow.ActiveSheet.Range(“A1”).Select
などでセル位置を移動する必要があります。

ScrollColumn/ScrollRow を使う他に Application.Goto メソッドを使う方法があります。

Application.Goto Reference:=ActiveWindow.ActiveSheet.Range("A1"), Scroll:=True

パラメーター

名前必須データ型説明
Reference省略可Variant移動先を指定します。Range オブジェクト、R1C1 形式のセル参照文字列、および Visual Basic のプロシージャ名を表す文字列です。この引数を省略すると、移動先は、直前に Goto メソッドを使ったときのセル範囲になります。
Scroll省略可Variant移動先セル範囲の左上端がウィンドウの左上端に表示されるようにウィンドウをスクロールするには、True を指定します。ウィンドウをスクロールしないようにするには、False を指定します。既定値は False です。


ScrollColumn/ScrollRow でも Application.Goto でも、指定したセルが画面左上になるように移動します。例えば C4 を指定したとすると、下図のようになります。
VBA スクロール 指定したセルが左端になる

ScrollColumn/ScrollRow ではセルが選択状態になりませんでしたが Application.Goto ではセルが選択状態になります。
個人的によく利用するのは Application.Goto ですね。1行記述で済むのがいいです。
実務で利用する際は、用途に合わせて使い分けましょう。


参考サイト

Window.ScrollRow プロパティ (Excel)
Window.ScrollColumn プロパティ (Excel)
Application.Goto メソッド (Excel)


おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL