表示位置を指定セルに移動する

選択セルを変えずに画面だけ移動したいときに便利なShowメソッドの使い方と注意点

'A10000セルを画面内にスクロール表示
Range("A10000").Show

処理の終了時に、特定のセル位置を画面内に表示しておきたい場面があります。
そんなときに便利なのが 「Show」メソッド です。

このメソッドを使うと、指定したセルがウィンドウ内に収まるように自動でスクロールされます。
ただし、セル自体は選択状態にはならない点に注意が必要です。

「選択セルはそのままにしておきたいけれど、画面だけ移動させたい」というケースで特に有効です。
一方で、画面内のどの位置に表示するかまでは指定できないという制約があります。
また、指定セルがすでに画面内にある場合はスクロールが発生しないため、その点も押さえておきましょう。

コードの動き

メソッドの動きの確認
コード実行時の動き

実際にコードを実行してみると、動作のイメージがよりつかみやすくなります。
画像の動きを確認してください。
A10000セルを表示状態にすると、画面がスクロールされてセルが中央付近に表示されます。
その際、選択セルはA1のままで、選択範囲が移動していないことも確認できます。

また、このメソッドを使用する際の大きな注意点として、画面更新を抑止している場合は無効になることが挙げられます。
画面更新を抑止した状態でA1セルを対象に実行しても画面は変化しません。
抑止を解除してから再度実行すると、正常に画面がスクロールされます。

処理後に画面を移動させたいケースは多いため、通常は大きな問題にはなりませんが、画面更新を抑止する処理を組み込んでいる場合は、解除してから実行するように注意してください。

ただし、前述のとおり「Show」メソッドでは、指定セルが画面内のどこに表示されるかを細かく制御できません。
そのため、どうしても指定セルを特定の位置に表示させたい場合はApplication.Gotoメソッドの使用をおすすめします。
このメソッドであれば左上位置に限定されますが、表示位置を指定できます。
さらに、Offsetプロパティやスクロール操作を組み合わせれば、思い通りの表示状態を作成できます。

Application.Gotoメソッドについては、以下の記事で詳しく解説しています。